From c4a7f2f51f993052a62d39c942a0221d502dbbc1 Mon Sep 17 00:00:00 2001 From: a0d00kc Date: Sat, 14 Feb 2026 18:50:37 +0530 Subject: [PATCH 01/11] blog update --- .../blob-logger/ssdio/writer_bench_test.go | 1 + docs-src/blog/authors.yml | 8 +- .../bharatmlstack-history/post-five/bms.png | Bin 0 -> 197116 bytes .../bharatmlstack-history/post-five/index.md | 121 + .../bharatmlstack-history/post-four/bms.png | Bin 0 -> 197116 bytes .../bharatmlstack-history/post-four/index.md | 204 + .../post-four/llm-plat.png | Bin 0 -> 248772 bytes .../bharatmlstack-history/post-one/bms.png | Bin 0 -> 197116 bytes .../bharatmlstack-history/post-one/index.md | 2 +- .../bharatmlstack-history/post-three/bms.png | Bin 0 -> 197116 bytes .../bharatmlstack-history/post-three/index.md | 104 + .../bharatmlstack-history/post-three/vss.png | Bin 0 -> 244203 bytes .../bharatmlstack-history/post-two/bms.png | Bin 0 -> 197116 bytes .../bharatmlstack-history/post-two/index.md | 150 + .../post-two/interaction-str.png | Bin 0 -> 237747 bytes .../bharatmlstack-history/post-two/mp-dag.png | Bin 0 -> 148343 bytes .../post-two/mp-matrix.png | Bin 0 -> 270388 bytes docs-src/package-lock.json | 17432 ---------------- .../rules/global/golang/code-quality.mdc | 17 + .../rules/global/golang/compliance.mdc | 36 + .../data-interface-concurrency-errors.mdc | 61 + .../global/golang/formatting-control.mdc | 34 + .../global/golang/requirement-planning.mdc | 12 + .../rules/global/golang/unit-testing.mdc | 108 + .../security-golang/secure-golang-rules.mdc | 211 + .../security-golang/ssrf-prevention-rules.mdc | 30 + 26 files changed, 1094 insertions(+), 17437 deletions(-) create mode 100644 asynclogger/blob-logger/ssdio/writer_bench_test.go create mode 100644 docs-src/blog/bharatmlstack-history/post-five/bms.png create mode 100644 docs-src/blog/bharatmlstack-history/post-five/index.md create mode 100644 docs-src/blog/bharatmlstack-history/post-four/bms.png create mode 100644 docs-src/blog/bharatmlstack-history/post-four/index.md create mode 100644 docs-src/blog/bharatmlstack-history/post-four/llm-plat.png create mode 100644 docs-src/blog/bharatmlstack-history/post-one/bms.png create mode 100644 docs-src/blog/bharatmlstack-history/post-three/bms.png create mode 100644 docs-src/blog/bharatmlstack-history/post-three/index.md create mode 100644 docs-src/blog/bharatmlstack-history/post-three/vss.png create mode 100644 docs-src/blog/bharatmlstack-history/post-two/bms.png create mode 100644 docs-src/blog/bharatmlstack-history/post-two/index.md create mode 100644 docs-src/blog/bharatmlstack-history/post-two/interaction-str.png create mode 100644 docs-src/blog/bharatmlstack-history/post-two/mp-dag.png create mode 100644 docs-src/blog/bharatmlstack-history/post-two/mp-matrix.png delete mode 100644 docs-src/package-lock.json create mode 100644 flashring/.cursor/rules/global/golang/code-quality.mdc create mode 100644 flashring/.cursor/rules/global/golang/compliance.mdc create mode 100644 flashring/.cursor/rules/global/golang/data-interface-concurrency-errors.mdc create mode 100644 flashring/.cursor/rules/global/golang/formatting-control.mdc create mode 100644 flashring/.cursor/rules/global/golang/requirement-planning.mdc create mode 100644 flashring/.cursor/rules/global/golang/unit-testing.mdc create mode 100644 flashring/.cursor/rules/global/security-golang/secure-golang-rules.mdc create mode 100644 flashring/.cursor/rules/global/security-golang/ssrf-prevention-rules.mdc diff --git a/asynclogger/blob-logger/ssdio/writer_bench_test.go b/asynclogger/blob-logger/ssdio/writer_bench_test.go new file mode 100644 index 00000000..d3899179 --- /dev/null +++ b/asynclogger/blob-logger/ssdio/writer_bench_test.go @@ -0,0 +1 @@ +package ssdio diff --git a/docs-src/blog/authors.yml b/docs-src/blog/authors.yml index 2af81d4d..376741b0 100644 --- a/docs-src/blog/authors.yml +++ b/docs-src/blog/authors.yml @@ -5,22 +5,22 @@ adarsha: image_url: https://github.com/a0d00kc.png aditya: name: Aditya Kumar - title: SDE-III @ Meesho + title: Lead Software Engineer @ Meesho url: https://github.com/Adit2607 image_url: https://github.com/Adit2607.png jigar: name: Jigar Dave - title: SDE-IV @ Meesho + title: Lead Software Engineer @ Meesho url: https://github.com/jigarpatel26 image_url: https://github.com/jigarpatel26.png jaya: name: Jaya Kumar - title: MLE-III @ Meesho + title: Lead ML Engineer @ Meesho url: https://github.com/jayakommuru image_url: https://github.com/jayakommuru.png bhawani: name: Bhawani Singh - title: SDE-IV @ Meesho + title: Architect @ Meesho url: https://github.com/singh-bhawani image_url: https://github.com/singh-bhawani.png mohit: diff --git a/docs-src/blog/bharatmlstack-history/post-five/bms.png b/docs-src/blog/bharatmlstack-history/post-five/bms.png new file mode 100644 index 0000000000000000000000000000000000000000..b397fc8825d633167b4fecdda172d84233d3cc9d GIT binary patch literal 197116 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/lJ*L21_?o)=GotrRu+|nH(uFql@ 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

{8Z8XFYV0f>aFy(_0bw{2q^J!i4>7M5SD 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 z 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 literal 0 HcmV?d00001 diff --git a/docs-src/blog/bharatmlstack-history/post-five/index.md b/docs-src/blog/bharatmlstack-history/post-five/index.md new file mode 100644 index 00000000..cad916a0 --- /dev/null +++ b/docs-src/blog/bharatmlstack-history/post-five/index.md @@ -0,0 +1,121 @@ +--- +slug: post-five +title: "LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale" +authors: [jaya] +date: 2023-10-21 +tags: [llm, vllm, tensorrt-llm, mlplatform, meesho, bharatmlstack] +--- + +![BharatMLStack](./bms.png) +## LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale + +Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution. + +## 1. Advanced Memory Management: Paged & Prefix KV Caching + +The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache. + +### Paged KV caching + +Standard caching suffers from fragmentation. We use **Paged KV caching**, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory. + +### KV cache quantization + +To further maximize available memory, we implement **KV cache quantization** (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality. + +### Prefix caching (the "voice bot" optimizer) + +For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable **prefix caching**. + +- **Impact**: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces **Time To First Token (TTFT)** by skipping redundant computation of the system prompt. + +## 2. Aggressive Quantization (INT4 AWQ & FP8) + +Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy. + +### INT4 AWQ (Activation-aware Weight Quantization) + +For the Llama 3 family, we use **AWQ** to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed. + +### FP8 precision + +For NVIDIA Hopper (H100) architectures, we are exploring **FP8 quantization**, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization. + +- **Verification**: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving **>99% similarity**. + +## 3. Kernel Fusion & Custom Plugins + +To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins. + +- **Flash attention & FMHA**: We enable **Fused Multi-Head Attention (FMHA)** combined with flash attention to reduce memory reads/writes. +- **GEMM plugins**: We use specialized **GEMM** plugins to accelerate transformer linear layers. +- **Removing input padding**: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens. + +## 4. Inflight (Continuous) Batching + +Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else. + +We implement **inflight batching**: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones. + +## 5. Parallelism Strategies: Scaling Beyond One GPU + +For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies. + +- **Tensor parallelism (TP)**: Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer. +- **Pipeline parallelism (PP)**: Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B). + +## 6. Speculative Decoding + +To reduce inter-token latency (ITL), we explore **speculative decoding**. + +- **Mechanism**: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens). +- **Verification**: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed. + +## Few Benchmarks + +Below are a couple of representative use cases and performance numbers. + +### Search query rewriting + +- **LLM**: Fine-tuned llama-3.2-1B +- **Input & output token length**: ~10–20 +- **Response type**: Non-streaming + +| Inference runtime | Hardware | Max requests/sec | Max p99 latency | +| --- | --- | ---: | ---: | +| TensorRT-LLM | 4 × L4 GPUs (multi-GPU) | 1000 | 95 ms | +| TensorRT-LLM | 1 × A100 40 GB GPU | 1000 | 69 ms | + +### Voice bot query + +- **LLM**: Llama-3.1-8B +- **Input token length**: ~1900–2000 +- **Output token length**: ~200 +- **Response type**: Streaming + +| Inference runtime | Concurrency | p99 TTFT (ms) | p99 ITL (ms) | Token throughput (tokens/sec) | Request throughput (req/sec) | Hardware | +| --- | ---: | ---: | ---: | ---: | ---: | --- | +| TensorRT-LLM | 1 | 36.27 | 22.78 | 45.66 | 0.23 | L4 | +| TensorRT-LLM | 2 | 49.81 | 23.21 | 89.37 | 0.45 | L4 | +| TensorRT-LLM | 4 | 55.33 | 36.62 | 153.39 | 0.78 | L4 | +| TensorRT-LLM | 8 | 66.5 | 39.11 | 279.88 | 1.47 | L4 | +| TensorRT-LLM | 16 | 131.8 | 30.39 | 547.8 | 2.77 | L4 | +| TensorRT-LLM | 32 | 277.22 | 48.02 | 925.7 | 4.78 | L4 | +| TensorRT-LLM | 64 | 498.52 | 71.62 | 1,164.40 | 6.2 | L4 | +| TensorRT-LLM | 128 | 677.31 | 120.37 | 1,445.18 | 7.69 | L4 | +| TensorRT-LLM | 256 | 1,926.31 | 216.88 | 1,600.81 | 8.52 | L4 | +| TensorRT-LLM | 1 | 21.17 | 9.24 | 130.05 | 0.68 | A100 | +| TensorRT-LLM | 2 | 25.78 | 9.21 | 264.5 | 1.35 | A100 | +| TensorRT-LLM | 4 | 28.52 | 10.99 | 437.69 | 2.27 | A100 | +| TensorRT-LLM | 8 | 34.4 | 12.61 | 760.49 | 3.96 | A100 | +| TensorRT-LLM | 16 | 68.03 | 14.32 | 1,343.80 | 7.01 | A100 | +| TensorRT-LLM | 32 | 185.96 | 16.82 | 2,287.30 | 11.92 | A100 | +| TensorRT-LLM | 64 | 136.87 | 21.17 | 3,625.22 | 18.89 | A100 | +| TensorRT-LLM | 128 | 463.78 | 34.15 | 4,456.51 | 23.24 | A100 | +| TensorRT-LLM | 256 | 890.12 | 59.18 | 5,188.24 | 27.05 | A100 | + +## Conclusion + +High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure. + +These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications. diff --git a/docs-src/blog/bharatmlstack-history/post-four/bms.png b/docs-src/blog/bharatmlstack-history/post-four/bms.png new file mode 100644 index 0000000000000000000000000000000000000000..b397fc8825d633167b4fecdda172d84233d3cc9d GIT binary patch literal 197116 zcmeFYbyQu?vM!2S@L&sFK!Urw2bTnQch}(V7Ti6!1PShL!4?*RySqEQMSgqVbH=;p zzWw(b{(s))mKgUXL$(}Bzz|ssYZC|v$?zmKcy*;=oNO&cQWyj=A?ZCi^f*i*X#{$|E3zhk@ znNBB5ysQwQ#d}2y)G|b&$`1-S?~f+%QxZqX_~8+N5bO{TNsO^F++V(|qX+swu8y=4 zfbf&cQKf(QHoVS#|A;jV3jzFsUW~XMpdE$=<;RIw@RJWBOmQefVJv~>+%n9?7$h84 zp2#H{oRP>S7tDA&-`8(X>VpiSku{NG0+Bn3;;z~OggyWn)OAUbVaWh*0{>8Qy8cAp zXhvTYBH*IXDV>mi6sFv?OScG2_wpG4s`gK*4M7?q!1UpxOAOT-^*-1rBC#}MKy$Es ziekZe7iK~xRoy8~LMxX7+kdrqI+}#m_bqD(>yqr@JgIH830Len_+w~XLCP2cnf>rYkjWM{ z;F{1*f%fQ0gc~Ctd)kuy zh{w&9&qOqvvP%$LYYg^;s3-3vz6R4ZuG*QXs*BdW;&h|gm8^c-5EG{ErSieb$m3@} zV$+6KNo;;$7NpUehPxaivIg)7+=d>#Tj#ef`PhKK>zCClZ-`q>Q9)c?y{QiUJAg=K zqZ@GBWH*2kg)_aYz%c{hG3)5mFrnC%XP3{C*HgA}|8C*_D<+OtgGYyAd}!3jVJ(8x z@caYRAO@Wor5Ptg;$h6e?F~hXosMuS{c7{QFT|R6TVvzxkSoI#7sTVzI^+78>v#xC z3Qm(xmLT2dp$iql$~N@1oIuo00dIZeQGb-EK|m8E;~G4aFjW|g0}xR*XvM6@odH^@ zTb2n8%OA6vumW;h|NS4NvM$?dl9@mXd(2E&+-?(lq9y;@V(2!A zrQXz3>K(rtW(J(_k4F2c$QjYtMuqAhRU_GZZoROr23x9QxG>Dt=$0VI*UQQU5<@`Qk60Meh>M7!2xe=IGs12XA28Fz ztiJO;;Ut7<^a1)l_M!Cg_r34q*dRAV3m2QBoKI+z0?!QU7-ca{iG@!*@+~3gMM;TO>GE@=>ihCB6FxvhUU>z5i`GLHNV#@9R~bnwTW*?`kLGD z+0*|<^;l^k1`n?{v)cp#?-Hcs$u!c`KDuNK%sX zqf?|)_ca^RR^JTWhG|wmzZ(!(xz5wu9`Y^(7j0GW$yIa)G|n_&AF{66i_=R?Zj`T2 zUOLH>uOzNBAZsMJNw+yWFc`%vheshmVVE#WF({W^>#RYjidr7!l0Iu=X^wAL# zVEHgVxGg*f2ZKf`pLRU;r!hwTfFCA{VSigeok&D)AqVl9E!}D&Q;l- z*s?TgHp;ucyH&ouKH;3_IikA3ym3bh2<;psjG>5$$+pdQ&wk{8y>LAHb+fR4Z5?%u zH<@ZJV`$@MTBS+?+AJF@2}}l|?KK z55{L0pCo-gc2Y*CGzk3A>cXzTZbN@SRC~w!Y2|y;_u~DPecI_96F0MpUwflhV{~Ij zm`?rM8)_P)8W}%V%p^=thfc<%M&}b`#^uKN=_ZqnW#kn&viWQrGiG!(KiK4KaGQ)J z+G?a)w-UxF#By%!cSZX|_K2S+YzTKK_J!FEDNmR2wR3L%_a+s4#~C>m-D^;LmXdP9Gq9p4P`~m3zKmD;VQwHhvuW* zmBM`)t(0c^#iq2tCeYWJ0hhr`$hFL^%3>Q zChI0BhjhQ`^==FKYM(rUefzVoLk@APd^?4k)_;k2M%QOVaU@wk)M>Qc|4v?`cS%xB zD%1+sx@;7fPp&>*Vm#6-Yb3B{oPTi%HJ0#Hk)7SQygfL`3gJze&1H{BAJ?I7WjICs zv;6t+bE^rOlftlWwOY;XeaDP9=S}Fboj{ksXHU?@+Jk76Xupf(@>R>p!|20JNI^(L zZ(e8yK|4Mgkpth){NcLNjgpf|lfjZf9Ku6>UHi7(pewPt;i!a|bV~MBZuXOz`svAH zt%;y4ZeNbQqf)0#r@;x&9J`h^_w}=?BfUe$7M%(!2OI9Ij6=In&1KC)hGsp>rXz>u z8XMWg8rlvud0mtyj~o2ch5kc~xkcN))g~9#ZPQ2k^&e)9PPUy7{I9nYt~)Cqm*_i+ z-K(xT)}Ma~TEG68KKbo)CEOL599n~R%7@A4ajyPyCo>p8Sw~r@AeXHw=;ZTz1~B7( ze}A`2#8|*6;EMfRdcFIQ!oi64vVE&2bK7+CP3@;zdsRx?q;Ku!kCDZl?2_!qQ^!?r zAH65xSJ7FCn?a`>OhNu*}|(g&=45(!}gXBRL= zQlg)cQ6L~~p*K&#=Mg6AQl@fp5H#Rp1PB;Ndb`ZRuYwx0`HZK z98FAYoy_f=MVIXL!50wiB{iHNAaFjuZIDumAI`w~=PZ=foz>-Jd5r9A7z~W<3{4o^ zZ0y0(5DX zSc2Zk-PYN_jo#LY{2wL%)+1)(WaMaJ?`&ab3w+aSU})#!%uh!4*3tj^{qvkAZWjO5 zldaRgUJLw!jBj@snHiWE|CerXQ@*#WJfAJxOsqA;ENsAI2JSYN{pP`hOdWf5!Rm zRq#LyAn`H&ua72xG(C;72>y%&C(VK707cOl^Y?e4~C)E!;NnUd_{0|Dp-{i&(PSd0R-SmI&_3e(9NEh5PefM_X zf9N+$6fBq3yTVTJKkNB-^M)WlloqXkk?{Y}FK;MVjyJU3isSz#GBYeYx_=SG;6 z_y3{auc%--S5(hA>;JED_QUvt3B|Ezi^xFvANoBa1k0Te-c-*2Pv7gm#u*d46E89yEYV zAZire$ZY5ssbE7+aqU+7K)KD^{5v{+?3V<$1^s?iG<&8tH^Jo+Gh68rZ_&Bkzo(dR zg8wAg;H@h=O3l`()HSB-UK<~(JQZ!r{c@XvrOGROo5E{HLSRo^Ym~VxLvC+MhK|ko zlA62UZ*0{5C)L2nobH@MT-Nry)TXb1*iQAez>9K@hrn3@m9m)SucP&6h4mjB@BdNn zbUAghz|EU%rTEDRvGMoIbc!ZQ^62kG8#j(jxlRo?MgEL!-t%iEm2{LA$^qBu$rWn| z4*IpeYo6b4o~c?31MDvvzg0Y%z>Gt{r2kMg|5UGt$Rc5C#*l)xK3ljAJe|oes!erT#rbvtXQaTtzACl>bdjmUv z>=HPLiAam@n4TyasX08EcymU$T9%jpnt z&iv-jd7)>O-+FY(B9QH*<2G42g?!_pvn=>)ne>VZ5rc{JHgs7?f0u?o3@h0lK~ z^`_qYxyDNdDtUs=mduT~!q*e5DX-%yUP!fL7>UtfXG;Yo74R?zyCF7#?NaqO+yYaz zrp0-_D1TynNSm8vavt~#d^8wHeM^Jf(_=0%x1-n?XA}7}y?UcLLsBD8 z9i(Cp23f9o_UosnTWt3Hrw%c1^!h1ga9PLX>rmOh1(9aZ;cSw;&2aza5OCyfwGmq; zA-9JEql`*rnPI6wauu~Xj0WL3IGr&BnSbU0mpeG*C3RnIG4rxh+kkWiC*gF!ra0!| zNc~q4uLRhTc?Sp8z)+#-9m0?oH=b|}<5~EN5V9N#J^7}e!qq0Z%K~ST?@+ZHv1NSr z(FkF>TEA>A<&AXbvmz%)T8Ih$cb|gEy||5juKn9C2ta)EXJD;Fl-ji`6Yza0&{+AW z?HQIrnngAqTAUk30<}Sd-h7;}_cQTEe;DSaQ980FvsH@@lk12HlkS4CW#SMrHCETC zN@u@0bzEAxYB(ev;ZJ1zJbjCQKt(Hof44a~w31zA807rv=F%6pp({fmYH6pj_q7?I zg~wNs%|RarGh2&C@)`~Wn}nG_B?mA36N}a6Bm24A*i3;@=3on6i}XkFqWHpN-sR2$ z5(vGlOX_dt_P;ciO3WdUk^dxk~XLIB9wVC>w3;?(wMY0CriGnaL&B?5W4jXnNHiZwfsi8X+@r= zm{xtRRN-WaT%>P1Pns|yq`_u#49+g9x{_8=E6~L`oQ9RI@5pyi1!ZWIn3(|Va+C1% zHZx4yaZ+189t75?uVay)i9VDKd^#(6PTNAoe*=MEiQXVm3#m(JRM$8;FjyK+gTOg> zD11enDiE7}P9lJz}I0#Zd=6#Z8Jz*QS(0LL7uJkZ}x*}N$t9V*Tlar*$R%*@M`u;Pyr+-XA$f;$vib(kP&jiDl#31S*YAxkd$5U?!g zos`iGBaQiPhGJ(ds8?@j?7BR*rt2gv*Ha_a>qF-@n@6khS}arWili&=rWs8@V-Fw| znUYX3aa#@_k#|XSsOT8c9?9sRUN&XU*7YdfH)#6X8SkrKC*Sp2DH3Ty*EJaef|F42Gk!N3(goa6y$B*CfT231j*OfI$_sV zi6yvYmp&U%FytcK^0BUO$k^(Vx6+)%6P@3_99E){XUV`XZ6#7I34Q7fhnjdq} z@5M*anyDCY`r6Q$kjlx1QD*!65QHPpFGZs?z1w+AB8(3J-6{dvIp_H!4og?qX3X}R zu&RFw?HV0XI(Eq32VoVFrjdHHSp7=cbNMXS@b|^RkBR`9B?7I8Q^I<@tDwuZ=EHK|>8Ui4Ki#ZW_0 zb=DZWtPwL*QCt+_kA{0?&{Lc&D8&hi;1Bj+$_PiW12rGwehwEO`5{{t zGG5B%5dwaLi$+pi?)kVm3uDp9cFbb9F#!NR!A459y&+*H<=6e37wVwSJG)n$tx0l; zKy5ysOoIZeg!|UIFvp^p_3^L7E}> zr$=}g4a1fo0k_#zjI@(qIh$VCE9V68vTE5qfv!FxK+w%Ei@8{+tZp4 zMQ5|ue|$|xbrp7%WJ@cO|Aqpc;J27!$+ZjsV;Uf^e-xaPev=SCtrNy2IRxX3$jhPO zzX_!oHPn=#HK-qYDN3^jr51`D9Dl%$Bw-A0*+$*5vggf2@ZU`2VBK{$x@%up$Sa%! zK<&<=e_^bgEa?)?iQfX9uoaAfNKC`X0{zFDnf@osjdaiqUQN5;OjdY(S&lS1q_CK- zzz7~=$YJcv{P)abX5SP&1zp|lxxm|#ew0rKkE+Psl632j=t?P>sxG;3>C5>RxA*UD8ga z*>aozE4I7`o68vSc$y=kY&WsD2hLC%-S(Y0JT`K>6q)!&^~5_xK6y+Aq8M)MAt$~L z14R*}=7NK>rOL@ciwrxu**iET%!xT!X!Xfhk8f8W3Tce5>2$b`WK(meuFe_C8) zl%liy=um59WAT4c87!C*ZPETS;mrTk-3;#HkFT_{yRD#i{8n@jH^k$gNR z$z)H<_cg5(4cm8*Q4niuSMW9%82OYeR22!;Z=5ut)1Eh@-A|w)%}JlrzV~e=<0`sN zmM_q1Zr-2t3fNw%LKO(8be|^>$~#c}hJ+WxH{JeFUxoN-{3H#{akcp|FjLD<7vOzy z&`%|`zibJ=+lqJopzcWDi>GVT?OHuxmK!_-86RVDtu$-yU4XnCeMw_-KvVn|3G2JQ zaU3W33bz9YnHUIr13hrdav^~p#U~`+2ga>A_7-wmhmkK#{_)mL&`>-IU~dvYdik3O z$TKF$4US%LnPC5eTqk_X#>k6n2NTt$5eYU#vtv-}rufzXGv?wN%Oo6Ap}>2s^#5t_Wn^z#A&1t zJWkEhNU;wiPvk6`6s*pi-QG0MfXF?;*fm1hKdwI#P!Z!;wNG;Zqvl6kAnZgzB5C$!DlokXl?VnM@%%+v&$INRgBC2JB5fYI37+2`tVjMDOL|@~4 zK>1KToI~*f8#35Tt?yYBcpF9ap384vO-jzZPwyjvc1_~K9&<}eauxYf|a(3gnq)TmxK zq18}4|LM7$=&DsaF#9Dp)W^)cXVdp8T-aygR)A$F_?ci8VMH!}V+Rv&6mgODV|(`T z0UEOtytS)u*!5>JB`&Ov8wF$??^)DAVbNAzu>g%ilN@eB4eta40_X6YlW8g&5dX0Iw((!@RErErgv+rf5;s(ayU0Og4MO?6m}?by z((r>@&G^k|!rzQ$ySjB6Y&2xK1T+9=@^k+VB`a7a$d`*{eJcpz%pbpnr z&7_R!_innN_YX(WBe592iXG)UmHP?O%BTyW=<&@!-%TQXS1zlBf_REHw#sGCVbn)M zNFk{epv}7LO$aHB(WgJnO7JCR|Ez_|aX9sycodD#4?V};O`~Qp9}bcV83N^_Ekg~q zD?$bq)*$WJ1k0K*%N{sU70*Lneu_#Msq&I9scHz7U9AZjz*|!8juiZwI6{ zjHzV4uT|2=KR}7SeHnffIgKIW!8iU9<&?kpK{Our052{R8NiZQu5WoG0SbcSOCfm{ zjX~5nb$RuKpFiC6s0j%4&Smm`mM@doZMh=kmsEQo!~Qn5SWZ~1Zi-)UQ-%|*gdD@} zY=p$jk}$M1rfViuQ6lB-R2FfbyfS6s51F37@`b@5bL*$epT28B_s5(dsLq?hDwz9; zoM-J=3ESRA$Q`qFt*_}1vKg1<^APz-z1gGk6Tx2nWNA%=xU-A91QKHuUVEr_;#$GT zy4_>|B;Ia8ojC%fk-<7Ma_>onPG4nRvfXCcj11rDHDA|)nxs@TjdkWT3oAHAz^ zKspR}^OiV88?z_IXEZ<1Ymb~5bL*MJZ53!Xu7$utI@*hRc8r`$vhyqT_ESeQCBJ(K z?633eQP4Ku8YecU92={%f9orlvaCLQOOxl&YIx0I8b}~Z=Q;L%L5(oS4#>f(ge=Z{ zgqosWdCQ6#eXm=@-yBs}Bg5Ya7uEm)#*bq;zZ#vxN3(C<;Q}t{pyv)N~k(><8Sg86sq)%HkTwos@72IFAnKuLbu;SVCJ_o%=!Tmrf zpl#151*X*ZnIjdg-<`>M8(RLFR!8-q#eP;IB1xX>uw{eXKpdkj&T8q~dD{iIS_rM) z{YJeo@t@GDk5z<&d{nqX%OzN(+oIJ1C~zkizZ8cWU0*wZDZ_upQVf{%NNcy3-c6v* ztzNIV!g9Ny?o6g%vj00N*YNWjuOUwR)(?f}H!|ozJT|eRZ9yO4|9FAh$(DQ3DR>zp zEU&gE!#PMfHATC@{2hrxzx2{8)-U`|;q)EO96-`04*R0@(TJNA zx=qg1wi022%eW?iICF=j(cL7VO@X6pIU<4c<|t^U<{$J=^M?LadiTfi{8^zP zOV{I{%xx4C(csW=<8$sycSGQOul2f@=ytn6qr=T9Y`*+G6V3`zu+%q(Q+*z#gW=ur z!#)oIZFxgA%kx!SBmE)^3`_Sz)#ZnSDQhFvUx{TyXuPx7)AjLDLLshJ`PW|Z7*hm} zr+~g^h%qQX+2DhHYGC1{zUcw77om4x!i9!o^#BYB=Vgyf-qT_S)!K>FnWUf(liO(n z?y!Q{Hy`Q_{~Sw*v_^07=8K7QY4S|m14l=5QJKdi%d}%*;-Q9Yt#Wo|MvTctf zP;*Z~Mj7UF^sOy8L?%ndd{#ex-}%L0dy#|sQvkLl-%K1^lpgcw)!;Yb*ZJ0J&b|^7 zod-YqSOd+i4E|o?t58Dhpe6L(&Z~Hz&t8ADWQmXczRx1DhARw2kVcK-?FC&I zY<5U93YY1WN1tyNQSm3NJ7>_ovPMXqGei3JInM_ei4+b=e~9%db@B=#UStAi zaM~DteZccK4`@Y!+$RN#gN7Dz3H;{xW~jvK6)+MLHdu#^(Ng%?J>BUm;(uaF)jkyW z&`>piX(?gDza$Pw=O9Y`%m=2{TGHW>%CjO;UO0fPo*yErdA@R*@Sss(!@%0%t)eFor_1Gh@~W-Aup{K$UnQ$R zwvs-}|e9Ft~GSfR(5*B#!B=JYOqtLLxXKiYZIJc{)3_A3@Jwf~_ zq}QP{9y1HKqP5QXWd4ZdK$xw#u-yx)roDe~h4ep){U6TECV)9kK_J&EAJu2U~gv_^gL872EfJx zobi;UFf=T!rk5u(9byP{(MC21*3ZbYQuli)IPomb8fXTD7n!FQOUFCvr&!~gbMbkP zAc?rRRIu_b(G>WytMogv7`pF?Q;Zx9WKt9zUut!Fv)K2<*FcK<+zILVcIe3WWuKkg z**|2Z4RFH3h;~jQp3};V2%pS%3Jzgh#}xAe9tNZ5d|CVE_7Z%HzS$wx4MWh!l`g8o zym$8TU?^a;e+l!?FzfdSls!LK2@^ zpslzsx{8=6iZqb#;(DF;WhgEHhr)x4=%3>7o9-+83<#h24!I{#FQ#&QJYt_Y@aFq9 z+L|f7UEBcz-`;(s>bd5QGHM~7|6X!h3Ln+@x88Te@)pTVpbt*Kkqi-XS^rP2Oz;%k zG7~>IQAkiNT{QelUPU8(hOQBIHG>12k6$ZFOR5jpM~$*L{{WBqkZZV*8MRfA(Nx zbNp~Uig3LUrV3Ju1BHKOG4*dFI8i1iT5Kk)h>uKOaL`OXJUVxY$IRLvYS|@<4sxN| z)E@P#kGAIm7=2%`^Lj|`)=3b4ij%Yq4txD^f)Lmh7j2Lbvlx!0#q=<874PYs2#Pd+ zH4%gx_+-2n&mDhgpc|IQdlZ%z>GO44v@yVa@@O*D7VK zDr8oEBHJDXQKm#VUQ2lsL&!0tE$^&*RN?sSj4o@DM| z;s^-(iUPFp!)?>-1;V?i($H)5LCX#iR`?X%;s?Juv8e zhq1}+a}bg2UpbBKpqK&cbo0BnF}UCds_s}u2K;5ScA##nbdjxK_ucUB3GeGwjHtl9 z5X0|WTnZPKm`4yUH-CJR${lF7@xu=8SxDM~#ozez=f_*!UQ6QlGYb@NnBR=^^4bTE zy^u+C2F1)x^e^wfxt#}~w76|oS_j%@(!3b_Lk_uy_{nQZYhc=d+F3#J&+Oo=py(|t z@I1gxk@*X?3czYJ4A=F*-y)L?#yFKQBAhwMR1ZrurQ=YS5YVEB$UY~oua7l=*Rm#1 z&}i}WQCi3tnF^MNY)4G?Ys5pN2D1e%$M4LCC>fbxX3ZWkjHpap|+fm^4tx#Mpt^5Xipq+OT(QJs8giK6()$>J43l0Co*~{AHD7Z zNl-8NeV$uX(hrmSLP zqkeH(r6QfDXlJ=TOhGHj#S?o5#D@j_oHeREAU(aa@2_~j+!tzdFt%pg@p9k>Z9K9C zoJTUxHc_NAcHWEt4D!R?K)(Iw<&Wgm(+Fb0$q}nVV21^^whe44@LCy<;1-|18K>K0=PY9&|9n5xyI0^!HO_yk(uH2=^^ud=pzR8GAvlZZv zpEYlz=AVxCN0H=N6)%*g`5?lx@`-*juW%{UJ%UP^oR)e36YiCY!M(E;T9-EUOt-Sf zJ!1#o%w@@-0MC#J%BFJZbTbK{Ca#p$kCo^bi?c+e&>BGDJKC}++g?0r(&5H~GRE~# zsBKz@U#)<%+N1fcpX@qmxa#tfc*x1%Flg*FuZo@3nU#Dy_YFtsyOQO?{|bZ=;3$Mg z9=@WxK#4QP#scl?-Yh}%aaOepNVZEUe@B~wLhHDK#m+j4Eq#IHQ+W+T*13n1E3zkU zzZtVbMkIME2_=V)nJ1l?Cyf8Wk1Fxl7d1m5@g*l5o+SeC$QW|cz={*D@H>~_8g2uJ zpsmKgCI`A;1S9qY6Kl}15XaHyI;RtB%kE{sD&Q$);#npZ_e4-|2nwNbIBfLD5?e?{ zA->~h6M|mLs?X_Tkk@L{OAFAfxSI~ezuuRcoHKf|3OIi}^yl02a;&8x&@?C2upBq2 ze5>GTKE2jp+vrK%Axxn)GMtlB;kh2Ny?%M%E?V5U;?iHn&d+~}hvrPK{DKXyJ(?l4 zWA&b2ow4&Kqmvk)&56`|>tYcF-ma6q?^MuUK6aZ0R}tYp=kLJXlD+Y-L|V6_2uFBe z@GjCVH@k5)rwZ2(w+yxfFkb(4T2#^yu)kjpss9FGQ(?TbC-Kd*wLq>RuiJN@~1 z8K_G}UOM9kH-W0aKn!-M8@Py=@DIW3`9_|2o`1CwU#k!jf?FmAP3*4x&d5HB1d#SC>X8$hsb-!S#BRJR{rYXL-*b(|f&Y{5jXlT`-rvWqO8 z97KSYtM&%zRZH&&e8Qe2`|sdzIeY{LS6ne3;--6seoz14)DaAj`(lEf%RZWSro=W3 z{9sA=8TLdQ8PHKQBu|S%lv8j3gzYz!12SU}wW?pAGe@A<@RRM+M%kUT>-dDc9GaKg zIs#JZw@jXiU=7KW;rqVg7xImh00mdHv0Yl+mUwg4W)1Rm_hsEF&yTb1;aXVtb=D5% zKKIn^b1Zx(WV;y;e25w0Ak@`&FXAp)xmnQ%a)}r)-Q#|s09&NDyJPz#%C+cI$n9XM zv#f18G8V!~E8NQ<-n@`NPe~xpC7>zTLcHB~u7p%aC$ZW-rV=%$49m6K%)mnwWfk7x zWL8uxIzV_mDo)T5zbMM&nvr-<-4=iShmv2Qpz}141br(;;Ce8yV%(t3#W&X{H1fsl zFOuqi3zL!Xb2_Y0yl=%JWqVeni#s=KWp367N5en{02s)BQy?1rXE9|L9u$k@e6EZ+ zM;XA#E$ac{Krk*Z(*9wMh~1VAx`+VzPLd!~t6oRc0us@dpCD*TI}9r(*aOvC26_vNiU>HF-~B|^ z5jg9F?t}u=BK`bD?!Sh*&upuR{E0utdkiaZBrVtvpt0#tTkuqaCt?bbIcmgfNkU4+eRy!V z%99DP4VA4Zh=B8Xva3RpqZuRTqx()oy<&N8syJkue9|}9KOgLe*j=2^u;CSsZ$WR;iwMTl49It1(Bhnh`zNfi(C*fI_2<0u*%Qpv z^s48HPC&%nmV|xB+=yFk$)ca#vnHa4NO07O@O!(b87uv;hP~c;br>dz;nDW9o=A~q zc)ND)Ax~{*huFasoWQ8pnMyg=*o03wP5t+nv^_C&W$A-Pk4o0K7l=B{hM%y)wh?dC z_1Z8E*VS%d0@Z-b_LUB?0EwFnHR5*9H}gqp^&} zPWd&WqZHiDn+4{1F7I~YAXR;nZ2nM_pF6>SiQ|R!ae>TK_7{YIKxWG6oB$ra({wFq zZ(e?AV8!fuEv+71h<))pILXqW2YCK1+IX6T>rX`lq{{=6sO|55cl` zQss`Ud}70DED+Mx{?U8L66N_A73}s0SMP6OF4t{3Z(H-8rsz^po2i*7HEq^ZHr2vB zjrE;*!>Z=i-Zv_cv?zFPD2Z~@Hg>7$*o56|-_M>~BJT6*Ah+QSJPY)wJfNSr4cYylRd;XcE-+8)PS7yb8mdfY0ALpdW^ zO_?)YRab!0@PR#K1JfUxA3p!o7S_&^Jx=zkb_=M4Cm%LrT(f5CJ!6B%GT9@K_p1C%zVXpmL=Sc1l-SWzLJUzGGThjDV||OlEH8EC|98X6gXI%)0eY zgCZf=k4f2f>GmyDUq@H6$CB}#9llxNMjEA-gIua- z;nR0xvXZG;46Jx9)jNMetvP%JopZJIDUf5H8?`v_tH73iTu=u()#&RMgSZN=t(Le} z(o@nPr3Y26rG64wbX%&&VvxwgZ2#K$?wlUdBXizNIM7*r;}Uq?SrT(OMi>2R4)e?@ zRXzT*>BraHiSg4cwC#$o7y=z0d_nK9NAsa^GYNVWI45X#AT~W?H^EoY}AzKCr_n zA*QryBqvZIByi4aT6imehBqKChh^<)hJpVjO;LgT7kDW~tlx~cdYi$Dn|p06vQb9i zi0)jp4I9Y#eILPD%{v0}DPGfod{K_QgAn}cz0AprYGGW-KX1AokS2ZlI1HvP6rDn3iUa9)vayQTQPU!TkWb78 zk;V--Jo-38XEYRP1#rq9ZFe|Gx5E(o33+OCf#E_MB2$GijI-o9H7+d5zp(2VlSc?( zy|eBYs(hH))_G5F*MN5XZc4FEqpQ1F>M?p2C-G^Yzn?Z?vdb}lHG!a3@NX`tLKIw| zq6~J-xt+p=qt^37^gfFa`r&h!5Bl)oBlH86*TVZ8%!?}GAhc!tGyp8Jf?^)pvML%Y zg@oyEzvE=PHUaM+*kq!dSQ%_XVuZ3rd{qxeD(gMwaF+(LW}hgnB;T(vx0_afILLY; zxklY@<+Ab{*~u^-!cO>%OvG%DEpNx9u>mjzMPCM^eGSr0%;bt&F9D}YNvL?N<*pDHZHP9`-l3OT=rhG-=}G79*zZJ}Ej4@Ydn z#oQZyIK9m!YyGW)NhGic%V|Z&|7^V187-X^gTw4bEtqTZ3j^Eu}oUo+qJPYtWxz3 z7+ckpd_ELf|Ij-ceW<%Fwge!B(=K|#SS++PsqJ?cDl^k2@!q16nNaVS^$5{PGgV#{?v_E_+JxK|5y>^Lv1f}girLn&-`Y0Fbi7EbaINsAgG z-PK4CNC-`5tjS-HpB5V<`Fk7siUH_u0Fr/lJ*L21_?o)=GotrRu+|nH(uFql@ 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

{8Z8XFYV0f>aFy(_0bw{2q^J!i4>7M5SD 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 z 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 literal 0 HcmV?d00001 diff --git a/docs-src/blog/bharatmlstack-history/post-four/index.md b/docs-src/blog/bharatmlstack-history/post-four/index.md new file mode 100644 index 00000000..fc57c10d --- /dev/null +++ b/docs-src/blog/bharatmlstack-history/post-four/index.md @@ -0,0 +1,204 @@ +--- +slug: post-three +title: "Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving" +authors: [jaya] +date: 2023-10-21 +tags: [llm, vllm, tensorrt-llm, mlplatform, meesho, bharatmlstack] +--- + +![BharatMLStack](./bms.png) +## Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving + + + +Serving large language models in production introduces new challenges across infrastructure, performance optimization, and operational lifecycle management. The LLM Inference Platform addresses these challenges by providing a unified system for deploying and managing open-source and fine-tuned LLMs at scale. + +The platform implements a complete LLMOps lifecycle — from model registration and automated compilation to deployment, runtime optimization, and monitoring. Designed as a self-service environment, users can onboard models directly from open repositories such as Hugging Face or upload custom fine-tuned models, and deploy them using a single-click workflow with no manual infrastructure or configuration steps required. + +In addition to fully automated deployment, the platform allows users to select and apply custom inference optimization techniques — such as quantization strategies, batching configurations, and runtime-specific performance enhancements — enabling teams to balance latency, throughput, and cost based on their use case. The goal is to reduce operational friction while enabling high-performance, production-grade LLM inference. + +## Why LLM Inference Is not just bigger ML model serving + +Large language model (LLM) inference introduces a fundamentally different set of challenges compared to traditional machine learning inference. While classical ML models typically perform a single forward pass to produce a fixed prediction, LLMs operate as autoregressive systems, generating outputs token by token based on previously generated context. This difference dramatically changes how inference systems must be designed, optimized, and scaled. + +### Autoregressive Generation and Sequential Computation: + +Unlike traditional models such as classifiers or recommenders — where inference cost is relatively constant — LLMs generate responses incrementally. Each new token depends on all previously generated tokens, making inference inherently sequential and dynamic. This means latency and compute requirements vary significantly depending on prompt length and output size, introducing complexity in scheduling and resource allocation. +Because tokens cannot be generated fully in parallel during decoding, GPUs may become underutilized without specialized batching and scheduling strategies. This has led to the development of dedicated LLM inference engines optimized for token-level execution. + +### Prefill and Decode Phases: + +LLM inference typically consists of two distinct stages: + +- Prefill phase — the model processes the input prompt and builds internal representations. This stage is compute-heavy and highly parallelizable. +- Decode phase — the model generates tokens sequentially, predicting one token at a time using previously generated context. + +The decode stage often becomes memory-bound rather than compute-bound, which creates new performance bottlenecks compared to traditional ML workloads. + +### Context Management and KV Caching: + +Another fundamental difference lies in how LLMs maintain context. Transformer-based models rely on attention mechanisms that require access to past token representations. To avoid recomputing these representations repeatedly, inference engines use key-value (KV) caching, which stores intermediate activations from previous tokens. +KV caching significantly improves performance by eliminating redundant computation, but it introduces new challenges: + +- Memory consumption grows with sequence length and batch size +- GPU memory becomes a critical bottleneck +- Efficient memory management becomes essential for scaling concurrent requests + +This tradeoff between compute efficiency and memory usage is unique to LLM inference workloads. + +### Dynamic and Irregular Workloads: + +Traditional ML inference typically operates on fixed-size inputs with predictable latency. In contrast, LLM requests vary widely in prompt length, output length, and runtime behavior. As a result: + +- Batch sizes must be dynamic rather than static +- Requests may enter and leave batches asynchronously +- Scheduling systems must continuously rebalance workloads to maximize GPU utilization + +These characteristics require specialized serving architectures that differ significantly from standard ML serving pipelines. + +### Streaming and User Experience Constraints: + +Another distinguishing factor is the expectation of real-time streaming responses. Instead of returning a single output, LLM systems often stream tokens to users as they are generated. +Because of these differences — sequential generation, growing memory requirements, dynamic workloads, and streaming constraints — LLM inference cannot be treated as a simple extension of existing ML serving systems. Production platforms must incorporate specialized runtime engines, advanced optimization techniques, and observability tailored specifically to LLM workloads. + +## LLMOps: High-Level Architecture + +![LLM Architecture](./llm-plat.png) + +The LLM Inference Framework is designed as a fully automated, end-to-end system for deploying and operating open-source and fine-tuned large language models at scale. The architecture abstracts the complexity of model optimization, hardware selection, deployment, and runtime management into a unified workflow that enables users to move from raw model weights to production-ready inference endpoints with minimal manual intervention. + +Our LLM Inference Framework is architected not just as a serving engine, but as a complete lifecycle management system. As illustrated in the high-level design below, the platform automates the journey of a model through seven distinct stages, ensuring reproducibility, performance, and scalability. + +1. Onboarding & Registration (The Source of Truth) + + The lifecycle begins with the Data Scientist or engineer. + + - Model Ingestion: Users onboard models—whether open-source (Hugging Face, NeMo) or internally fine-tuned—via the Truffle Box SDK/UI. + - LLM + Prompt Registry: Unlike traditional systems that only track model weights, our registry is a unified control plane. It stores both the Model Artifacts and the Prompt Templates. This allows Data Scientists to register and version-control prompts (e.g., "customer_support_v2") independently of the application code. + +2. The "Black Box" Build Engine + + Once a model is registered, the Automated LLM Compiler + Quantizer Module kicks off a background job on ephemeral GPU resources. + + - Transformation: The raw model is converted into a TRT-LLM Checkpoint. + - Quantization: The system automatically applies quantization algorithms (like INT4 AWQ or FP8) to reduce memory footprint. + - Engine Building: Finally, it compiles a highly optimized TRT Engine specifically tuned for the target hardware. + +3. Intelligent Profiling & Validation + + Before deployment, the new engine passes through the Hardware & Inference Runtime Profiler. + + - Benchmarking: This module empirically tests the engine against various hardware configurations (L4 vs. A100) and runtimes (TRT-LLM vs. vLLM). + - Optimization: It recommends the optimal configuration that meets latency SLAs (Time-To-First-Token) while minimizing cost. + +4. Smart Artifact Generation & Distribution + + To solve the Kubernetes "Cold Start" problem, the LLM Serving Artifacts Generation module packages the model using a bifurcated strategy: + + - Standard Models: Artifacts are uploaded to Cloud Storage (GCS) and downloaded by pods at startup. + - Very Large Models: For massive models (>8GB) where network downloads are too slow, the system pre-caches the model onto Secondary Boot Disks. These disks are attached directly to new GPU nodes during autoscaling, eliminating download wait times. + +5. Image Streaming & Deployment + + Simultaneously, the inference runtime container images are pulled from the Artifact Registry. + + - Image Streaming: We utilize container image streaming to allow pods to start initializing while the massive Triton/Dynamo container layers are still downloading, further shaving seconds off the startup time. link + +6. The Inference Runtime (Kubernetes) + + The workload lands on Kubernetes with Autoscaling. + + - Dynamic Backends: Depending on the profile generated in Stage 3, the pod initializes either TensorRT-LLM (for throughput) or vLLM (for flexibility), or spins up a Dynamo worker for distributed inference. + - Data Loading: The pod either downloads the model from Cloud Storage or mounts the pre-warmed Secondary Boot Disk ("Pull from Disk"). + +7. Client Interaction & Observability + + Finally, the LLM Inference Client executes the request. + + - Prompt Injection: The client pulls the specific prompt template ID from the Registry, ensuring the exact versioned instructions are used. + - Streaming Response: The request is sent via gRPC, and tokens are streamed back to the user in real-time. + +8. Observability: Monitoring the Pulse of GenAI + + In traditional microservices, success is measured by CPU utilization and request latency (p99). For Large Language Models, these metrics are insufficient. A user doesn't care if the GPU is at 80% utilization; they care about how fast the first word appears and how smoothly the rest of the sentence follows. + + To capture the true user experience, our platform instrumentation focuses on three critical LLM-specific metrics: + + 1. Time to First Token (TTFT) + - Definition: TTFT measures the time elapsed from the moment a request is received until the very first token is generated and streamed back to the user. + - Why it matters: This represents the "Prefill Phase" latency—the time the model takes to process the input prompt and load weights. A high TTFT makes the application feel unresponsive or "hung." + - Optimization: We closely monitor TTFT to ensure our Prefix Caching is effective (aiming for high cache hitrates), which drastically lowers this metric by skipping redundant prompt processing. + + 2. Inter-Token Latency (ITL) + - Definition: ITL measures the average time interval between the generation of consecutive tokens during the "Decode Phase". + - Why it matters: This defines the "perceived speed" of reading. Even if the first token is fast (low TTFT), high ITL makes the text generation look "jerky" or slow to the user. + - Benchmarks: In our testing with Llama 3.1, we track p99 ITL to ensure it stays below human reading speeds to maintain a natural conversational flow. + + 3. Token Throughput vs. Request Throughput + - We distinguish between two types of throughput to balance system efficiency with user load: + - Token Throughput (tokens/sec): The total number of tokens generated across all concurrent requests. This measures the raw compute efficiency of the GPU and the effectiveness of batching. + - Request Throughput (req/sec): The number of distinct user queries served per second. We use this to determine autoscaling thresholds, ensuring we scale out before the queue depth impacts ITL. + + 4. The Monitoring Stack + - Real-time Dashboards: We utilize Grafana to visualize these streaming metrics in real-time, allowing on-call engineers to spot "slow generation" incidents that generic "500 error" alerts would miss. + - Request Tracing: Since Triton Inference Server does not log request payloads by default, we integrate a Helix Client to asynchronously publish request logs to Log Tables. This allows us to trace a specific "slow" request back to its prompt to understand if a complex input caused the latency spike. + +## Supported Inference backends (TensorRT LLM, Dynamo & vLLM) + +Tailored for the Use Case: We do not believe in a "one-size-fits-all" approach to inference. Different use cases—whether a real-time voice bot requiring ultra-lowsub-second latency or a massive reasoning task requiring huge context windows—demand different runtime characteristics. Our platform is designed to be runtime-agnostic, allowing us to automatically select and tailor the best engine based on the specific requirements of the application: + +1. TensorRT-LLM: The High-Performance Standard + + Suitable for: High-throughput production workloads where latency is critical (e.g., customer support chat, real-time voice bots). + + TensorRT-LLM serves as our default backend for these scenarios. Our internal benchmarks on Llama 3.1 and 3.2 models demonstrated that a tuned TensorRT-LLM engine significantly outperforms standard runtimes, especially when utilizing INT4 AWQ and FP8 quantization . + + Key optimizations we tailor for these high-load cases include: + + - Optimized execution via TensorRT engine compilation + - Quantization-aware execution for reduced memory usage and improved throughput + - Inflight Batching: Allowing requests to be processed continuously without waiting for the entire batch to finish, drastically improving GPU utilization . + - Custom Plugins: Enabling specific NVIDIA plugins like the GEMM plugin and GPT Attention plugin to accelerate matrix multiplications and attention mechanisms . + +2. Dynamo: Distributed Inference for Reasoning Models + + Suitable for: Very large "reasoning" models (70B+) or scenarios requiring massive context windows where a single GPU's memory is insufficient. + + For these memory-bound tasks, we utilize Dynamo, a low-latency distributed inference framework . Unlike monolithic servers, Dynamo disaggregates the inference process to scale resources horizontally: + + - KV Aware Routing: A specialized router directs requests to workers that already hold the relevant Key-Value (KV) cache, minimizing redundant computation . + - Prefill vs. Decode Split: The workload is divided into Prefill Workers (processing the prompt) and Decode Workers (generating tokens), allowing us to scale the compute-heavy "reading" phase independently from the memory-heavy "writing" phase . + - Distributed execution across multiple GPU resources + +3. vLLM: The Flexible Baseline + + Suitable for: Rapid prototyping, testing new model architectures, or low-traffic internal tools where ease of deployment outweighs raw throughput. + + While TensorRT-LLM is optimized for maximum speed, vLLM provides a robust and flexible baseline . + + - High throughput through dynamic batching and efficient memory utilization + - Paged KV cache management for handling long contexts and concurrent requests + - Strong support for open-source model ecosystems + - Rapid Adoption: It allows us to onboard new model architectures immediately without waiting for a custom TensorRT build. + - Benchmarking Insight: In our internal tests, vLLM provided a strong baseline but often lacked the specific max-token optimizations present in our custom TRT engines . We use it strategically for initial testing before committing to a full TensorRT optimization pipeline. + +## Conclusion + +Large language model inference introduces a fundamentally new class of infrastructure challenges—where performance is governed not just by raw compute, but by memory efficiency, intelligent scheduling, runtime specialization, and lifecycle automation. Unlike traditional ML serving, LLM inference requires systems that understand token-level execution, manage rapidly growing context state, and continuously balance latency, throughput, and cost under highly dynamic workloads. + +The LLM Inference Framework addresses these challenges by transforming inference into a fully automated, reproducible lifecycle—from model onboarding and compilation to deployment, optimization, and observability. By integrating automated quantization and engine compilation, intelligent runtime selection, cold-start mitigation strategies, and LLM-specific observability metrics such as Time-to-First-Token and Inter-Token Latency, the platform ensures both high performance and operational simplicity. + +Equally important, the framework is designed with flexibility and future evolution in mind. Its runtime-agnostic architecture enables seamless adoption of emerging inference engines, hardware accelerators, and optimization techniques without requiring platform redesign. This ensures that teams can continuously leverage advancements in the rapidly evolving LLM ecosystem while maintaining consistent operational workflows. + +Ultimately, the goal of the platform is to make production-scale LLM deployment as seamless and reliable as traditional software deployment—allowing teams to focus on building intelligent applications rather than managing infrastructure complexity. By combining lifecycle automation, runtime optimization, and deep observability, the LLM Inference Framework provides a scalable foundation for delivering fast, cost-efficient, and production-ready LLM experiences. + +## Future Explorations + +While we have achieved significant milestones in latency and throughput, the landscape of GenAI is evolving rapidly. Our roadmap focuses on increasing flexibility, reducing costs, and enhancing reliability for enterprise-grade workloads. Here is what we are building next: + +- TPU Support: To diversify our hardware supply chain and further optimize cost-per-token, we are evaluating Google Cloud TPUs to bake it into our platform. By leveraging the JAX and PyTorch/XLA ecosystems, we aim to unlock the massive throughput potential of TPU v5e chips, particularly for our open-source Llama models. This will allow the hardware profiler to dynamically choose between NVIDIA GPUs and Google TPUs based on real-time availability and price-performance metrics. +- Multi-LoRA Serving (Serverless Experience): Currently, deploying a fine-tuned model requires a dedicated GPU. We are building support for Multi-LoRA serving, which will allow us to serve hundreds of unique, fine-tuned adapters on top of a single frozen base model. This will drastically reduce costs for multi-tenant applications, enabling a "serverless" experience where specific fine-tunes are hot-swapped instantly per request. +- Spot Instance Orchestration: To further optimize cloud costs, we are developing fault-tolerant mechanisms to run inference workloads on Spot Instances. By implementing aggressive checkpointing and seamless request draining, we aim to leverage cheaper, preemptible compute capacity without interrupting the user's streaming experience. +- Semantic Caching Layer: We plan to move beyond standard Prefix Caching to implement Semantic Caching. By using a vector database to fetch responses for semantically similar queries (e.g., "How do I reset my password?" vs. "Password reset steps"), we can bypass the GPU entirely for repetitive queries, reducing latency to near-zero. +- Context-Aware Autoscaling: Standard CPU/GPU utilization metrics are often insufficient signals for scaling LLMs. We are working on KV-cache pressure metrics for autoscaling. This ensures that we scale out before the memory fills up, preventing eviction-based slowdowns during traffic spikes. +- Online Evaluation & Guardrails: We are integrating a lightweight "Trust Layer" into the proxy. This will allow for low-latency input/output filtering (Guardrails) and asynchronous "LLM-as-a-Judge" evaluation pipelines to monitor response quality in production, not just system health. \ No newline at end of file diff --git a/docs-src/blog/bharatmlstack-history/post-four/llm-plat.png b/docs-src/blog/bharatmlstack-history/post-four/llm-plat.png new file mode 100644 index 0000000000000000000000000000000000000000..1f0fa9f788fc7d967d3177ba128002bc3f74188f GIT binary patch literal 248772 zcmZr%1zgli+XcicC<=?RG%O1O(xph(0t+Z1-Q6YKr4maojg%lNrF5r+pp>XIiqhSk z->i7w@4mrrm#u%yJTvpeIcHGHin70;N52^h zi$K9zN=jKyN(!dz>}X+aXO4x1L?voo(Ng^g&D4EFhl__0mtS~DgeDf3$72uNfrrT> zah?&IN-CGWjJWzvA5oH12n(ksDm6CLzEy9l&6dZ!Z1VnH13tFvsAd!YB>(=|eirX} zy35*x5HHr}@xw>fHwy5@-!UjbZ?5!HBq#L1MXun%u!;6s{Xf7oI=*OjVVl(Qg^Hb?Kj=K?s1*ng;w~~) z?@tJBXEqJ-@<|sFcz_zDJA=tZggw)u#JWX#?RX_IB{d%pr8)ZY9*zL%903;{4Shdq zc6Xaw(qEjcJ%s3uf-}7J*#7F*4heb66tRj2>75ZzwFswJ(863*lXK7PoO@bo_`jIz zDT}FLR_jx>yR%P_P=UQxI!|J@B(WAnrOxa*nX z>DOAtZ}@8L+>!fB1c?#KE{D}+ibarHct)~K16s_WT4Z+H+ydk0&=1jZdm zCP@GvoBFGUa4k5rt&p~;?>^-|S=e;F$S?ftsEydi8J`tvMCA0CDW_(&KHu1VdbAzC zXX^i$HE%Kec>0GjHOusa39S1+IUZBpSi2_c9?Vuf>1eK@B~@__eNX6^HyJ&Jkhs&v z?0+jQTjcHvpWYSqgxWK1F&4wGe{J_t+mQ>3?uV{i`z2zRce@HtC@`Z<(S)>wv52Om zWLoRe&=YF)srTgjHI5&yM?$~OE8Y7>E@;`*tZmLXt9Vy2L(x#p-Ydu2>r)I`NLx^! zv9GJg)ahq9oyjHxPA7!TlF5=ED`7ciX@8Hg&QV_?g?+O2FaYbPUqf~EewPQw&V8)o ziC>(*Haz-5t|vol{4>PZl)JXnsopgZ{mgoLqgm9?h@dCvdSoYg4L0Y`D>xF&VYp5( z{0Gl|Shjj`TvC1ifQ#@}5OE1r5%#Rn&5^4GEe<8L-<~o)CQiRh`riC8^+Ztln@bH? z-+xjcM8fd!v*`#BwA>PG5TAB(V|q~}j5xX-CWmB+3qlfI=DC>~lK^8yJDXj56tyCC zgPsX}4N2)t=@sY-FGeddhZMXN%!AkjM) zlWhXK?L=Jgq5|kY4e zbY#b*1r_TgmtcOdLiEF~z8RP^kG3QSLvox)TnxH6HY-j{mG4f{EhTvdX=JLRw#=xE zb*^5HtFowSW!{jQqYc&F2*DT~nYXVpvwys5Qc+dqRozyO(70LHtIn!AUg&PH8Z;*B zX748C_Rc%JPSP*`=*I5NrRu@S&sKb_&uQ6HlVo+}3twmCe1GHj*~sd?%?95y3Ku>W zz9qhQRt>qT3rVgw{NRm&2J&L!&4~3cxmG&X&UX)=m)~XOBeebTZDqj3D(Xx4w@-sQ zIhCr*PlkByBYP}@>xDkdqS`W!Me zG92{n^+~_uez&e8sgrdZPbK>r{?T-fE17$r*O5!?Ixocsaz=_OPp#Dw*0vwZ*N3;i z-drSEULB}^w=b9ViZ(CnZL?&v!FeXOgOMeXJ=dVo%lG6@-~AG7YYe#-LP|I(cH$xR z?Qs;!+?mF8tlM(yQF7IvCZV6_E

hzHQWUipfBu_UW`fsx3s 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

9j-!xYAN|RkP`LB1a|*6!^tqYu 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 z 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 literal 0 HcmV?d00001 diff --git a/docs-src/blog/bharatmlstack-history/post-one/bms.png b/docs-src/blog/bharatmlstack-history/post-one/bms.png new file mode 100644 index 0000000000000000000000000000000000000000..b397fc8825d633167b4fecdda172d84233d3cc9d GIT binary patch literal 197116 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/lJ*L21_?o)=GotrRu+|nH(uFql@ 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

{8Z8XFYV0f>aFy(_0bw{2q^J!i4>7M5SD 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 z zEi;XmcIX^@ZoBLy?cu4jVl8NUl(Qb-Xrui9r~baYq(UK_%-?0dOmc_$@ObSQ`j(LP zKfpvt4C5{VBqzK?!u9n|M`e>Z+{pmGNvA*GO;&(BN5dIdTt0@)lD9Xa)UKaQ%m70) z@QVt8CM>Q@`y;3TiJ@oD@z2n}1L#@h_64h5mjIzp;RnCi{|`iA?Ua_o`4M zP@b_WdFA8Y=G*&?o5F}HvFVUDas?<#+t7cjB5{ug?#?^@ra>d=-7C>!Gn3uyjIg|= zeg6uExZq_UD&xg$K)R!QZ`ZQVpK!n!I+`2{LXp{}$17i?4~Zu=6>-4{Wh%;+-0ow) zpsr)o3|OUEoN~LcUPDv8;bZk+35R<{%x3DiW{?yuqqB49*T5#dKekf7(wRyo#y=_b zvxS(UF=Z07jbz}}EA7)%1WJt+8Mw1TZkSFynIEW0Ar&yds<%pt9OJ!TW0|JsNlK(` z^OGiC<=hwb=4`t{*Q$%yo;0!}B6S~6nXrWYSUna|Ae zUkZ@{*-d+fp*QxT?!1&daRSBhH$s6LfvA9+MSRw#euFQoZ)m9E6*vcXu1CebGr+ZwKQL?%AN$UO%~(hIC|Agr zD_h6Cad^)Mg4t%=c`Xck)umpkTo^jw^7cu0_vRD%V4lm>&5Yauj4{cGt7Um-9eP#@ zSclzU;ScXOFj|bE&r+9lJGZv!pIw46VxCp+AX@_-WC5?^h}vwC`>pYsqphf#<}ku} z*NEWbJH^mSMj;mhi8fV3d6Rj2wl~H+gpk!bC1p`1B|VG1ze5={owZA*Ed8Ff0li*{ zM0H2x7qsRIXJY5=-qSg6x!1SLhil88LkF3+*`DeQz~AWKJN&%V+^hJ+v{Lw9!>!1b zDoLLCGx>Qj>cT)^@)urw@y^d%RhpIv{E!2Fkj9~&{Wk9G+qjh$8i$x=9v%X>0M z5iZLcwn4Hgo^=w_F8}lJs-Wa~&zu$D(gAo5r5BX5a|$)hz6LlGKde3*mhxo3-EyCs z0Jsc^LSmc${K!GE8;n^Zcj&4--oOorP~*PK5(P~P8hb%z@#m0vsSY}r?tw4^ON%@M zz-!pYRFKzcuN;%^rN88LtiGK7-V~Q{K^}O|cKpH{#s9kK@_zuU(8^u>i{KXx19i8~ zvoNDxrS+J9k(`7l>2Y zXH350-Q2^&9F6sZj?d&bSekH*_Q^fjl1Lf4UjUNQXw5EuorwZid`dr=DvbSIi_#TP z_Lz-OP+E?3VgI&4HTOYYI^=_mUwc$_6szQJ5gf8icLTY~%^=2LRTyFKd*-U3AUl5e z0ByaP3l9UqwS8hfxXb96pavo^x)T&rc&z3Ey|8~lZtvNW2MN3o6iN`+MugueU^-&r z%OqrZ0{_u%w$wsv2-31{K_f53TO`eBX^>)CFWO5MR^y$GM%{z}M7(d1v|BY@?c(mT zAnkC-u9V^pZo79pKhMAOb9t!c#j!#$p3R5mAqUX87F<@0`Z?kUy9o!9T^Q!C^a)xu z)%XQJsv-U+8=)F}r;8CADe_2NtldM~)FW*7v@)7J79sgote{b*rHZ`&hFA3ydrnrs z$V{ZFlZ$H`g@!yXM)?#eMo=e*lbc*kt~?6_2e~pX6_=nCW@m2ud8h8V$-B7o6qkl4 zQA}UG#V%1|np5naH6<1g@D#MwC43cU38s9F-Qf4FR(YVww#n0e`OW%Yc4gtQ$&=fg zdxf*F!MUTFZ;_>3B{`+A7Sy=K$vsuNJ0Ev6=d&%1={_*dbGe9HzF!X+mksMfY*;FNTF%-kIU~F?WNjLU(3gp!D`cUDWhqK_xHc{vi$yW-y zAQJp&Dw1%lK1iaV+OZoXu-y9x_QGlLuMC{NXlf_(0(4LgI9Qz z;Oo$lr0J^)o90?!)<(>_oJU~KdFc^&??LAp2U|bIXEK89@ZcgAs$`r!Ah~NNu)aFm zaH)G@Ue|`iK^GW_E*^U#hB>F$Nd}}L<0)k(aa5^kwE1-j0@E8XzriZLU^}@{q4qD> z>yL12!?bJ8h$fRfC)W)EfHK^J?#XIi0cX<_;Pel1f(n7i<%{)y`WS1Z9pBRpbBsPX zba+bPFOJdW7*#{5Xg1f9(#r2MsmR?54cxOQzx9Fe&-$YOYf-tWfwnc+NmF#uK}8lvFb_5cnds9D3Ncp-~hP#e@S!q%YD3BO$P9(#v(2G2^o zSL=OITHpw#kQ(Bw6Wr@k1jDHS2(8c+p~fi+M3q(C-TbwwS{VC7=F{~|o_ugAp?}8# zjwqDm@%O!!07;&FAhhp0HF8}7yNk$Qo*kVhKgf+P&79^3#eUaBd``U26FyrR!RSZ= zK&Fm%Bvg@~u6lUB$`KRqqnSeA(m{Jg$+b5@@NcS|8#)~3uYVb#cXw_3uCTu`#Evmb z8GB4nWH8&p)#prv)u|9-fvEAXZCEOId+yaW$oltZni)8G?OpJy=H9d<1jGaH7oP4= zWH|aL5`&~SGxulQFjF{UV%?T(zGpf$+H7qPJ6I~lIXo>=KYzO-L6%I(vkZbCn*3wL z3&%X=d$SkUJGv$I+qEt9YN-JHsXP?3!pKh1$ZtOITR13l?KYi9_u%{`YMZN z4zBQu5*KTaFKiM zOz?SVRqD`6DBh+~Y!D4K2odFNO#~QQ3u1=8#W0&U1iw1SyKdQA_w-{x#PpYrU$caQ zQtT<|BAjZRm4V%Ji?yXV- zWN=vJ(_}q{xfnRf4hz0Iu!QCde|bW6@u`pfWV@WR`&woRA(8SUHMkR&%x`DBKPkw5 z9xm-bakTuC)%JuEfkboG?+376Ga*B1{7978YWU!&6mQIxrF|4lf2W+&(^$3g8ti{Z zOW-9XXSLS%zlczQT6h-;hE^3#m;7ev)0Q3ZNF&(BxbLb0tfFlIkl?Z|dW)ChqQDd(XSS9qwSYrAU&~FLO^WPe8$lJwOS0=K)PaU_1G(iC|HZ%R zMUK@*4h;IzyFamX9z1>M(I=fBJTVHDy&jNepK3Xbqwolc-L91|yt%OwkzsPRvOmpz z54PhAeERl5)NMt$u?H=S;`7X4(CDH!&fpIc-KnU z+~m3_n1#PUa}XD{@driAlKZ>&n}6H|COK9)eA|Z*g!cc?toflKw)|xYT?I_LTdJEl zTh$A!0?X;$9dzo3?%}v}-<3T}l>>N{)1lXcY@zuFeol?tx3|h(O+ynLhjimGOlQ`s z;X_^rN6_J-D2fNlL~#FW^_orHXMA=M1J_^W6(Sov0S+YLY=EVvoO(Z^Aa6Ts zQ?O26k^(`GU1H$d$Ky*N@$Yi0ObgPF_7yNd9RD2`p16W+`PlQMVO*Na3_QJ$Onmia znCqTOB-rf~?z=~c>xChei&?W0`rC(k$XKz?8V;x4k-C>EkmSZ9u6dueDWZtg1~a$B zV3I!|=oh7IEOhATL%QNW4{bhfnPF(zd5n4Qu`0Ebp%DZaw zSw6uE%T0s(-Hp&9bX-c^A_aThIKv$_~E8P6waK`a67!H5R6d8HBkbVFX9Nv14 zrS(4G%YFTxjfY(M>Ki+%MBACd#XPqNE>y`E^Pmf;!WeB^R1U;^0g8<4I@EpsZ0q+d zuxi4Q2LEottYYL3vdm8wlZpNEej&{qF4#0`NvYlNL$&rmYOFR{L{-{7aqKu@6ZBZl zFN-Fk+bh08GG(?0&02mx;cnZ(7!8xUa)`#edIGW(g^&LI1B3@IR3?uE!hJ|Nfv4X!9{>ERRAhSfc?OlXaPY@+U@%McNPiu!Y%1*@9dI)W z$Sf^l^q+&PJ?n8#6HW|_ILN1rpnrJJZdf2_`b->G981-n+;^`BraJ}gYozw^&gQ3% z{S_h@D6%Euld;)l8cm*d^JcTJ&&$u&T`2?j%U-P*JQ^qp%Jv)M61z`SX|ZfIaRwiBQKRU^Ok zA`W8pzB{LxOENTg(IlbbFgi!FSGC%|XO< z_h22X$pBS^sfCqaO**POgqUq*(nlDBWjrv;r}R{2?XW-Vf4Ej0ZL@PET2s7fZx~2} zS7OR^>pq2+m>pu2`aKF5*zZXT|A_B)&;*}<8yL+!en-MsN^aWV?a zRQl`uxy|*uusQ8m8wSClhnlF_5^t1}Xu1ND+6yAWS6H{hI(Lm??*|c$h<^fo%rBv! zd(B|A9O{pJydL=7pKXLqUiriw(tP~r3K>7oOs^{1JI-sz+_@mXJ}Tos@LF{)+pkpa zbR7}k;*>#dzuZrKE7%mt$X5|lIgRUld222c0#{ij|MS%y^j7Fd28=iKrfl4szU$)* zD1g{8i*?i0Sh|blh|APNyT4`DRgp>4rcL?9)CpjWF)wZ0DpklR&*IA=8so|x-YZbp z*4_&g@epjyVp3iz(~M?3TC*v2D_L<;0O*Jh0A6AiSAzizal*&nr+X7zqA7NPusYyu zcmI4J@e*A%Vv&UaeCv9U0RW&%%JOQhUvoklI=QyK9Ro_zGEGiDiN>S1*Z-8=ElV%T zZug9RpFVw9kw+pK{eG6#3Y~WWX!11NMKZQ_5UhBNI0^N3F#l71flwISFsXqZq%J}x zR0gF&@&o)Xi?)%$iij*C$hW2sKQj}4doy*2`7 ziz~kImoX`dHX7?t>U4UEapfM0<^qy#rt?DLxWI*k`Znwa_QwGAy>i|G)y2Jb8u#6EA#@CrA!E}#CA__F_W4)?)|mH`K`v;H0O7 z!QD}myx8SD7F*slm!!QE?X6Y*Z}~N!+8MvGj5TwPwI2TDiHFVJU$M}`tBVgXy0Kcy z6KQWMOS|VcwmppfoYc;>fX&P$wn-7&HtaQ<3!9<3Cqv%0t5hoL?sYIVv$wzHxj-4Kb*Se0+)1Jz-w*y-Ye2zZv35}b&)r9@sH1myo!unM|RYZ9F($N0NqT?R76s7u|@@$>sk`06QlP zydP*i#7c;9S5)?YI^)>_v(GfzCzPE!^coG7*1gOi?J3dEg<8|GrHy;+K(_tNh64fyAB*!7}oW$nJ6CCtN<(Q3irrsr#_95(GgbKiDo#1PTq zrw=iN4v_+k&$n6>6C$B=yO(8SZ9;}Ti8u0}!hcMlW*>fnOFaZfr@-$x%DiTmSEcQn zj|6|WqK{9dicI2ffn_&)-dM5F6;P!Xyc@#F&DFs@2!ECJ>y@$5d))h!-tlR!I}wh^ zvx=JA93^~g>S51Iiqf9c36K8Mj4a8g?swZ3A+%RLV@=2NR#N)zTg?hjTjvH=9K%{^ zdn_91U%CvJDlU844ETWUS{1Jbv9Z1bfpcLsrPh&#&N69Bt_+YC#?hubc*TMrCk7;r&KAhW}^)_55 zvJXOuOGo~nM$P!%LEA*#N<5Mi)7=+=>LonvB)q{lE{PO$NMJ(F!}rVqO3jFD)misc z&)B*vBp8Z>$)>qApbAJcikxOLQMI_IU}yE23#nLj9>)T_V1s##?eg`{E1{AFBx{M5 z4-Y|DL>-5;1wxixpMjL+?d_T>^eDs5LpB$gZ|C_^s_LFI892=S9aXcn`Y7=Q<6E++ zlTi2&vDFj)zi`&ZVeFqXm@9JB)YO`ud$E5 z2n2jg3C?ZS*#=L=@s0-1J@X`AyG3s_nqeG(%cCyU?x1ZY2MM8%D$lNZ=!xZe1|dzk zIgKo{Ss}vPMzhC$UgMB78?KMaMxh7T_pCnJ-*3sIVzx^&Ms;N98>?K+5J0B5JzO*( zc7th%*7wbzkecimyQR;HzuyXowFh}qSG~0|=nV5HetdkjbQ~y-q)9)srcNWmK!`J8 zZgYq;-m{lV{%gVwp5Gl% zS7Tm(*P*2Lx_xit|3Cthmt_NF35(t|FKC>=l>aenhlFN&3#To!p8^lraB<59RT)sX z?AZZ9BA}CEAqaHe<;Ra5eapwvlDD*edv8!dv6^?!q!#rrF(dHZpb@au2&lG(=uW>` z9w4X1wg93a{9k|{(m%6-VgAdgLtJTO&^7nN5vX`K4J*tTiLrmMJ>uHvg^cjUx~12A zzMClu$3Z+!Vk-UbGrh?ZJjGci3zRuPS$`7T;w8nDVy3s&1%=@yI**Y47&mWG;H7P$ zy)Af0ggH}7#XNag&ZC25|K*5SVfE&bSOG0bjI3#&LMnt|nWl8sEf|f60!yiB zd)XMFmB|JRmGLTO3Wef+F;z5l{~EbCL)*Alhfv`q&_+WRbwCO&JB{%qckg3Q99HY_ zEoB{F($~jqmlHLnfwu+4_lD8y5V;m@pi|;;X z(tKu^mr4G$mGR)^Gs8bsN6wDgJ?ZIs42Pauo0w`at~dUAdWDG!epk z?W#AF_|Lo6i$n%rwd^LU?)1iyDd$p^vnOGBR_xv!E!PikqIbD;4$XBv%+T!6m@B&N zlSudf{zQirm!$K|^!FhK5xggTc1+_k)0KuaKY$@S`f7^lW@JFvR(ADlyIygOB>TPg zuULW|{{pGWj}W2wbR$HB#?U#kup{%g2OnoK+a^;rKFDHee5x>B{s1CI_yAuigzh&& zrPy_W%gRZJXK2tWrX-r0rK@DEht3#zX_L0?=LtI5xb>&fNtxmh4Kz#X+%cB_jktn{ zYj!7C{a2DvytT)J@~76h!2$5;D(mYQkLCuZrdPdT4)!)tWENE4pnof}Zcyt-BsGmZ zFn&{TUwLoWL++nzXX?`(`}XL)(`LVPb@j1gO(^@-H0vd&gclLL37A~OW&R8m2VTL=QiL%6Ym@WS zfHvx=>>M8@7B@OBXOr^dv@QWOk3AN0E4I5OvIcYJd7pixA%)x?M6>ovW`}*OOjF~q zKY`ilJQE2wzk|7b`!%gNPr|&$bHgz_h@RR@FpmM=GvnysR4|p+BWvrnZNPWDI+IB! zJ=}V6{<)yGAdpHN_ic`j1%Z_ZB}zS2Z9>n zS_Qr#SEX9Nj8JzP{nr=}@3f@VA{9xK93HE-P|I%uaeqdK>#f!4J;Sbu?DBu5Jq9vs zKL&o_#y5OKaqX5g=J^e`y_HGKO^vN0_#7Tos)8<9PomNJC)ZxNB`MGztJK4K2BLiO zZ&It#d2!TPac@n%G-MSzux;MgXe;XFHel@iDBznz8++U#7t0xtF2v z(d4)8Z|+mI;(+oGd>@%g?u>`r=KcjZ<>&M-=5O-^UUX@ z?Idm4YpRlF;6uMc@{Rf(8D_s+T=iALgN>vq)29xqhFXcnjzdHk6;= zv%Z3bc6Z2(kG^aySfnYWXkmu6e(wK`JA~h0BpYNFtMy1okyuHO@k!a|*R#debTI}a zmn3(9%w{$f+{90&FetnUnOriV8V?1Z)z`7-8rSpZ(h%PDP$4BmOgCrLhJ3Ezt1E)x zBfjx_&f%MTzq1gU3{WA56b1{Wf`v7Kdmme+x|keVe1n<|A13IX3FJz4cZ}N*@viI+ z!$f_IEU+v4T6(zD5oH;i>52-Jvvzg$oyGypCP&I zhi_aPC09Nd{ITIn_B=dfBu4GRCR~&+40LTpEb)k*4Bou{Djm-5c$Bi^DFKH9;U?v@pJ@ zg`HIrzTfRD8Lv}}YyzB19cW?4lh37nT9*d4le7&Lw0V`aR3UXl1)X}EbN_ltxB-9j z@sL+$rJM3l*l=V~c=#;=mUyiRX`Z~3{ATWU=baSy$lEA31f}!nd$7VMtVU7}UD$jI zrktlt3!RUU^M*A}K0cw(PQzo&Gy=?7*DA^pwIH>IoX}10S`?64bYX)a0^9_T2i|t(8M|H5jsZRf_KYDtydQk_$zvY1<(0$Dg!P?T4PVJofDBRN-{k+G4GTx{wp! z1O8#h%N?;}{f7YbrK?`vev9$2>$;e5<61o-w6$naHpGqJw+RGp3H|=sEcwpL=a|L+wib*sUa_li zS{gyKw}dXRHR6H%qGfJx3Yb;NO$l+ z|7F#&NTq$bypIdR1?}|LA0IWzq>FX-{Q5Ta>A`0$cT1biI8K?G)L5;@N#Ez$Dns8Z zSEDYv=inO}`MXv^2Rg?0+T?0o79gSaDz0k0Vm!B%p|O`cts=v3vlD4p##wR1Qnt)J zg!-o1ma099d4_ovgH*mze02Z|f4D5i`QNyx@d6`Nl~CsV+c#ZF1dUS4aJK|{8V%Id zzKafJ0QTVpZO#K<0Gv2g8~DL|T;5Fo5xAHD=zQMB02>YftJO~ufOM?nB4!4_Be5Rf zbu0B`s=c7B*NG z4nu$shx*+Rg#UDcozsN#e5P#Ak%k^u{T{Yc1DV2MDzcVG`b@KypdO@?4l+T0XzM%_ z+mn26>4jt@*%L}Nd&Q~iiM90tkeGdSJ@^S zs-WQJm~k{7>z@HU#{{vtq&YB-Za;@;wewgXGa&D8dufFx3hqdA7tY*jp>tZn_)UF_~}lwp8vWr-UL2-#thxvL=LGb3-+02^mZVM#+guN z#5?UdGSa9V>hu+v(v4DNeGpKs!|xwEhO0SngXeLPFzL~N_JTs|O9^++%~<_fkNo;0 zM2W7;L5v7tzh8?w7i3<{r+?Pz@+5^j8zdN1h;tovoDUQIzV>*uR(sK?eTcsx>`HL7 zQ0v-GY7gzIBl*FE#JD$(MS7XNd6a1!JIB~gyG+rgf*82k)= z98;%Y%(+L2>~X-9G!OlgL7T&7;_~Dm$vDI(R5Ky?DH41skZnIt^~lQ+cSZFW231$k z;ZY_?@M(*_v~+ko#`=82YTpn@e#ICg`bNh!fo+1yI4*QtDIq3Q_J`TI@p`VE z()BIDUTO;5T_C>533amJgBwPE2)chFDP;h0L*5R_&eG-|s$_k8Q#vFxbO-oT=>0`w<~%M9lg?7BbLLI@ zqvyW#HkO$T%b+ripNG?v%WpexvdFuIZ#!C?IF4qVlkdm0Je6r%R|*hHcwXKXYHo(g zd@1IRq0*rQm`df%%dKC>9vV3!QRnKf zz~u5)kNGRExBV(9OLs;7;vahtXosgVBtbzD)DH}~`pk)?-Krhz~zhr{cp!{2~m8{2N|O?6eGT) zMOtm4o&QyGK)xElwJ+Kj4sxbJ``O*-N<7&9xVC1kuJ>j2mgc~jqJ;8Ip<1ieAdRfh zkjU)*X0DdA@AtP`Fc=(O*Ww~lSe$?kH6X+HO9HOXQj9%!nu&r~-=eKX0G(CGnKp(i zCF}4T3=9caf)I1q;7{S3nCs8foi$q`mpO_ad>8Ckx@@ z;|;CwYSTgFOo@sor4IS!uJqzx1KNoUa(EBs&OKj^DNZcR{P9+viKo^eim%Uy%Ay+P zgbBBUT|FAUe6Rx8VU-?TiM>fQAZ9NN{@2Ktmonj((|(v{4el^N-$;i_P!5QHJe-h^ zDnDUR)h~4O{?aFZlG&wJHWnDDZnj^833S_u&YG>Ek^K>bV3>m1CFXGYTTI|dsQ=Dx zn%(ag^=`8=g4hR;IsW6MXQ2nrrvR|4rNv~14Cm(LYzI!6q)+H_dppt!-ety)Ak<;> zFKPr#A3yEyi*QZ@^Sk?BGjpj5anRATs8?}`gmK_>tuO=w_F6`)iEwA+1mEbzZa9qe zkSWlHbhF7rIS5eoydMcD$fT|n0NOA2oI5WKmC84&?4UTl2Gk9mZEvqT=WL@rxyV*< zLFebJwnGSO?S?&Vo^Gg$flh7F!b$8wWvFqZNE7h|qrN@+cxI3?{8v+=qFZxALk__c zr5T6S%2)*!)b1)>p^A(Y?*|UXyoJ6y9fFP9@6ooE5rsza)|tnZ@An-Kd|?j2^+>RE z4!Y(*G^?K3+UI^ei*qp3>Z=r(ZuBmnPEyakw+1#ZKvyY`3XwOg*#KT-{pw&zT&nxl z8F{JvK|zyQbX_^ir3zVac7Jh<7E&urCQpn?jy8Y^56!!^aT&Wk;LIGm176Rx7u3$%(CF3N>!PQ;b+;@sSaf`FQ;;EG}x1EY2PUG zYvdqIaBaLzjJB_#o`WIP{}|5;W?yka`a*`v8w1D7*g6XHg2>{sSCnr_s*M;~kE9t&$YIo~9Ii^1#{U z2Z>z`g^Hl?y(}Z)LR}?AU&wz9Gx$FRKI+}WOL>sz$|WWNp;50#o(X9z7IV8e^H;-FJ*Pl@xLV(4#zNT6Wp0pp`vR;{1aCM zCw-0=%T=V(&@h*;;r}H;y!|!-sFO3uf!t&>;~5C>u2$+RM&dyFdgJZ|5S!|5N$vX* z=JG>1;Kf>0Y>455-vRGC$weV8k-}a*EgY9dPf0uWCsq>t$zKq~`=ScN<>AKm6sv#m zelexXM%{)Kj$SA0Lj{zQ)iNbQtklgmu>&{^C_{xx#FmmNy|U$DM<^4cU=aG$1JS8% z^QsjCy^5b4tx%C{5lXTwf4r8UH-V{nfPwvZ92Dx%_IKxt^%s*zszT$PD_OcmzTax7 z7{-wM0f@b}{*^ncw8m=#MXV?fEUAy=aOUZoBfW6O$duv&e0N37QVzuSbLs8S3tAtzH#Ao+)NeNptqR+i{AnFSYcy=qIDCs z6Q(R6h(0SSQkQ`ocF5OXMrPVB>@`%()N`Q!mnh+u44DDJVX(LqQb6^QT;2uu`yw@j zGQu^NI1l_0E>L+uiUIkzP5q-%wab^b)ci=-6!VH6Z=}uTWfEaBO)~}4(G79T0cULt z0kChMuD?=tu-Uh*M&NOr(*?~d^Z(JGP0~OuP)WL6iMY2YGTiCRHb?Us6HvqS;%5-o zd`tuvCiyS$Eafd39?k@YGWLfvZ}Ax|bZzs>l+H3;{H-W{EN%R9jCd$8ic~;QPgtc! zsU#&l+{LwaAO1*xNnNm=wM~U?%^O5HSBrPF`@;xhK8T7c*~Juxy`lQ~-S*Nkwz4E9 z$h=%}WX&!Vb1DNazkPsdrJeOl%+R|rwLV|eR}Jtfo!6=Yz=CYZjA<8wvd6cB7_yt8 zClm3x`0?jl3(DTjd50wh8icOx&cl+$AA*Ru^~t^M##?yOqS;-~LHJs-pW_E%+z>(t z>fLMxN=VUhi4!)>GtP^Dc;Lrd+BoZP^TzCF@_?~|fRItzG4EWqh~|QWvT;VKmZ!?Tf+VlvXOO9kXo;+XYK(@Usd4>T;>{P zbu*e5qnq%ObO z3PiTssciiQCbH#R03RYbA_cmqh62mR_@I+2te2rIB=x_cO!6FUMQV67oY*O`DwQn_ zXv7q${*|nu(m%~FY@sjz3py>5wXyHD#qH2+B^s;lQ5p=oxQOtN`~&mxM1Fjc znF9u<@Tj7Dl<|1Zk=ojn-FV5OzWNS(UyI@oU)?1T2UKW?>Ft*9^I@6X+ad6A^{2Le z6&##+kF;Wkjo3nkKuC3!rtDQT<2;N?5i5>Gt~*S@^Bq2{2<=SsjDi=}xv4w4e-rP6 z>IRjMC9yOT@H&$zuh~`FQ!jW7t5IA#fwaR9uM^0x;pCy!66B?P7gQ3) zb8(!Ki;`8Ko#G41_K{c|EK6!}&6wy(LX1yNuR=#E&aDq%IPI32RuX34h7NYnnnZ%z0crt5BU`44HyY) zyaU;9-D)Ckf25CY_@aRoXS6`s#H3FJxulHoFxqvk?Uvq^d*CeLYgBx~qqh=_L5ZY< zKV@!S3wP^0&`S`xz8Of3yy+KjlN88@c6@GNiw;-J8u~6W*=(#ccR;Z#iHIlLZy}>n zwqlEQn(i(Y|C^t6hSpJEE@6K3-23l1t6xy#^%=SZBp;TdQb0XYGuqTphD&1(d+7GN zTLiRGJmzkX-Bfn)+&(o#yhuto#gPn+F_!#sWPsUS=U!@8HKt5?qw&-CGZl8x88)+m z^@h^FN^fe~6QQU6GS2>vyHRV#Z^+v&?`ewBjoQ_Mgsx@2TM)E&X!Tx-rI>EUhnW{v zJmfp-@olZ+?B{p|iNn|Prez=y&9w-dLLcxw$~SbL8;`aVlvJkuq7IUODSv{j7ajWb z1rLLux3+0LjK{MXe2g>-pxwPYBMkWE?aPnQpZxemH6ozE?DF59RyN~gjGuQ4)IJ)c z*^9%$46f>vA1I6bxD2l<=UVl2l(R1~y^s971S3n<;7GRb-e38kkG`{{5?mGG5qah6 zsa4GBAsowa_8>LcGJKhruQiZaOs{XbC9yf@ipIa?_divE!HcTkiT{$?6P4r|K#2fq zY+v!o`@dm-j>WL`?3@@CD=2OuB5o;%iMx4$zFHefS! z5Z@;;8~thr;u}nYyjAqbdRw0|AHZthQ#mBmuFRpG^{vP1j4it(24#Jy%b1z}H9?=< zVl`D?bZx&$XC7v2g86_K$jlRjBsqyJno&-kSnK|KJ%^jri#a--QSgQA(G4P_Mb}7uVYqzeml=vN_06&PVE?*MLqzV`;);i@VWqcu*#c=&86;C?J$s(R(aj;N)Yxo;2TBNMefZg~f91}->_Iq;K2rTgJrIwQa*iiWK+aQrz9$U5h&mE$&WnTHK2icZ$1P zDee?^_rcxg+g$ha{`>xr3?bRcgthj09_j_%CrcWk``d0&^EaZhkUe*FORPiKxYuz0rf;yN=&(1Z5ViSav=KHOwG%3axatzkTl<@(yx;weYa^QgR zs~Sn~4#Yy8zt-8xg2U_k-!)6oocRkE@_g%yoi;*~-5}BHoQoOlW1xk8LHn^kSqf1V zf`6`*f@`8Q@M$HtkC$qO{bOz(hh}LcblrR-v4%;g@JKV)w*nZgXhxX^FA3k<*#0P^ z-nvO%uG#aqj8i7JVK7`t&(5 z`0iDAuJ=kRfQR(4JLg1O(b5p&*n;Ft;bH?HZ@;INxE<;bx*X&MRk*(!$p0bNF@#%G zvxb69{^N3TF7f1k?&OZ+7fJUknSPDkqFDNsL5=T~Rr%AEHmmIZ|6N7gvTs+BSj0^q za1~7uOriu6iPtc@1|kBmQO%drgD&%qoH-Q0OZxXM8s%-t>)MF}ZlTJa%X7yICm$ev z4){b1l=!|0A2F}(WX~pdgX)5GwrCB>J5U86y97cd;rqr{@!r)G@}=KsfGoh0tpk5x zQ$#g*lQYr(PtHX6CY@fDJ$bC{fQ!*U=|wdJNG98BN_}I0oQJ>gk5GY0qNIjeirpO9 z7ev!LOd`#Tpzk0p(OQP=ek^|sleWgdoN`SJ80DCVZ3|w>14Or&COjK5xsOc31P)Ba zBGE1xm=HSO;2J5JrT|_{j6<{O3!8Jgeo?!`@`E_n-yW=f!2qs%UYHF_mre}xug2lb zt`QQVp~6X5Tg#5XPC>P!MN3GmLxDq#m?oJcyD&4L2Kg#{YsCOrrF1Vw3s59rh+Xi* zXtm0th-l$ihTcpb`ZQ;kToWm=Mq7lBrA}(6F}jd!rqo)cxQ)w2U0<$umrtleBWL9H zXs9qvgE2?`0WvrsymSkh_Rj(g1n)y^0FgJqcI= z8lDoGrc2vvzj=dpV)F2{kaD$*W>1JU*7dx=TpHggIk&ROnyo>(?lX zrf~O3N`~z-Qge6Jomh}t?ZNr%`aLuz1;`v-)ljdJS?CN?;MD9unyiz9!l6YOz_rWm z8f+}YQ<#dk%LZ=5LQX+ApzCvPbmvuM`t~TWqZ9nx;uoxtuYqhFTx)45Q`+kC4hcis zBX%}R^2~Ar;j98eHlc9vV%JKfApeg@UiPGo{`*nuwXQF4{T5`g?`u?o1etspXzQrc z%79K0%h#LMkE(qiV#E)s76)3FJ}oXG$J-AKRSzJsbRbYoGrM}r2l=JlP1QB>AqC$u zl33#2|A<)QolIwKAv$(`1!~?RSy_UZW%o$^Zd@9>1R}lg##Zc?4^h|2WF?HHaHnId zW59w%SC4uFc+oB3E`=XfV^YjErnFYSVuoTfHXn;FbX;x*(#Zc+;&?liH!!BFpssRP z2~aR02zBcAE> zA$;I|CjPY_$EVK<^9i{8l#T_biw6Gj0w2%%wxMs(4on- zcQg~9_WNI)Qt6MZqFZJp;{ROx-(|rK=!H1UE)>J}ceex_0j*CK0O(+90OkhjeU!#C zPpvUh0MXU}dVQH2(;FO^fbYWkqV^;LXr-V9>MnqbMCrqSwHbeYyp?9~eD3IUtP0%L zfN{R&3uQKUiEx#V?*+Q*NJ0d}wN2(%Owqah&(piUMwBZB@$xwdgq3yhteZWB4ogrg zNTEw`a13gLj->@WiC!4puvafK2Z+xMqx0f8s7-KF3JBB8P(eqVJz*By+>NUrvTaO= zdKiZqxCehQ%Kh0wH%kqt^&MJopScuz9V*Uu@>;QU`|g~GfQ^9-c#+|PWQ8L1OSTip zBn(Eymdro*h*)9vqVXL@K+9Ynw zz6zQ<(SIoqqi^u%!@onK!zNSBs6wE&3 zAgtQ|4P14|lgfTLFD`%f_q+isY03Y#q(OXydAePGRY&b@7(Q$iE5~sWo%zf{;4@Pt z5b&7bjUYKgoYePfAs+2_dG5Sidj}F4vcqVlkdq3EEQkbaj`y*fm-Y4)@Ry-g{EIVlp%KYsH0S6wJ8-1?AVeQJaOcWJJl50XJ#0haN)B5g-L{2$8>NPn|-`JV_bI5ct%=06qsnkL#$znQ47UpQ~{D)j60t~oD z$oo&0Y1A^=yBb>dCN?OcmHRQEg*D_xA};z9^%chWycA|CpYnmQd8fM^e-VeJW41#< zjz;<&1K4QswP5JRDt)erlQ8GxhR%0aJ^7kit9SUebs{p4}{2Cbw7B(+q?$J@>=b=d3a;t^`^Ty|lJh|?54*=VDgOZ;i#{q34V>j7;1z@MmwLOC+jcDHbQ;&VaS`T5;1f!>AC zCQ?C@0eA*754-K=$H3QJ1U=vRL(GV?`;?(!*Ab#w6eUp#SvF)el_>of_4nIcn%{dY z2EqmGAhs}+3!7F2Pl;bedTzV!&t5-p)hsE)gESkVLrVU^nto=CmvkOnCvMVk4-+>J z4Gj~+TgG}PgPzlx!xinF1v&1jF6Z$*3#A@;mUp2-!*pD)s2t6A*S1b;&7zVQDEB(^_wvc-$bdyh%`s&a0?tdI^{WG_ZnApfOIk=w6!^ZT^` zhG%hoAs0!&<$<`SJWC-@*bazzVMt)z2+FxJvR3u2T(+zn9UppxD#yy?pM&hb9{$pj zw2J`QBi;U@Qp0yUJW{rZtBml{r|X$yhyqZ1iC1@|U0m6zfvXs%8OM@M<*jCL=yI$- zMZYS_l`Xt^Qe!f?E25*kVRz_6+rkIu5aupS7I7X>)VM1`XyBfeb9>@RWK(=?)fLAH z+Xpsux_%uY!N{BY#B9jVhOeIcxQV9kU(5!Fa>}lR=3fkc49t@Krh1Jg#5~g<@gGT! z4D$I_XA)Bb!l`THd+*#3*Z;8fXhG-8pQX?*uBt{tI5V1G}L#<3vD~SYS7W8<$wUvQE)McHH*jHX+tw zyU~ku1c~wY1IbAVVTszBV5haG)iS2dZc^VqP#~L|0>++N;C>P`9(M=&r%RzDGm|N+ zXow-PWxY>D7eQ>po<8Jy1pnx9-qkf+8Jup=5n!7c>P-|Dh9so|Hwt$IRkVhF;3#AR zX8~4bhy?!*6?{EBFtWk}4T8J)2bZ^4=ei}%+&=Q-MV zjyLVO;u}qIM?z7wfLAj@xiuhZYqE>YxaXh_J%u;pLGU6^l6WMG=81ytjJFJb`M+dT zILo(Jv}j4E?AysSV3lg^o<{j3#}14RmPmoGi9Fs6^TQ1O9yHYks73mF)%KRa`yC*+ z6@eOyL@cSRs2G|3e+Gh8oc;|w?y4q1tuF@Jy9cw;^}-)M7B8>F0T%(1%r9VcILTgS z$oiT*RJ_V=Yo~C8;{Z@c(SXqcdHXa0_)_{C2b8LmD*rcvm@_T^*LV^4Mt4(lZT$!1 z&WXV^2OSUPju0~7DMYK3OSOiXVEtlvI4%yF6!e@Hw$ZpjFxy7OJ*WH@P=g~7)v{PH z%5nQerRF80$DFv;9gX%cU(gE9i#1`#{jmSoq9%%*O1!|fjOeTFDjbDIfOHBQ_Z{)y z`?a%fv}(-T*mZk#V-3>P=!G_B%3sJo9BRW^r=ukSuLX1Z`%P@DsK}?{y@=ng>e)Cn zsY^D2IvS(vCUEe6o13wX6!d&?l&jQ4ylssqjV~J8_tu`Vy$J}^eS^{FdkNKGGXLV} z+kM%HL9xyiPs%%+=Qc`JY>6f@@w?5a+@}dd@g|7@v!y<*kj}@90VqU6j5=~T0zS-4 zO`vjrJt>kCR zm0biw%kGGYRG*3;^PRCjX)Y7M^SNqP z9+N9qMNp~*HO@r>E;>$@#13`e$`^T25s#Ta-%Jkn$rw$9Jy3hHvhK@Ns>>rZSIWs7 zzor>0k(LHfW@i2MlDGk0cVMYLd_Rkhk%g8By9zh4!$Q)e;+KS_s*jbXBv)-|l&)P5 z??H4FGTERS*~!R>r#NDf{qm+X#<F zUGU(F?~$C=;6wIf&Jf9biB{N!+UQkSNY(KCHcS&UWqMx7&`a5BatGyf-HJC>jZ5VF zxaM);R@u1ibR3F56P_zr6$P6VYscYfI@us&y7*QFSr1OpF|{Uj0~QX-q&5n3t4Y9J zZFt}nvUAlYa!yij4u71IbN-E1d4^1#heTu+`EXBUs0aImU-l|w$o(@IOG~A&7jgb? zI_7#abd5|~BF~m5DWy;0#6pXpLor|VQI*a6$i&W|=5DREFMv{erTp=8>@BAnZYPxD$7%9YT-dIg zU)R`8hktMD_3nhpDp4tE{fRjIeq`Ky^s{Tvw}$3QaQNh|uQ+#fQrQ6b&u83unnaY* zY^^U0!>fM&iN(T?a@4^TRT>=52SH@FA5} zq?3bmPCIYMaJ;0S-H@r5wnzlE3{bx99a_og8vnDKX{qH$v_KZMcO?d3r6!sJ9t@YR z7h1rs!1uEOwNm1r&0D`6fLtiSZDai>t}}n*aPAgzuTbs??&ap*FeZZTr|2-Xh1a z*#kr#UhZV`_3g~S-lEwccIA|NEQT7pHKqFO9^l(au&xQW1L z@V#3=E1dVUqbc;J3hnIVCWYESk_4(boMIabC|os=U*_UJWrb9d3>L_?wt1BbeCCN& zbBTRG+<_Ou46We5R-@Zy_($r!E|t7V3OPlgp2i4E)o?$nIVq9&=+L*M$++bCEg9Tm zk&?F8onz6T-j-NM+j5&e8Y1By%Vj`U9aEA&l30rK{u$+W@CT!e0=cAe4+99`1F*w&zhMVmj1O`dRKwX| zJX?S6?`}DLsd*Utnk~qe^48jntDInP8;{_m_@U;Zq0cOo{K=X7rmDX9!Cp0lUgkjD zRH*RG{IB1E;Ao=DxOaLIusJ9n#KGzU&H|mUTNlYtYSz;YcmkX%*gfh6c0YgoHNLJ* z(TSlEdGUx#+|X^1c6Nci(qn6r=!aHmL)@faneo@dnA>KYfT`2)G&l2n7h*V>BYsam zr0{y~HP=b%w+~OG0u&7_MLI{1zFS6xVLN4Z}V3ezun3X=(_{qw^Q1k^oZhX%3C_2XCm|!b;UrDm9d=)J->{r+az;yhCyjoy~|tnIJrdl){-U>hAS|x#vVua#wRs zY-P439ZaJyga(vz7z>-;xbm{X$9IGn$DI$RiXxs|n3RUG!lV1zIdZfna z|EGCd?5_b3$v))7H@YOYFCu0<(V!+q7#9M><-IK)mqRH?Y#7U7kO|;bXM%gj5j974qY-&=`iBtw~0AqLxJ;6YJ$JRVcrN z?j)JTMyQ%z3`DDzZ-tRiubK?TCw&faDL4;k+`e84hK+1WhGwPsF+~|P<;ANNs~FrK z^)X+qU<#2Y+wy(32gYEI0Y0o`q@=1J0$zUwH}a>Rs;c6!s75_9QKa{A*w$+Glyl_A z&Q?!&XWCtaTyeyG6tZ#l(KmPtS#(4b`w?@m#Udvvifgy|9n=~w)evYolz2T|zZU_s zs6J)9kZ`lV)5(gd+@nkN#HUab78dVU zBs<74?_l|2aGX9p8M{<_6MjB__JH6iN3xluc%v+Z!r}HU<-mIx$y55w0)*AiP$6H4 zB=D|Yh8=wWB@{)F{rlW?{1UwHI~fx>$>jdesBaQQu2DcdWnToN$(uuZr)a6rP2#EW zjxsl$DZlg1H?DV&cA`taMVP1hwNT-kqx6o_u7%cvo5y0yQd5HBk`jBzkv3$2Ml{Wy zc*RVvj(i;Jg%7>G1mOgDPFTmo9?x@RA>q!=kA4X@Q=DzyN<5)3L__<;$uSUM6=&w< zhrCyHVAX`rO|KBGa`4&b)4H}o^G7e;c$n&&n*E!Us-kz-zzioTdBX&Bt+l4|+`x?w z6hdF4kFHwZ7(NYMDWSsi8pW{2e!v*7)9wH4ky98Z9p9oC%C9p&$KQEyT?45Ek=igX zx|z69F(e@v@{rh6-s^DWysumw&>Lmj!^%y^%~kNREHqgcGD<1Dhm(^v6J!uiIixu{ zknsbP*bITJn}%crU+*T_jbz?ax(?j=t=^tNy1A&~)5#_|C|y6T@ql#v18XXzj*7fU zCI`NyGgYEJ<4VNN2f~+5+U5t`3O>qBi2A@Ob1kX_PbwAicCWh8COo{QF#|;9&0FYD zWs|h8*PF)dir~-pRQsPkzze%X3m5~MHvm=GN;8Yh8&XhIX#Z{ZV9MQj>PXr!M!#t+ zWQlZNA-SFsJ`qsQ2T|;VB?1Tmusv8H$taBF<=+v%bR7=@Z0RciMf{s{LWZobHfZ*y9E8q>u**fk}6m(_l zGg3l!n1@Sbz~yJ*>xj)ppilfWWgJ>bemaYQ(HLZy0+NlW;gF&pMx~qumK~8AqjO^y z)RT!Xl0|_lv?yAtuqSSp2(o2WMlU$aka3>C`lDH~op5Ai9IT&@n7?T9SWKRf_%KK; zL;sW~^-CDXp5EXIxPqfr@2idd>Ko3o*FK2zpxnS!kic;#lDT%LjJZf(3JkjpxsS_? z)m>hbqEwgPpj7$ z5rlkt0&FeU3fuJfU@X3rm@fH{pNnm$SLe=8Txf=LrGHN1#2X||3P9Zi4l)Q4j_MLC z-0?!FKM_{5NUHhNWeMUWU;c|)ARc&Dzw)VOsO3}G4S`gB8#+pqWR89*SzP9kSOLIpcc{i* zaC2CT3@G$WkzX)~docgup90z=@UU798&ud_*AtOj-qmuB&~Qcw5o5KgHc!(a@>alG zS1eW8jp1RmCWxWJ+!|rF>bu91D+E%7F;a^WI2)ciugVFC^XTSVuYIJGseBX?MiloL zz+F%g^+8-RXewQBnk}xZhwHfA^|z_bU`kiKGhs>d*E`#q%lCISI8^$<8YEVLFClDp zyjVHd3q71!s-mm52vr`tA2->tJ|T>*$(ro6VRkSz*{mE{?|u>w#lBZ1F6P34&~ol3 zK;}?qHCk-4_l04rb;8(;eSN{9c7-Z;xhI@?glygv?h$3{0&KT0X+9e&%!FN!KPgo1Jf=`$a5kKG(OOXo3}1oEi34c7D*5 zP&v#CNu`LlpvXZhtq{<2yKFN^CVt1(q58e`%CQ$&mP#!Dt1_=B^Ncu1J zuZ@-CzdNDkEld8oda4S*6D?^0;VJ`ugveX%Wwr9#=;5Ybz|#L_{4z=^c$q)(uu8XchZet{uz8q=qQdRsU6)p=YBa$-cG`{533+mVZ?8GB zOr9pbt+^0Tj1XcI@=1=W(JOPaO#vFdk(FT{L@J{EmcrA06F z05M;MN6k9Hlzb$&uc~S9I*GCNe+38JqrJQwalnJq~gmtc#H|tapuS=Kt zF=6OJ#rfH+g~)%gP9qq51f-Yk>gVWtrJx-qT5f@V#YLP8V6ff<19J zYUf9;F1%%-#uW0U{q<&(0hohNshvZ^U9U^A>Bq{?gCMpb5(OxPRl$ifUCdVgu11qN zv6Pw&oLZiw4BCUfACSNFv86w@9cQw*UfT+K1;)?j%t?$a8U>hbPkd&TN(`56SPmDQ zE%hYpwJ}-^mvWEU0M$+YRkGPG5Hsh{?MzfZl8Pn*fkkiKWL^JwFgH0ljsak?_g>UZ zu!A}u9J5pv&p1^Cbz>9;c@QNqTEA&fobA!fT{xo8mxL1N9HjMORb*vD>+8nRtW=NJV(6G|`mQ{q;gIDWunv$sv$Dl?In1eq5E$jJkF zR8ByTwdj5-*vF11Kcoo!1p&ZB2wKj#xlSoQH~xD`i!HLOL5Hul?T2y&>%tMK z`gPNew1sl${WS{zW;zjs{R;WUs`iS)tD94cWc^|vk|chwy=#dx^{?ea*Pz2lB7!^Y zUaeFm<=R`XF;BViHFN$8%0<|!)slH2A7M!NW>X}3`OW`1H2KvJO<-(CBm41lV%JMs zm$@@&Ic(^6uy%$%aU3=UKcZ{zL3*Lly%Uq0&*?$-!rJM<0Wo%)ZHxL0aY`MCMXdCc z65+QIOvnHhiGM4V=IDqsNx=rCdC2KP>uL;Xvz|ps|tpnYGyB1>8lX+5l%JtN*`+ z2V>O8Fp)mT*=KEG8vJSHosv)dC0%EJ5Bv;|Tvgwqhe*HeKT)d)UtlLj(?614*j#?< z(XaN0dlKMUm+NOd_(US! zkEUqh?G``GK54;kYn0{?Yt(tdm|7x$)DsK5VrtR_BsZjGq${#Duw+F>d9bZ1l?%^= zhlJzP=;Bo}bYiY?)TO3Ww>{2*5DvRG4;`R(K=KsBZWt}!nDpg(*IlsgJ*-vi6(1-{ z6P{JC^nsKKvSMV#O_LxXpy5<2(4_Q)_$3gzv25}x(fvw&%gLS)b z5&UG&vuJ0wmgPKE(rB0oC5ImmJDz}C`BMyJG_2U&856-S_{l^}*erva%-756cZ?2|)H|mJ#>r3bmbeDP+4{Sm%p5#$K8s|Tao2H2?U178i$q1a` z3*zkV8-)l;6P>@%&qZ|;wU7RL`y?NzoD5N61zmLA+1&V`Ry>`_flegL!PI|Nw=xB0 zqU<&Ez5G)Zr*)6&W6O$u7eFKKir(LE_@m-QE%p|&TYLB;ofB7@`QN<~>2fyhy~G^2 zpXV!R2*OaRE@Bua1$AmSR-G>0mKoT!v&#`;oZjWhA{{QJ6@7fe-Qc zWLDs9HzVPK+!{rmMcC{1ys3)}^7f47+9B^cm*lkkH~`bZCg}qio+WMAeknOiTQL$7 zQmO>DC>lG`enNcR$~KhFz@&+8`(nUr^HavjP;I-+9R8@8g!aU{I>~=2-)|M<2liFu z=1=`4I4Z=iv)Cq zxY=hmyuv|}A%0&?gBX%{cX>Seg$(x?yOqF`YuUz=_`Hrec5H^Ijs0L-%7Ond~>bN!PQ0tqooc&6wpCDp3i)u z%`*pdKOTG`+%EfA#)K(_5#IVc)*V~nqj3YzkvN8m@HX9C*0lePYhsnxZkf{2SV%>W zzFpgZldY>M%T(8#*dfpn;VgukI|4B0{KSj@?_$M~;2C?CmTB1H!Eli>IlIl7k_Vj2|$G&*R zCO5H}?Sv=qJsZzwN$VqxgU{FxJO&@)_q9*XiZ;=Tcu}dcjB9Njo1ozBg-6`biqkiy z@%%;~uWW=R3P&D}#Pw@B?X&l-2t@g5by}=2<4*Y_*<_!XMpJTN z#9!Ks2c8cASmlA=g|{lyuABjfnGlAOV1$y@r5*LRlaST{4Fd>8L@#?j&O%MS!l(98 z3Vz-+_)Dj)oMC54wQUd%D#(h4fl}W)RnopG_$qu{LIG>-A7|GR)niXZ`-K1--S z#nRWok1zO*D)WbQ1fDYk-ixQ^M&oYe%U0!I(OwE^@=EP|$etwU6g*kyxA<2pOo_WL z%2LP-aopR!@8^qu!1B92Zzi755bKFDUEO(+8U&Yz^E3V?*?MfM1#^xxoe0Nr>#q43 zCw4$r;dxtXlSe)@E`qbU`XO)26p{AZuCs03?EAF?j$7u9km2(-s>J1UrUJ+iJ|(+J zzcn#nPqL?VGbgqoY~p?M!9;o-^e5LaL!4d#ql{3}cs|)YE(znCX+}B<`M;vPwxV62 zdFxEa@ISQH!xrD~O%n1)`fdE-k+17C0OVPEFj3(+e{!*~TD`Zb1QhKB#PQ^@)L3~C zF+l;wr2c&hq6dD5kV54h~m;yB0loVw|!TBMwvCWdIzi;S)>@zMn^ zx@pqNqk^shO4p5APA)!%ztZX7t&sGT!xR-8jleO-?cStT$UB51GM44K>gg`O3u9fp zu9s-AVsb56Qz-{oK_p*}Qz3ML+2OciFajeRwXM^;0h*(zf2sR|`9jZIERcjG$Pa(t zPoMQdGF|y%==@fNO}qn}FFeUQ!c?%?A(2)hXdB{CzL@?a{I0~CKQ0Xz<&UcPQJ~o= zx2UF+Z@%4>+Eg5Qyxa*W`GLXftSuG+;(_CL6!X~Pd5?OQ}dGNcbgxhrg#&W%wHLb_GgVB z@)|zT{u`IXcIKd#jJNIaUks$4hX9f6WzHZVJ54zDfxIoN9Updnz2m4M`INyp#4tKK zpgGOd@37+YA8%?t0Rfwbf(ZkR$HOTN9q`Ptrx%hOdlsIE&kata@fBmis~!hgi^wH8 z`j`FZWql??-w)tFjpX%Zh6Bx@kbCD>i;v4qGEXl1#$yWP=akmOi$e=76mEnVOHSQX zc)Blb%KhGJUs?^mqpD%9Ocfu~js*@JOKbCNYu_&Kis#;5%OT7au^L$nQNO+B8E2TYLcQM+c0g_Zngz*4Di6^h z@g)6O@UTP4b%bDu+)gM12xVWT(2HeJi)0U+`QdYA*GR@ciIMI{x4iJ8DFJfnB{q*8 z>cm9^unIHu;fl?9H@3O*R~!uy_^l}}tPb59hvD~tIXhVj(Z>MZ0xc4?((IG)dIiOW znw&btY>A1GjtKow(Q_I2z&z8R-?*}&=5%`?3TK_1j>yfV*gBW|q~Ky0cmwvOq`djRRzJf3 ziu4dF9@zn{whszW{s$a-T#XH!I)KS#TJm_s0>qr#0I})>1E|Q;IY|L22R4ATxRU*= z0rXyuv_7GyM|0%BsPe3v*|_x?&~U;3Sj#0`4*8FTG5L>!B`h;GZUs`_N}*QN?o!ZO z&E5ytALeUP^b&0*NYZ;6dfk8NZGWUSM>4t=j$^bFQu|sygefN-Z$od~E8Sbg5&2sK z+3-aBSiY~beIJDa`?q!rN0c26yIQYlM__6cGtiw3$KY;X0*$Fu<9tWjy!tu*i`RFG zu#meBh;Jk0XXvqRIeh{qhi04zg|M`=G;U#;mYA9K*Y9jH4Zg8SasqSQf2adB#IlX6 zRHRZ#H8DZi_X{-T;Qeg)7k9mHqJJM84>rgJvdkF=pVlFq%bgbkJZYoY7(2BCCgHQx zvfTr(!`sLAB3%#B)JXb{FnL~aU&>cyvooo!ezkYI6{IDxL$*&Llm9xyM9KN&WlD4^ z&2*9}^E*p5D2b4&d3|Gxby#AJX-Dc3cOO5sKVyj#LyaAz$KIRTW}B>X(`N zx4r+X_<~hpWae9|FV__DT{UVi>9Q>S{hZ4NI>O|oXdi0$=xUpPmEHRO>mAp_*;h!L zT!nzSxq0L2mUc_w`WEZnE*8m^jeENUJDqipaD-nAe@v8e#oaC!KBxX*p1NTv$K2B8pL@o(4A42n+HTUI;WZ|BV33drlhnPgx4a|e{ z6Gq=JCHhM%q8vLc+C=V2W_(T;_jSDLwyV!F^*xr{%YJ;P?D_cf7y2%^9rp{bQzk_L zy8M_5LGm18-;7=2sNb2?zP>L_mV45*5)m2hV7}e~$eBNQhCler!$kV|K3zv&3&TyNQ^I{#e&k<+To@Mm*tz z{38MdIx|$P9=;nxLAC8Y(U5wT-C~wSlQX#0sL@_n(nyWv$nSlo@U9 zSw;qr){U(1T7^NfkD?CE=s&ZKld6T?Z)A@>GXTm zV3DnIPWbmhuLU4{T5vEu9Z2rv^NSoxceu|QdSpEIt`2wvbLeQ7aWpFv@7-9*PBrqj z_gva7x{)UKw4FJybGarAkwt=I-6I_QOsdiw^}e?(BmMuaH5Vvw_RsYdgd|?I0Kl7X z`@X3j7)R6|4J}$O8EIP@fy;xFLMCtS{c4!J;ibgeyg>uZ7mVg^z<(4Q0Qt(3{{+U9 z5ukEn97y99@-_tkn08Z_dS$J}nXwFN zjWq#Xj^EWypH3!*sC`M9-yQW-$d>D5p#g=fHeh589`lUQ_#y2CGBs=5dx3zs6m>`~ zjt9SQ^GUZ@=T}5-i5;;@LjEu$ky%Q5oK;#Ut!8va1*4ff+yJjEMm7qeqsDIXjz#zu zuVN$#3SD}_b1!?zT`RkV8p8z~P3GBj1}*mwRrEFq?nAOsjkHvASjbP|S>Z$Dr?V30 zl`$ax$`sQ69p7i$1D{XNqqTjK8JNb<- zDE)D(4TLpo-cg0A9&AER!MAUDB~x8T4#sxs#@Y@|8&>1&9SDYtGM8{Xig_vG4wJ23 z8^T$KD^g;?a(nY?U&_XVbQn0eStU67N5VhMx_nyozcd{9)j{Uad6x-h+C>9$Rfh=e zo4a>Bx`G$Hu@bQwGv&5%6>k?$0z`?4i0ZdtaH3*m^YJl-8VHEUr&OpzFHmGlUzQGw z_5I>q(7XqO?VixGUY@A=6va~5;5Z_@qVi(~!RGw$r?JT5{J?ZwR&>%oL=m`bWLbr{ zte)y9D>54m%bkza6m=F03rcY|=Ph8SDdnUvae1pmE`F)#BoDLRNbIm=PBT@=uNdfV z6CzM7EK{}&Qi2;|z_PACVe;&)HBK~?s;}!rOAVj ztL^T*$(-BB$I({Nue2qd!;3|Dl$cT=Z!OyA1UmlzdHumNDF*zYSEN5-oBc0Z$g7;n;|h%+xB2)p_F1Vm~Z+R`xC0oMwO4AwB6;+1pFe@&%^ ztUxQN8`iEeBpyaPyq*ajV3f83e|sDZi??6@_r!&dZ%^z$m`yo)OJ)k-iSYi+1Yh;c zI};<$+#5qol|v~uP4V#0K0ua$=wm%5KhQOk%!VxRyyVOsOLOD!{KTWv>Q0E4%+x>p z^K*GO=-9w8HIlZY7^NtzgxpWFL(EyeV9KgE^NXSPwK<9T<;>F>q2bPpe@p{dTo?$sp?E7oazkq4L>V1dq}Pz3`VFgv>IK^ z{(Y{~^on-Zg=XR+v}}S5M6lnuKqvLRLIOG49)e-QGKDHvW)CQ?hbp9U?}`9E<^wic z#ze4dnlN;p^v=IIJAF0QX%*tM>XS_|bWSL9BX@j#Em%*{0If%Le@PYWOv6L`VPZfc9Wh@lcEdfRSqN>wH^MLFnzZc4c(wS-LA?=U|e zQIEJr+XBh^56u0I9rutb00&2P(8IiK0`P@u)Z3HH^xh9|R=fIKc)IyiH;LneMJr+3 zN}49Kaw~qHX;%3r&Bjd&YO^Jj``5wF=9?nxWq5oiTB?f6vT8sZNsokDHHn%vdkI~oZ73>QNK39u1B%tr&hsxts`RC0<70ZLLjV3RRL17?!`8!1#d`CR}{ zwE}*H_r?>|!vB~2$gTGVq5LDb1ri#GQV2Fs3feYiQK*Oo6`lnbaz9hJ)5HXzk=geQq*RNv*cRDVA4;&#DZ&~ z}_7&VBUL_3Zm z&0VN}N0EcN49WD5P7JI*=W0-qtoxEuIP9@*^(d(jS>O~@6Ua%!Adpdw6o zIo=G0h_5JuQ#7G8wYHCkn!i&2 z4-(pL<}{`9$nS!WvkK_x{7j>Yrbei2+>Ys>)Z?i!87-ak_lr73FH#MSZoG!%n92ef zX=#lwJ?3N`{2A3u{VSSn>_kn>V7quC=3TLz@1U;M`hDaR$?3_y46Wc2Ka6iN$F4mT zW2OT{<{hX}firGHmR+;-^E8!M{ND2GWY06=4x*L><*a=re2k~7xBjk( zeXg;^BZ%GOuPlkqu6wOtrVf>6R3laRwTF!kjRxw4_K#UPLzW6=w+wknd%bxNezkr% zt()vM6MfCCe9Xh^ysMl!@(TFYPDQpx`$mLIE)K~y7JDfxjB%IDuz3-_a)}#iX4t>j zbFKKPO+9?X4IF##DHjkh3S_R{e}3ay1}XtltC0KZL&n>u z5$gaC=@CBHB$myZf6>iEt@6})g`cJ(*cb(#ty`wTH^vfsoyD*}2?}^r^&W}~?Gz?2 z<-#H8VmK9iIHgm6iC1jYe{uDwm7U!749^(^Im+pk1%qhA7C>G~{gk+YpT8cDJ45XR znPq+nYYzu~c99IQG?3h(o~C;dl9KOW^5fF2(O+J{rAxM`ZtzBV#KB;wi^f?bp|!HeS1PMiiRS1L3+1bfk05Wv?PKUic|%pgOY%B z=^z2TT#5qH!O)Ql3Q`nAF!Um!1PNVA0O?XfCqPJe@y-8zcx~p*ys!6sIx}a_*}uKo z{MMR1Yh9uXEysIS(WRECn_a&2B&y-zeAYg^GqjAiZ}k8x}(giEeKF9sUlO+SXu9Ytae6_yqD*gqN`f_4m_=DptU^&Swy;--p4{N3C4 z2vh!vU&6wpp$VFf?>6V>H#ibxd;)nz0H@F4k>}*1yQF8nVz$ZmLljOpG%UJcgVhz6 zi55M`)Gkrjps$(fhKP~rTwE|LIBW)bHz0N38KgU2Old1pXzVD@U08KjHZ@Y)r^QhT%XS2D6uyuOuGv(P%Tb`LAN1%KGLj@7st@2oJz#7 zlW8&~?3L##ti#R(L!TO5%gCG9{jI+>J5Te(ei<*m>?A^QN4I{gTvT!G;N*%IfVT*YAy|wK4${rAjDiBR&&Q19b(XSnFFHs&tMzA(pv~8 zL_nm|cqPbp(g2!YU*)N*uw1Fj`~>8CLGC5fykHcgBVqU~Gh_j~5Ap^07l-&EFz0~E5lXv8djyBQapdNJDH(riH9X9Xvbv{KHQS= zy}FbG@t)vkFW&g!=!W-l3mW$nv3oDn+nc${mRpkxQ#mb83f8MtJ+W6x`zd;}Z40sL z@ua!;!Q!CY#w?D_Q$0)*bnHE`+uD}#pn}L4o){K0TpqnJ20k2B{zQ(Lf%&h%PL_hT zuo%PI`KaQepw6)45(SG=iW#`11huLpeslz9f2;5H8op}~@p{%V7Z~6X;sDQN6LK`f zLo&}o+Y{E}YNETgV2)_#HOdEx5g61j_KA?t^0Dm6mdry*3KeEpk$5toyg2xyFV^p_ z(&p9|V3R{^NS>|TL0iKYfSBFt)DEtkqM3b`>`FaUHl}b$D0i4UQDN@b>EW5LbP{ro zWd3eP7ScoSYGtGGcxc@cEqOlBuU6w5IV%msvF=q}0OB&XaY+YOKwXfp#p__FeBtp4)(_II z&8a={pvc6b(G~v*SPg#b6Dnuqq3!4cPnN%3)Q1%E1t14ZmUApaDR+KojSLk5NKy%a zp{H(NSJr-8P7raI@Cx<*tDPRhYOvHzE6&<~4}l@8QO^!k8=Zy0D+Yk_o7O$gzLKzg zEZ#{@nKs7pLEK$hwjX0tDkhq4<*y-m4LrC7q(q;;zbKdg>{hBuaySc!`RMLfAbQ}M zr~Ew3$@N8d>Fl`&7>S>Cqtp1 zdo3JrSfk)O6HG?~Y?!2?=Z9vJ>f%DtOP!swyy>I{n;*4KD~cS?#AE&dzo1D(jlW`y zQFng%Zmi|XK3*faUl_;Cu5=xrcdEy(9FOwL)4Mi|PA?dvyhmI2k`{a4ufu<*st^Yk z)_}O}fknbSH-UsWq~w}4vX3t5vn{K16VQfkb$*{$89-mV=W?|8yY*=%ReJYr2rU;a zjD^f37OM?4d#J-Hr!jF>4Jp|AWq}`J<8~+6kL<()ek{wfPh;*a=YmO^>qywg*4r;V z8+>NUsXo%RNuzo7>z<+H3Y`D5zPH8JMk_%i0%}V z*-}f8uU&0IiwlC{cT$03+*eNqkQRl+^xU?<4?gisBvsnreeDDZtFe|m__4Zq;lL#Q z_PTeF^iR7Q-Fx+8iv+e6uE0O7Q}lFuKSQJ@*j5g5YVvQE*si$cCnks}^O$`$UAUP( zQqs3+=TZ%@`DQASA_%l}ft!|YHuOc?-iKwbwW`TtUn%@+Oc1yzIot!{Q>3QF)DZGaUgFZ_0z{Cw z6QBrZP#Clp4kl5;3IvdQrY^#P1(pZ7Cp{{Tn0K3$kO;3Q@YGVV^GPMp3zy$0rU+Wm z$9(sWKe*zJ*>4xK`=hU$})a+_x37BXvCW}j_ma}Pthh+e zS(sW?rKM6YiGs?g#RSDX_5LP2|7wqunnLTcKawPK$XC(|)SWgsk{I2$U!F!Vg=N2Q zay7p5S=f2AraWr9s`BuPSD0;UGL~^wGi1p}koy6{(zxmp!vUlV&r4(htkxQ$!d^RH z;cnEF!8X1G%?JF%$PN@&1IQOL@9(#v1WE<3biV9}TB3*F%+Hc!9IjC{T4d=pV9_`+dWUu=@FBdF*BYdPU>G zbpY#BIz!u&J0tZhO+L)MXW!hq>|E%C;N_}JVMH1H#)jF)l$py$(0nU1@#*S1Lr$-5 zZ{xSxs*Aq|Vczej{!4@(n;#Cgv1o9;!=6$5B}2iB0X;l>bbl|7_D<7`|ev7}C*ERC+r-s}0$|)$`Lj^rOPv%bf10WjNAGp+*2a1=ElV?BUUZlazaxg$iQ;Qej(-OPDi}!3 zyd;EP0i8UG2rY&8d~vUOWAnEah;xHQ<7F^UZ1AY(;-ll;8=%*_6~J75X|RjW@pU!} zyOY9BoCzB9GMN6S*xFG32+=UZJ(`3n_Hg})cAooKBPd>|sNlC2r6Gic+gaX~o6$hc zOo@o&v*Qy;eW)BenVAr#fmU;J2HSz{P+w?hAY=BTBh3m(scGt$NXdTM2^kblqM}=A zRk}?!y)fi7zBVW<=H56x<5D)$f$E}Sljh!Jo@V+QzSgJOPB`)SuRjrojjn>YW@j_) zUois;V5kpNs>-T8D+LgaNrX&}RXp_l-f6ht>jc`-(T7y)b7CR|*y*BUvk_ zFHY+66ZH}1xOdr=3;rYed-e1Pmyw}0hB?7}6!NLKjlwh*NiTT@9A1eb2C_dg5FA~? zVIMXif6-QpHpefFKi$Ykw}o?e#YK#5udLO6f;VOA;=&?4W|W0Cu)u1 zGMKbSilaW4=tjsl{rwwagq;bvOu)XVelSerWVJt;0Z`mUb}oG#0$1POVY7nz z9t{s%4fSB7zK$%ZikIkj=i||W`d*)xO5kPNpE9XT4QJ>F#SHST1V0GiN<>_3iPgd| zX-J6t6&Ufi*ur{b+2n7)SUqMfQ;dPF|-eXH>e((Ep9TVRcY3aOYCGkw| zK%5^^rZ?yDFg_j-s<#nzee)`JyPKWAf=Y)lP~4>i%T^A;OpNusF3h9L--*)Tk&kh4nI#v{3cOHP#R} zW;NJBxaci++j$?4_doZaYJqwOPtIj~jPtiMyr54)2vb)25(PcxvmNyug*`=D?_AfU z5C8;0%=hEFap8=<3JX>)TMJq4EWRbkN>E3Ea+gP)BnEW zk3UtWVy~{wt~SfLvO^U-yY8LW>*Q@On8d13iz@`M<}6j-*4A>TQ1?vFtCMll!SvuL z4}t4L+I+L;zrkb<#S4p;iX50K2!!(MPp*mo`~$p3zdRcK{IN*#zK99kJS?;rwf+6& zdPZUVrqR)BN~47nw`c+T^e6U~`!~E&_m{F?(Fb>bUQm%vCYRoG8X)!&-Bjf^xi2q( zUb2~bo_k%`ujISC494R0e|+!^3-0e%B1~IBPbsSzN8(??n#@o4?q|dvTj?ERzGFhk ztFqt3WYOzZKi>yaG0on)kPx5ZQ9vc-% zpNs>qq@R(UOgLjtV_VVqTj!O|XeS`semz0?jOw!QUPi8=9nm4F%qs1tG(V0n6XcsR zz$SZcLA<$*Z7ayE?0~H}a8QcIPgH-=eV3IHqRl1j5fqneev$xIMEF@1=0Aref?D(A zB<&GFwfw}Kpz|Cz`o{ZfgD>tnsmtbESqmsp|K3aqC(l1Ol$Gw@eKV%u`^0l$7UK~m z%a`nhpOjU2yA^Y{D~{77FMZ=p=0Nu9H6pQRjSp8KvJ^yquPQE9C*mleZSeS~{|F8z zz$|O(P)<1f!CjKxm>C5nVrS$!LX8BbF1~w`8KC)>qM8FQ*J;{3(T+3nKFHU&<06WA zVh>5{LkVCw#v4wkZx=UyoKw=yyk4#TuAeUP7#g-6 z!5npRrFa_dY>51LyL*@c2a~N~HIn5&dSCEtW738!`;EW*0HG4Zc++MLm z3+9y;_2UdN+(XRQK^{>p%xej6%v0>u+pw?$GR(=2tbA}LnMpgB>cDU^Jtatm6?I+9 zweL8xaJiSCsbu3ls?!h;@)dvvmN7S^YgnBF;s8zLURE>^rzht($>^I3W9 zd$yI{7HGBVx7Z*L?x;lTsppPXUNUeEt1p*i`Ox2WF0TSfNAtudUILE9c^X@tRrR@9 z-B1^Sl~|J!Wh5pU4A#1~Gn~aDx%FqudQkWB8{R}%%c7f*lV$)$%qMfo%FcI8Igfn$ zASR8^`bq{(M(=H~RbDr0{!n+~UuVGoKhGdQwBc0doorhXkY0A`CdQ+qWpJlL!~V~I19Yt^;s5{u literal 0 HcmV?d00001 diff --git a/docs-src/blog/bharatmlstack-history/post-one/index.md b/docs-src/blog/bharatmlstack-history/post-one/index.md index aa933741..cb74fd35 100644 --- a/docs-src/blog/bharatmlstack-history/post-one/index.md +++ b/docs-src/blog/bharatmlstack-history/post-one/index.md @@ -6,7 +6,7 @@ date: 2022-11-15 tags: [online-feature-store, interaction-store, mlplatform, meesho] --- -![BharatMLStack](./bharatmlstack.png) +![BharatMLStack](./bms.png) ## The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home: diff --git a/docs-src/blog/bharatmlstack-history/post-three/bms.png b/docs-src/blog/bharatmlstack-history/post-three/bms.png new file mode 100644 index 0000000000000000000000000000000000000000..b397fc8825d633167b4fecdda172d84233d3cc9d GIT binary patch literal 197116 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/lJ*L21_?o)=GotrRu+|nH(uFql@ zR86eOwL`9kO+O12hu^EMXP9cLX_R_XMWgi(`lcPT4*auFU`_dr3@;U**#_65(P#C+ z&Y=2lxiHJ-T}$_PQJg>Z3X}0k_2zRa%R(;ghk!(bK{%Z*GHCxD6&j1`cyHkl+T|~H zLN4@O0Y6Qlf>okWT6iG+Wg|Et_;uiHP{2z8ndthTXTe0pd62}ns+K{gpm*wzVmnQf zb<+F-AbVQT$^w)YA<$dVyjG&P_b;-T_6I}wVrZ2V3z%_77-yrZMU7>kHLfV9glVK# zLj6Lyf!KxdR^`;3l?X|`$CSWF5?f=pAwP&n+AWN@X=*+>oRA*}a1rfEW zIyYL8aQNt&fVcS9)+UVOsp3l8iifLG&u(|zAn?*qq2v9^@7dd%XWX2fW_C?0goZHR z7y|M>SCO`F(WIfkKHSmA<#}3TkETJV z+q}#p=EE$jiCS5tj9Ozw8KBr0*-w>MzDm_Aao!=lcs?5 zWU1Dt1(=t=cl+&=d!6wWnqH-yrx9Cz5R#l6uJkS;Uk;^ZE))kFUOyh^nqoK^&|*Fr zR<#ADr9Xg+TE=?1c*1ysARmq0Z3iFW`i@1(pdw1GDe@%tFhm9yjI! zGB*hLJP+@1gu+oQ=<}a~JQNFI+Ku}T$q&>-SuE-q2Gh!GB#u~m;xx*_u_4zZhBrv6 zHbYaVG|@_xd!nyR=kj_MV!ltTAdc#fy_-$=*7=oYw)mk|k)1|>K)elaNID5+WLtz` zofGXUME)wR+#x`gY?_c(<;T%goUaE?NBrZ{Z&6o>)zPObu_^N}ox23)kEaemw&REt z9l+LR_Qf4AhPZ=&sC~Dq_{1DR+wtQJZ-L#i7viBHi;_s?HMjzMTy>VG+?(bzbqP|> z^!=MI%VU7anrt$lP868N0WYYudc*0i-l{{}VCq?&JOMel#b8c)3MIY3R&tuaZb@>l zfec?r9X!XD!WFw<{vWR1I;!daj~AD25Rj4%rKF_9u1Zs|_x zPNyJ@?jAW9yYutC_nhDPot?uO`-7dm5AWye@qE;dRYp}d8;$JZQ&B{tNDotvLxU0D*_MyB)>X;m{`BOMw zasE-*u}zU*ihK*M?Ee`#H~ky_E#<%C|84)YN{ay~k~}WR`SSDFx5`>d??|8ip1)xm zU?h$dKa)q8`maUanwBM>4d6HO-zW-FP)uuxR%?USm!y*^!r5UaShi3H4WoFVmiI=Y zOG~bns6@51k77GWJ!t6}2&4!J?d&@hnLR-n$oO_oQH-_$_xC(jrE@Rn7$G%(hkswk@27-w%AE$49h{oJj=mj+7%T)T8=j47{QNstlVMXn*JT zN288Nm8+|BU(Y&lhkIKkZ%EekzQhR+a9n!z-1J4scMrJLonEarv5 zve@yN@6JDx(gt#xy+I1dXY!P2xO7^*zb$x3tvP(lGdW0CrG;%~1~JH`Smn){Lbl4u zEm|XD4;`$fZEk6Vl*^xdR%pd{85NNG@^VWA?c3*(ZxR6K56VmQ4>6XLLV^mz8-GY9 zr&U(wP+-%gN(rWTuQ_0b<=n5OC;df|XcH2oE@hSxhp<#2tc0qT9TvSQe>j3G-$xT# z9aLm~>TU#>Y9p=NCiwB7N1gK^U8#NvdT{?R$Ro@TKbtP zjpN4&6f=O-Q-8fC)JFIv8~mK)ONq}q_k)+&`Jb~WfT!N0vP;@bu;vUj<)gmWF;(z%wlx{s!V+$ri)l(97UECVJ<%oPr z9#G1at#hnQa}cF1K1P+5Ki2!8T59Db?u?`U&Fke)kLM9P25hO9d&xfw%DVh}<0f{$ zmCjhp&%KGkfw}~4=E%2e23)4fUgykcmc)o5$32&zF6W)68-7h;7njwT0-haaYoaKQ zd9kj}Lsm*LB&~o}=uC;S;K(a%(BfC1>&E-T!qE%EfaXgdsS;g$0IrTC_e>xMv|%&O zrbz*z=Nn^?Dab3fP0m3>NSTw@+D3s&7x?jec+v?)&&3!MBkVULVZGv87bjx4S5M^K`&X%1EkQuNLe?omnn^>sdLqb~w($v~~MsD{P{O zIbi8vw8J^-b^BO`pog1c_xyqG8J_nME_FjSHYng2<>~1SMx0%FU7pP*ofk49e3A@+ zSP^4Rk!!F@Q|$0k(v8;l62L8`5sq$_HbYd?1WI`RvB4Nb=N#j968K-_jjv;Dd+N{=^d zajAc1eGmwJO()QXU!*=hX(~3lR^%=^osheUBH4MCsNY<{_?$}pzCWjUryB-5*LyPL zL2s|4=>N7k4dn^?IWnVB`?u~@{3iY8naS~c-1qE*Z$qC6IhcJg|42W80Ck2uExc%i zCX!y)-(|{nB~Luv`sH4Ze1m2^M)cz3JyP@U^QJdWR%5N|o9`~UP4fEx-0^h|)3pCN zx8*TjW3TY!;q^DV;%Wo6y+x6-IfG%{5(a&1ot1=U%q1{};%b3ZaZ;SimDTMx)U%N% zhfws06M4p~A2SOmO)_9-{;ni&)`*_1wbQcR`J@h)7)r$oN8Qg}$PTe0NyH{ja5LS)76@R{7 z$@?xSvTJ4%0~%0Yvr$BvK!186&wDURjw$+LRKD$d8uBL*8xN$emNKVuolu1(R!Y) z0!nBDR%Xf@eJ}>1Jn3%LXrr8;3eC0)KmzR5Yw(B0{y+ayMxpwh+W9lxx>Crw&lT)) z#_O*YZ*4=Jv6IwYKQUaiTf~pD$Ai_M27X|0i8CW{dZiWdbkOdniSP$aYQ#d|0QM-8 z7-!eg*RC4Z&ySUe|BR~u?@u#}F+pjoq>vs;9XshLNYfL}FHmf=r(~aICe@$fpmzD+ zP5%yj$H-swD7rr~=yK+(;2!Z_N6l9p`4&kW{0U&-Z75n=|1(a3%a5W=g@x0#FGwOk z_*P>_C@JXB>khmP0I5$q&qJJ&H4m;7fP|?E0FNt&PgGZ*_e@$0sE{DQlT|(gllX4tD@p+xi$qBi7k3hW z!wPZ~LTfTvp8uG6xD-)|FcmQoeJdzAWSV32RQppdPQTJ08>T7acPtpHcS1Vz?;>c; z^g+*8sac0Uf9fG~PE{vrFVpf#Fi8AddOT3uC`u?4yzxRWub)e4Gjq^nUo_R7x!tI} z?(k^umb=A)#(iMM>?=4&g#TCXOMK?0%=OGy9$$e(1_vBjfYdkruijds%obb$HiGV0 zT;|){xx%I;5i+l3U@DW-qfGQvxvCS&Pp1Tv*>Ulq8t@!vHZBaQkx>`J>Ef*)xl80& zjcB-b3(k&94pffg+ytFMb>D1rLf1=KaK0`oF(_G~-G@QQpRgfV`~jH^gFAF+$CjAh6{!;hfygEIrFr+@Hm+cKEo-5kbPwo~`7 z>4%0%MvMywN}r@F)V>24OL24+B5K_EL&N{cu4~W!t>B#43xlW?oT-UD@HunE;PM~} z!lTB(4`QboBL1U=<1j+5CGrMQ*BD4bax;0)27=W4DGkRnzH;|x`r_x<+Ei(0Y{i7e z>{*f;LkR~Fx(GEQS>=k)V>3*kg_GA4--n<4uClJfrbucQc(8iRe5IR*;@x6zZDx|q zI3=naeUs*}&5X}j7(&Q{9F|5cP$bD2Dxq0JiMrSE`#OIgfgOGiJX(kHW)h?7Hbgu? zD=0^Tix&!zAoLk!TcEhP!KlDa#=z{c=-!;SVGq8YUFj3-VRq^J8=2Vd=7CI7%Shfn zmhY^eWg@=#1WPYWf3P3jgJO|VS;^ULL7J5=Xt*O#7g`<4YTfc)RyNY*4Fmq|U`7|$ zh)Iu|N7As11l?8u-(53PM&eH;v&3x(mknELwB%8+0NYMVCW(}ws-O63lxDE@!d@sR zY{Q`IbsBizBagwR@k5XdtHFoSA4F>x^!$=T0ec~LX@`Y{F9bcZrQ!^JMV{!>v>Sl0 zxf)3r1>Oy$>G(HbH>jK!qPc4M6{n&RfBC!KGnADU&zu!>QO;pENADh%pWH^vEfZt< zuq4?x5vX6^Mmh55`8@xd)z!Q9_{bMPg+Y-UukzL^0>@(;H z^0=(#iTGwpxMxaTFY_h!vl@|nbU(LdL?*R%@_7c2jOA$j;9vk(bH?H8i11XFOyD5r zn+QEX@OUyQ6>7)RZ0SNee9*7x%JPZt_)d|4*b1l43nSR{sv5lfTZ`#JXYexWoNyRs zK$N0R@LoNsuIqrYw025Vz;p2O-CDMg@1t!7s(|ic>`Imrp850z7dEH70am093a{&X zeCIPuxJe>!6bgAvuKXrj>kp%qM>C43Nv|brXXzX=)=RFKRyLy~_HD=4?+_e?gw$=F zs~sAgK3o{)wL)Qq=wqvrt9Tzv?Rr5E8`2==F!1{BH_c}%8YjYMs+zUYm%iyjCiw*W z#na0ArLMhdz^8#IwZD7PmS1R*cvAE$)DOdg5C<)@kA09-+5S8MTdxKQve~o0#7(cn zp{X;g12h{RYvHs8&iV0U3RHcn0^YmAElBq%Y6HY0yu_PBNk1tKsKt44O(fUljIs~; z8h5*ns4k>#1i2={El>xNcR>_h*O=(Un}?SQPWUd_6nn4$Uy4ohieyXRkYD%qNOi&5 zc+Kr76Y#tph<|Zy;!JXp>z_wnWQrAAKzqLUNTE~B$eM}vCXw2-V=Q>&5SxjZ$;0@6 zi#yN1#obuaEE_cl9C4Lr7vnn?vYf0@Yc%anfivjSOmTS>xvnU&Ak&9_yG@i^%zxRa zvyYMctwb2F&CkCA9Q6hi=@aQ>|DyP^80C1iM84`)Ulk-!d;b8D)f{LZ;qSna(kG{h z8O=?8U@CcxeH>qyAMyI+qxx;Jn?YlL&XxbsoADM|s!fzR8x_2CRNYM>M422N@&^)9 zH$s2>KXRTQ{r~3}67^|!TSRPrrt!Rgz4w{BHQDf>CJgYfnIX-%B}2H#mA5udRY^^K zG27lO8*%B-l2br_66NFgN|)^Q3K}1>Yp@EtXwY0FADq#y3NgsUHYR5S6G&2Hw`Ks zX&Bq#__slrQH#t=qM6tU21r(#cBap4&!G#hwAnq^q_33+h0*}YOrc`*HyU%5Pc*2T z`6T!}eRI*mvCECx$aHn$1UxAibBc4LIOc+i;0v9{DJT}jp>OD#ON6^=YG|W@lrUC1 z!6F5`*!eBwf7aEMdN`*r}qQwkutS={?kWi~lK zfixCWghjtCtpY$!f1HDt6@AbfMGiQo#Q!DEj9qyRX>9vYM#!Y7|0=?nt*98QPzAp- z_@EYE7&z=hSrt5sZVUeeZm?`J0SIl&dkn*+S7n&%wDCy>x#-+x!{c(pVlPseD@{Z6 zHlP1|&fa98LoScSVZN@Sb3D~4-f#WNHgDrr&HQP=ULb242V?u-2(D6aHds)y7)C)v znyTqy6DKCyVH9!V5?XNoHPH`Ou;S}MzU$Ar{A(S^JoN+FYFy$W)i9i%dY|hF%`;W1 zqoELCgy>LBxYf`E#h}OE_DY}467{k31C}RXL?w`1F!16hBT2oWTx6yAr%bG4NRbb( zR_({8GrQRfuCemy0ySV;{7VkVPv)RX-JbE-1G;JXOWy|T7~C;$V(BwGo@=V z1b@vVo|3aoyO^Bp zY>{#{-aX$jDoDV(i5t(Sr~zJox5sJg4Dr=_nc6ubx~T&SP8|}m-E&uX&Hr3Q`@xqepKgw{Q| zx9|EDw@3L$KZWRF_fa>?QsI8=49g*EM?-D+O(*=auQhBkHHZ>ay?1r)bTrJi9oD&| zH=JhTqi`%5dzQad`u>Yp^uGHCPu?X49g3oNJVh&)mT;PJqC6W2(CVk(6b2*rgFZWB zYr_38B-i;gg2(1c=esWf=J-4~oYqEjsE_p~MJFxt6`vrDq55U9>bHT;G+CK-%79S~ z$n5Gb7HYmGx|7>gMC2*)i^oJ{MD2C@=%;c@<;nFYBfWYS0qvU8l`PF_aWM>8iq)8L znU)md`jKaDH=_B7<)lIx#*XMrnOE$AfAfH((A#C^IUOC4+-+BQ`NZ6t=9WgDk@Ux{Ad?pfz^uwpL?&Ch*!HuI42ihR!n5u=LmNOt0B;5 za{(LVnWDDMmE)gF012}pWcLj&jMV2DrtT`OuIu4c*hViJ5G5u8Kwh}WKudaE;DB;P z-J>(ceNuM~4 zzF2_8_B?XSzO-tL?i<4^3XodC7B!!V?{W4qpzIsT&)SCI?Y{?w!+MNy!U5BWs!37y zF;nm{rEB>)QONg~g6Rg|y|^(f2~)GW+Cv_JV5!UuVAqLbZ|ePUb)4Vh7`*khh`H04kA;~3Ap=*~9+f}Ph{ z8Ga24KLL0ySMv4Ku)`Uy9jH9R;}6&U`yS+d$Ptf~RCFIQg{o6*0C?j9#B*Oz{OM?e zxg);5&HWx`NFz{O-~rHnQ&v!hAK22VmLm zq~66*O~7`=gp^1n&HAMQ1lKU{hN>ZvX+7`*pe@={j0Bh9U43xWqr(HN>PBQLhk&>D z@efm|fTdsc;mez>@;BEs0z3ZW)YCfj_ee+cyTbyseE9E0*&Q+9zzom1UN-5jZ|v^* zD%P5am6F6|bvEDn!`>_;ARp%aney=XT7D17a59W_BK-#Z*1dfk?G+`z_Mz92K}$VS zNJtFqU=wi-M@a^GqGsJHMdwcg73~=pq(0&yoLgNUDe-i!GD!&Gf}X#DMD)Df{r<4e@(k{A1uprhv9M4|$kH`sVz} zw{EnavT1Xxg365(pmfV4l>fn;E(m3PhS^kW`-1r3$vfmujijaxidx7!QZpJgB977SszBKXQ^zmvqwTB82ijJ1op-Ab}( zyF#*<)vCxQN=#>sJTTzc|2KMSi8}UV6Vk_tV@774FM zL9+&xgGtZGSu|h9b+Z7!B}z8Id>A(ooPtrY9!H#b-x1ig&@scQEy*#5abH*h7^wsS-ontCim&&4B}JLlwt~D$ zHq=)mTgM&`gGFSzHzTMx=O)$lD@@K3cWY9@);C#s;)0pvHK}31N-Cil?Z#jtUsNWw8*UKc4!%84ByhJx zJFYz~_Sk)z!xk?;zHX4!%`~{zb6K7daZ8C(jYkYAbTuc=B-z83ICs{Pc&QwO1snWq z_>=n#vNs;s=3&!NWS$oEQj(_W`#^pF2xiG*i~-j2A|gvP*Ao3S1%?_6NU0hhZ?u9ngdrqIJQ)0{YBK zg)BU(_n#T}%t8gT?&P0NkddvXgolt3CcbU3OC!pe2MKCHmPr(X{a0@XV)K#TpMuZY zY2Bm}&s|cJD{#K2QnxeDFG&l$9z4p+?r(SWb_@If92swM#KO@{jO$OBo4pB423$3* zHgr+4Qk5RT@8Z)h3BT| z*VnHD>sOR{``H0Z`O?pNeR|Pm097!J&EKai;D%^X^|$i;gNJ`zDs0@xan7{-Fh#?1 zsoNLSirMi=s-bk8ux-hq@-}>Vw?x{Q%WBE#99}5qOb)_BoJl)m}`+Uu($;y$ZX zgSwkq4R^N%H(8x-(#85xKg@L zUp4$Ans_b_I=W8kd53Ta_uIfQ-YO!ADX+w$RK1b@PxmSRSMjEsSdPjl*-N3f3-mgLJA)yFQ8Tb#uc(#JzuN<8 zezczu0Ey}aL;6b$>4xnw4UY2^Wa9J_TTKcrmQF;3icCwgdf4+w=e1n)^aG zOK5^!^e{jF{ib%HQz>JoepzrY8k7dCJ0|KgeX7f2yZ0UE0`H}rIx6~xFF>Z3qPaGh zsf`?5OXX`cBnESQ1?>>&5#w~rl!Svq-=*SxPsAWelwSuAPItcEYQ6TzC#fH(eY^V` zAP_e&LZNGrviLQqfB;)%YzFJ+R;~2?eo`@ibOEV>Ao$78MsS;Za3-Ocm^$cAoL>iU0R{x~p7#Yu?2kjtX*Zxr0m-ryT=*;T)@ zbf)c1=jjJITt)zXY+$}*G)qI28`pKC?}BMGeq9v4FN z1g{1@WWU^0g=8d#jK1!`0T7zR?g8TgWZRVj1$=L5BFxV{_y`oM{^DbwjA`>%4X8hZ zDaWl_4=0`6y73QQA1^arwCp=-byE!5q$LhC(oM(g^? zOrGFpR^~rGyI!f3jtN8_?moV-*-vTfij3E*tb%{P7L#X^@M$hU`snp;< zx;`0vT>hRorU-A&W5Mv7?nfOHzPtI1TQ6?94U%eaiw&^Ei!|*7@|zN+cKjKl4?&v+ z@1T7T907C1ryrzR7CT9@em$0d#aH`GAm&Z!kqOK&JJ(&Gt2BQcWAgYbl4_fF)@d)r zJ^Lzd3Efg#I$?B z)7#G&a6PY>?lc-{!w_@fPZrEQ7cclot^yzPr5SDVyEp7Bf7?@*P{}<6orjZBK5BJ; zyn7jzIkl8HW`pT{UsgLE;N*Z$@8IoBuuU0jDDC^M2tVs*IC_wCi-6{95X>WUS}D;T z`BK*>^U1V6Ei5+df(^Jf^z~;evG`LjcnHAnncqN=-?+J;w7q>&H#Gcl?ihU+JwT?m zEA{CTUqscA(*1N4p;q@=(q+>r$t+SX#BFr<2lB-yWRl-@)bZpwJgBv@6FmT5jYQx7 zvThhe+!|AtGbFEhd|Qru@>h6T zyl2ej*Z7aTjgYO2$=pC%86j1&{r`oATr2){7`$gaxIiJsC{be_rQ)eiwDKtWpP#^K zrugj?tv)K>XXjBbOC|b%3SB+A87+My2z@8Xk7~tee}ah4%bd=vL z!tw*AoJxu#+CDIFlrL=d0Sb9AOY$%21EIiOSkkGqfP3txo_^E;-^0v9Af;1e>IkmRCH+bzw)NEm`RjllDL6@IBA_0^7(G7$K&kgP-zML8g0O36ReleHK zUG7Y?|U$ZbKQkIbLry%k<2 z4(UQ1^(IILxxZ$12L$q%ADY%{mO|Q|Uw;YrxDLN^0jE~oh za_vZX1WLs{nyF*rR^&e!!E!v((IZ!)}LXxr+c%-CbH1%ub~)x%(n&h*ivC zd>Ht)mtDTA)@ODa$9MfM^Cm#hl&Vb{GS1PXlz(Phv&(g}AJ{{Gktk+i3y+y@$afMn zjbzmw2(l4Q%yP$){_hN1S*H$YRSMd55D93nhx;M1X{C#QM9*XgZei#m?P9!mozi zMz+gOy)#@)0=oE+6Ptd zCVcF}?k@fx(dErPs4^cwfVlq1(TE_E65Z2Dj3z$8rQhH$+(X9k-7g!q_bW%c7>G{8 z8Wb2~F$7yoF4s$H3#IS&Ga|ChZ|n0F31Maegnv4l?#f6FCiasn zE913XyNIzT-QX2GvylDQ0R*wWzg#T4c^OUc?{*F>rk<7bzHh(c#*u$GG)F8kxx8Sl zQwL^10?%WaAI+&&ghm#vt9tMw5X@sJRxe#t@(woY3pQ{1XN1(8M+`kHcFQ ztEWy;KgF=F37{pEG%ydejp|uHgy4v;0YvoPO599YBX;&}TIvYj{tg15@?gcS^)VMQ zm)a|AFcIJ&sA9r0xbsFH9Q-*qF+d1@vJIby&$hkX(UZhc{;G?Vw>(6OIZMIodGux; zuUVG3u|L#Ae698+IP+Qm!bhkGLW~0m+@}f8Xgpgjt+LpvUs6Y1as7gb-wU`ncjHBD z8VSx{UU>sc1 zbF57a6eKhi+;u-ia#wqg-4DJpfP|fiI(PDn1l;oyyDLN-UWxuC>u=)B1;Q?w%|{B6 zR$C`4q1RFy1v3T=x4r)1AOhI$418Zf4gvbz z6&E}jE8g>8klfjgMD2TIi(VEipIYaC60zI^FP}bq;gt+8#Znn^-m#n) z?CF3Px{bF)$>f;-FFX3r!tMXO&ujMW+9$;)4z>=E`D4guAyg|sIC>TBY!$PCWqhLZ z9twx{^Zm>*|JWky?I?lLwf+rLY82qSMG>Uf&rna+{xh~*A^y$YNR)Z?aJ~=xU+RPB zpU{-f?17Dfts?Rkr9|xrI+_nyf0b|4J|u(ocI++skCN`RvRUMV&B3~MyceTuoX{`H zS;9jzSc0mW=pWhE6c|6K%BVtux<|LHH3?Vf%B`^A>a;VZCcetpD_n%lE)R=HGOou3 z9O(q?q!GPWA^ShtNX%X6njHW3rkq0wy6sN-f3JXnquyO^5oVsz;!$amqON$&oJ;Yq4p_&HS4 z$2tnxd=KRt$>_YWm33yBO390tK+i z%j!eyXuCHWp{9UmB2Ry$WfOX6D&bwf%4X#cI4gF}&S+4#)!?^f6n}oa=a$9?Y|VC= zrBM7}n{ugKeK1Fre?SV;gegv}llDB;z>Oxd)odp`wjsk|*rpJxJznoV5O-=hJlPTO zJO*`++W4VOY`>Bh9-mo+lUZvn2MrY~44G|m40-qkGH5ti6#6XFf+fPFFM>(1jHs=o z#xv@v%VJ!rsvii{NoA`MwvJtfF&>h`Z z=Jg%p-S+l~y2*(}u1#y&=~?<}D@X9fOU5rkM@nDRJGQrrXMmGn>~~E3=3xPok-V;_ z=-peK)9AWqyMfn=%zSt!Dsy3ZXCb?id?@M2_DIN9kV)*{dhey`P!8@jG8!r_SS(E(<^G6~H;))_``oUNN?R3HYsvJkvyST%Pv6 z*v06$Tx1NZGaXUVOwp&>O}pmYm#PHK7r!gm4J~Lm zmBkw4-O3HodK=9GgjF6mu}{+-t@Q%+WeQ1j0FdNX#~S+D;yz0cXs1Sm^s$9+g>Ek3 zBwxTKfgZzI*Nguk6%!%xnef;w$CVio(0%-uiSf=%tmo8&F_(Os<)S6KtY<2KONVtM zhvs(=N@-=b%_sk+WOwX3G^0j}dTUlOPN^UW#-H(1%*(I0K^fS= zdQc!f^;E#q!)9q`V4?U?Zw$&XhWugx;2iNI+BA7352W8;CiIQ?Q_FmQaQzKR6v=N;c4DxVk2L|y=P%W# zkB%m=(_ck!4^>(WObELxPJFkJ(SE9R9-_)06cmN;cg2O>i9I16%E3X!s+z*)_D52p zt<+lY3IYR6>rP&`Gn)69B_#@hFD3NMybf}2I(OeMF8BDwT>X9>3gb$k23y?H{9{M%>NWy2Kg^m ziU-H=07^Gws*naV+4cv6Lqzwi_oFqNZ{R%j2a zQQPB9z|ENP!dn>>+e7`i@3epOVL_-zuk;aG#tb6TZ1=M#gDb=Dbeu;cvUUQ?@rq2+ z_8vqNPo#XAZ)liF!je%PZrH^47i$8P;><-QiU*gt^i>8OiZ;Ga!ke+<-ZMF=3W~kJ zdpW80Q30F9v;0L??D=?)QvY!ogwC0${jTD0qJ*u--8TsrfJdzIO2LozK?HX*P)_tk zL5B>{N-Xk>TjJe&JB%mqddp+;KY81uVUEP+2P6e}8$56Ka-f2<5q=4}D$~#}3MC+2 zlGcpxr$iVS<2$uJ#~UVf_^oFzTNah3CnvPA+*n+&#A4K8H%YG#b#u^Bb(d8r;nRt* z(No<}3CkhNdXZwsvd!W!hy_~yoZYL<94+$EsF{4Ay3u3UK+fdH)Ri9Ddx6bjS+eu; zd+DDC0S}|YIXryw!$r(++2dxu4o1YdaZgv3vL52wyq)xpvN2>w_EoXdg3Ax|xwB?R zmlm#vGYRP+#P!YOR7&pi!jcaOZpZAnag@S}5(}*`YG^1M@_?;~btrMEJdmEc*QXq! zT^qK&=YO2RZdCS2cE>#@@Xc-qB^D!fc;fla4mFiQrz%=`0-H_dMdou+?RJ+`A^NSZ48T@a4&=396zuAjKdNnr4qj{8+gheqSLOD8EtQCLQ-E;BO~c_jV!=mU zMUo5f`oxw3I`@>Sfcqn+lsMC|9clLxFKYu$K8v;qNM~sCfzoZ2u+_}=DZ3SEyT*0? z&MbP9iPx&Iy_fU?$)Ea{)Oq=ed+$7D!g{unGL}kQBzAc0eo9W8JOOlx!XA7N<3<16 z_>x7>y;`L#SUv=&4{ugRa5B!$O8$P?$2bqqWmo8TU{Ef{qQ694x+MaVs1XfnA7f`- zd4sT%-6`qm&t}csBQsTWDTnPRNp}7@yDvz8iw}J<{!?a^+eEq6J4P0lvj~CODfS$n z6;6tj;dS{EZGfkxl6#+(ONisSdx$#ZO`nfuM_s8}<+g-A*=){KdSE}dI*6)O-*#q7V3*=8|1oP+bdg(9qfnL84 zW+W$JJM&^Q=WE+?mw2QwfLe**{y_ZJnea~p4VX7S*0Fhb8zId{MXqFj|583kk39dmvG6QV`F7=0<{9!XMp!@pkN5=R(__Yvcd~G?}F%SDz)F5#_fs#&J+zz{g``K)Yw7| zu15w}yp`iqU4!qi-hfq%)=%RM&&HiSPMrTuLpRGKvUc8r4lz#7;6l6#u+d>lh8`-c z|5{a{EsR%kgRI@&xUB8JF^L_bwzm-Q=C0r=jDL^i>mao~ z=Vj3o+Fi8WVDJov>RyP@9z_ajLVG7PQXqgqtQ@Z-1$nmqF*bqS-Q+!uTM;-~x0Bgq z5>oL;c>rc<`wCuByF5mG6d+<8G2l zY~7ciFXz^RD9rMo(A+l{t~!iEfF7ZLmgtnrRq@y~II3mH+Co8&U90uH-)mL}ZVl^g z%D>FdZ#61vvQ;-G#>R1zwzGWx5=F^b8Tgjd{H7X0y=Pn-_>6|T-z~|l^!B5+kf>6> zV8Kqs$X~K1E=5z-LIbw^M)gIPiu`o77jc!(o2)}|rLy1tw)!4(ZpeUhcj=LGGl!pc zUB81hC~x;-^$#Owm5c|&Bi}Ot*@yKMX!bbZs!lVrYoBiq8j@rP2SVb{MNlR`(|d^d_T_WU>+C|h9s0>}BgqS~IZ6mQ zh9xN?UHLFeQ)Y{`s+K3Iv*>fvFgv{h%Ym3w&!M!q;rI{Z(Zt16< zF{Y74D`JBrm`BSpoTK+uDe4GBq&E2bl#2r8*LZpusgG<{eAu|D%M2L z6*4oKDtVF=cLm2?NrNCKDHCW*$DNQu)9~y+(H|$ItEnFu82&8&YO$`W6_y!u0HmdZ zoGe$HY1cZaia7JBwAI`txHdpc)mP_wdr(;S1=djydBSouDbC{)xP5aBY=WuDSFx4K zhdy?-iREwP{{SNKIcngYJZ)*0`-*e2%rHZQ!|U(Y?TTjxM~4KjNb*Z=|2JBxX;d+} z1pe=HD&B%a)X;SMZ*m$w%u`^eUzRuh??r)ivUX+9|1haTg6A*aUf(sO=0Avw%tss; zZ%eu+`pJmu*S8~C#5R4|M4>+XBbg|e_(W!QyZJ1(ZM8o4V`QCIR~Sb^(Y6T5`_c$! z37n9V6sWm_KX&LynTX1-?XqGHBJq5Ryeu@*dQVJaGZwu|k*kWpEJk#3vC$UcL>=9l z*?zv8w0Bnu?)WPzWmueKoGj5pAQvixy!dF z3NrNys2g{`z4v7%nyPh$za**j+>DvBta&5L`y$zmJ8uYbmg`r6NMYkA?m{M+B1C4Q z>`vES8(-tG{jX4E(gNC~8G5FI%9fT$Hrh);=R1N`!-w}aPJd20A+b@}c{t*1a=OOh zS^72v3QCn|f{JW|PexnbsI;Qvjr9pev3Cs`ZkL&}RJpU+i^7~n<=HR^78W$hC%K%q z=%R&574%X@SY9nMG#Mj`t`H)`uJYiX$dJang}eMFF4biNw)9@qrF2X+<)TcINzM1i zeD3%y23Ix}qqPcNmB0D{8W)%Jsl32EbOEy%GvC03#A<&ggVABx#WYfkGwN?4rSsd9 zWMwNuKhk8bkkS?7Zy{a|Ph;LcYhx{se$}nqzpc!qDxrhvo%Otv1z(w)>ZzhgfmtNHQrn^hqkm-ECtt>0F*-m;qbjmmFT??tzK;&lhQl-xBm z1s^uX#;eMRpK!V~2m2PQ*O!|Q#=8~A-PMRE`l?{oC~f>OQ@m>vA;a&vd$F_9Ann=w z1w5Hw%YPpv#b6;~g>+8;b;Q48lB~s2t>D*OmR$Y#it;=(snN=DK_)L#=3xc-C^kh; z?s(**!RXd%vzW;PzPE>pnwaW~aL3P&iVxV@Vj{TeJ?*eD&1{1P#8d(%VW{&jYPU8& z@DNA;#2#=(({SjFL(?*T@ztqq^v>_I`%tE@ z+)Ar%Sef2(3FYCFO@s3n=-!{Pk7;T8JFD5TRY5wI>DeXXQ#kMf6~wpODck2?^aC`* zvWLQ_ma~Br(C0W6RM#hg<4;bU5?x-`*f!j8N-&oxK{nj}};PmLeI<@|QkQ%zdjsDphe@;WRb3F5ZxO(qs zw*U8iyhe?-c2#X6irSkRF-xjewX|lH+M6Oq(5k)n-b!n)*wm=K_oh~CCB%sFdwRb< z-+z85=j7ygJWujRd^t)o2|F34V5m)v zZ@q1m>e>5!uk^4FXKQAMt8_j@l4R5Q@;*IEQ-x-?>D~k9Enb7+>XabbclKHS?(Yk8 z3<)tX7rM1)&w?c-LNf-BdP5+FH&jK-CXA?$=igFRsSR&zbhfvN7qZKZQ^ksJ>&A9oiCG&AN}vO5!te{>Mu<3Fb4G+2nHt@O+78;x#pt zY>V%Oi(tdzu7BY&2I9~XuVo#X60S7^{uA7HHhM@OeF%=9mt6jw$g#C)Gy0&4#48(B zz3POBfZh0!$lrRSX^lF02w2KCSQw7wx4Qk;-mVF*!?JxCcIl_Dk&-LGqug5(fY$l$ z$kNAmEK~yKJFVJ0Pg)94;3&g()(n*`5Fb$bi#G9OdlrV100lnA4(rRBd%@4?n=gb0 zU>e{snDM`UKyVwYi-DXQKe4`?+vr2Ln~pDqDqBmlYzIDfZ|xb2uP=ADG@(~oI)rmZ zPQvGt%Icz6c~RFoK(N?h1WT&f+AOjY(#r`*AXxNb%;r3KO&AIXX;GO<$tC9D*UZ2b z<)+!P=U3;`oN)k1bVOFQ)3=1{(jSapoH+^?OgPu}ol|@=UnVlBFl?vk9kdyH9Hi%<~4%vT0+(qPwhK`J8eQvypr1`D>%4YRFS3?Dm3!o*7fen8q?5PvAX{ zF1lA58)U7u_ExuGth#@xi)So$uElG%y1N6$Pni6o#z=8zlZBK4>l%dpUct>?@-L)D z{iyV2mz3kxd4I5a_?p*!-2UlSjH+0|-F z#INg!qRKZJMhfl6lbuqQvp+~6flW49G2(ZmwNySR5a*fR#N+1efYv!D1*f7H z4?*@pb0Z+DY`Yu~u)QMEyQMXQ-Qj>M(bYW$#3 z-1Xu2d5@!)Wy>BP>BF(1&13BAQWW{~N$=p|tKP#v=#{nfxNC^#q;Z2;H?+7ys>&jn5B4&T60m~GN1K-X653ro{-lNGZw zAC8l#(y=|u)@4wTV2|H_N6S>?Jv6Uql`TrkZVtyo)eNI_f~Sox2+SQU^F?9w)KM#m zW}dlNt;9!A-(HRhBpal8=*r`QQj8a$tkhnQe{;k2D@@hD^6*;^k^F#3OC-wcadE9v zgr`K;VvMX!qIv6+ZSzbT49Mjn$i;kg2)r=cCw_`!#NQ~K9ePfgy?f+Uz~-b&muRt= z9#;lq82{o=X~+0@Wo59 zW|oHAH2k{p|{uKpl8-Jm$yi{uz3s_NUGu7ege2H!FI}f~kkT)i%>IHjkkm z2~gZ%+?d;nFNtqIcC*{&DFhKPT5hR{WHBc&;t?JpD3Lpv*~(Qf)oN*UlIC-M$%tKwyC@)n+s3S#L^Zu?s4mLm(y^)nN|C!9$ z-t?BC+)3fQ3L`b>>`}k;@yAc=RL`*|_ChkRtfWNOqB9*2Q+lGZ&o8l2<;L6DKE6c~jivhD67*5)h7ac=a>_ zD;p#=TK=Uy3k*LW-gZum42FNa5kI^_4S1`#;Zz(PNs27vYCetUyOFbM9p?3oqvv7C z&{Ne{+IXWcD`ZB-wn2Jy@r#PlW@Fibh+xi;|#EP|e3P;JH(7ZXrX#A53>G@1e&EkDp3YTFviSW;j0&X)dq#z)Z1h%X z-C)I7TvHpj-!qP{nlh{=H0&aB_T!q)cDN^s2HAX^yvEp>+EZD?=O-w%=%-SVf@HIQ zuu2OO4uvv(3oDj1iKn&lu{VS1YTSXYC%cls^kG)U7powoxKU7{`h`M@P}bUGWF~u{ zlYKqq{>9MQ4X{bGj#|O4O4zP{AD5=KrBqAKh7m7_D$?I>tE^^!*>&K?EHONXQE_W? z<`7F514}tQhQ$Fcepti)nq(to_I%svtC%dtTRXW#wnynkpG#uUenfF2>A=sS-|NkO z-C5H(!edNUy@RLlM|XcJ&j%vNR)fq&KRROV#`(WqY0Lk5rMv1nDL{!YGmX<^*H>(( zeA1I)7=l=1rE*~2CT}26NgPoO`OWGQS>X#5`-^{>c>p3P5c&|x187a;);!q{A;62F ztXEk(FA9vD{$r7jAb?&bju?dD08b}hF?Sz06Mgq_^xFnH2%t4PfzvP=-P}#l0Oo|B zHX7+gF2o1eWj&yvCmq#I-{AcRF2^SGxxOwA=tnrn>#xm^QazE$tJWKlq{t@K5PYwj zlBn+z9DfyicssM#B_ZR&`UU(;C(0sq0r$;kUyzMQzh?ya*Dp3AgJ|^+f*0y?IdA;! zLgAdp-2Kaq|M0crsy~bq&rJr&PCR<#H#1v}*Lm=sP}J2;G`k4h_sna)kw7)N?hEPUNSv$+a2EM z4_1jgi!35X;RK7pFw&rJD$tW7?zv%)8)w^&*yUS>Dvn;JOu#SOo5LVhAQSLzVZ}mk zx!hvcvJ10CkoTB98`*sMovC4JsctTWT|=T#oMhG9;-2aIR5+Pt-sRT02c}Wz8PF`V zO30lmyo8><`Sko*JA1pP_B^!ci~p&;7N?7u#~d+J`>RfPbazqABQ(p2zBU6b6G&%G zU(~B|me<&dkA892C$11a{9DOxT77HtX(Aa84|DV;m5c>c{tW32Xl*f8%)*aCBsH3R z;m7l0Z+c)3cEsxkRMM#XMZMj_=Sj1Hdo{HmEIrlLn0OScLq=>T#3CKw@vgAft(Y+| zYjzRb7NMExzfTcOuleoG`rG~vuSsJ5L$xFB&BSYJ-2D-!&P6&*nV3eUhqb;n9b%WA zt>7Z1H7@^M9472K!w&Q1*NmF(zYL+KU~;4wiAH-BXHE#5vVu`dtEPtyO977~rVb}vr!4a(~c^DrCLWAhY}{I()CT-}KPZAehhU@X_<4QN~u{R_^& zrgXH-GPD78);h!Kr=gmyY#AzkCASdVGbvfP;qye!%_8Yq{?nV3YfY@qUtK?if=(4= zqOU1xWy*gUSQRvt+saWnZee{qkyes(tCeyKWc!&tgzwd4MQ>Ul)Qa!oEgw_8s33I= zdd+X^UVC%#g!3>S?7|_u6ArBA$`>BMmwkXOtm??1EXC#KrQdxHcEMqsM;7MmJ@|K> z%h(c1kDMLul#F3XrhSOW5_W42nJ0terWc74CLr-d=Q=523E|@}AK75^6 zx+mQJjkwKss(3Ot{bL5mVcDCUfI{XuzlWtM>V)yEfqRx1~jVEs9$K9Gkn!G+h(e z5uoa#Io#-lz2fp~;9qvLrmkvY%06{O(Wm--OP9)FgCA;Gds;`^=1kxbOI63iO}fnY zDb{P3x1Lltq_hbdL-)!esizEq9qZ}Sm8chJr~k1eKz>=o0d$;2gPjL=a`njlxMH5X z1O7XWhnpQ>SfXREKC;Ue(S8P)Rd|%j)+b^&fT7I*N;y2qnC7=LK*-jC+85P{AOK+M zP7c4LaKOc{|4OI-kMp^P-EqF|^U3%fNrz0dFL{0C*_6NC>-{=OVKpuC8o#9jHBvJV zmLS1sRV?U$))MUNA6akW);)DKKlbEQ{LvB93+QW*Ode_z$a(DuqDt8@)it)c|bOT3gcqnjz6k}&)OluR6JH*;Akbp1J(pd+${#oEidM!7LB z{L)_`LmIZ(Z5xY%U=*t;t@wCe`;qF2V3S+e;jOXo;)dX6?l42n!S^V;K`!r(=+4TH zO8$mFyP`I;C&90$+#Ffa#aV;;H{P3#yDqrlj>-xx3{TcbEiX6?q1h1wxpQnvZsnaPZg2I#2v4RnD!7sEd2)`19T>Prhr}Tt0ftV3Cjr z{bvpF~|s?-;ro|fGX;$Q3Ab3y)VoN=I2$VRs^+DLY+)c}>VCtw^lKiR3es@-(@7?@J{||HH(g zvW72yu&5ez!HV6HO;0LXJ(fo5lmy?BSi+yBwVwK`!k?}kSTA2R?DGk{_=JE~I{W&w ztE(8+1jF2Y6^bsUy5Y7%?MB~0eb=3s+wnfk>>2!%NY=}KuFR)2e_cT?vBaxltg}l; z{JvNBx`}Y~88?)7Hl>Pvj{KOU4qMq?luG&@30C6Xye|YDq^gqs{Ps=Es32_EPoPw3 z6L6gumDP9bc%B;BiAYEUt~sRaWn}&Z_9kxgqpz>g_c(Sibgeb22)O%WBvB?#Zo|FX z^^3fhxqfIOqEB?(4jC2>4BXDmLaV#nCkib=@P@15LL_%>JFix(g;DDKeQ?^@0?xEI zM$$vHX!=)rmbb(oH(D-(2R=gi$!YSKyzBXpqi^qcTF1~v&3M3I2@^==hS&!?#9Cx3 z5p3zeg|GDwKlvFw2_os6kKx&lw+#k=|2vw>%WznuNNjj_0Ni!-mGpXES!3DbE9~DP zo69@mx#`slwP~W1R-xgoE9>~C@xZR}OTwtGMu>$v#?{HVZ}0mp>S0wIc?=TlcfHs9 zEbKi!QcbbZ=l|d;=nk#|>n14yxLQWv<0e0MzWu57-Oy@?V>CI`N9K1>|huo)nfCuIK*BYOY> z2%Lm%7vDLCygL90_FUdFpMHh(Yn;TnOVIxio@XC22p`4nn%4klFy>VtrODEMB0jU^MN^M2_5ux-5Wr2dKOmlOKs?+Or?#2BC_i1LpJb96L#OB<FHt+bgfWjY+XIiJ*;|Yif9-l%t5uVzZOx@2ssDJI!K6bk`j4cPwmz+nH<4?Y)U=^GB{OmVp_o|u zJD8r=c*m>%dn^!s!#!UH%Tn5E=O3FG%&2B=gZ=#j5#^2G3dFNacO<2hefnzmJ9}!Y#s=pQf^k|(Z)q(yz(ON`L+^7DDI-hOE zOHVmz{#-Y_){|!Z8N1%K zz9EEL2}Swx96`T}OOO5wge=*0H?L1K1(}=ilhw|%>yTWzyg9esc#y`Hd6I`e1II{v zkW^XH!k<6kJDjqbkzQ@$`^{FYd!ohp5@SU)&|1)RYpt!;99#!|bIuYXb46i_9(#Nf z^W<0t3l48X9hzextIWA(Dr8q1sPu=d{+Wr*DqpD*Y_0B}5iFu?Z*^%mZ1m)*))dqU zs$nhTF1d^u!prEPj;9d1&x_ki(~y7NJ48kM=T+S2hhOZa2NIV5C5UDlfU|_vkiT6nnGH#a#Q8jsUPuuHV~kfzC7+^20hrJG#vdLz$=LBa3(-CnjHC!X!3K=q{8SL6qG zx>~upYo4Ha&(HG>?Wwd^m2ZsUlez1kYq`jA6!@_j`>|u4z&UvMGU$m5*K@q(AL&tV z!<36{;zu^lbjxZl`|NFVbcW%7v8GB*)Fp>(V&uaMikK|Al&^yHxuYy7>(hpOUED{V zi7T%Qrqz?Uqcn(qR_H!EqSM0R&FT7~+>ueU*odpRDXy2TAlzawA=G&$Z1pbUQS56F z^yhUy<+*(TjhAqYIH%i(&x$q5$3x}K<5f({hF6t|b7%IjdA$MRV%!R+jeMW#jd69z z;@)PsMOlx&We`F+%N4kFU!$1LAAmzEYnQb2J~*=HC_o%~h;+3VwgQPQH!s0Xo4ZVD z2|SEdYfBYmrju=f^j7`$;v4U)_A(Te=8T>f;f%G0_1RUoFJI27N1ZGGIQrH;AK_jU zUv+>GHq*I16{+$po*Ul_keEtdgw67pAq!bkVzp~Z4A%e697;wJOfqB#x_1;Hx4Ac^ z|B&Tda<0Cghsx`ih6i=uUX|TevqT0^S0t@Myk zy8A9!mmIrF+TdNI2v2X`n4rPoxw7+kNHrIv&>%VBU|D6$kWeo1W6AV-XB-Pwe`1Oo zeJI>w*w+EG3NxyF4quJU6liqvVyhCg=7$_e25g83cToMBDN_z#dnO!VV)cgC2+zqC zj-~MS^}f}h7O)eq?vlAoLA6hoJaU(fR0mWO@RDCG6Lp2uy(ae9emHo5{=GQ(d}$4r zu%2f3!%ts};VxEsI(5GRPwHOOZW-Rs#(t+xN9AMg?9K8nm54R{YX)V{1noRW8C<&v zlvc$fa^8V8uSysVSpWBt6v8XHh9%3@A#iS!B2{$ul3Loh{8ljYb3a=PX3;FrO}2dl zkoYP#1l4YRXE}LpV`sC;H=*g>V|YWUFjs}-JjdS@NkWCEU>qgeS}u2)qjYX(Z;`)S zRC*GZ=@5;WRfD5U=JhnjOTxwLLpve^yjO2!AcLZOhX{9U#;09g{B@6ywqjQ(|LP!N zUJj)2=_X*lX(mV6!?=$Ls_ai1OzDu#lvn9U8SS%`L)Lzc$WWgz-)wLDjQ}BQF(75u3+twr zYJ_p{<>J&dwDNKy&1Z!n={ED`1b^;~1kQKKedGXFmm0u3U@*8AtLbs8i9L>*cG>!+o)$=~WDqe(>d{Sc^DsweCOps$iI1K|E~!z?ei9(z*hR ztln_Nf%k8WKsb8e4N_cyHsh`6F`~LmF1Nd}klJfe)lb*@l+zrtzGx~jA57R8)4iX1 z10B4>?$39Q>bx~?{phfv{&vagLDlYyiFxWAJa5=gbOqu+h|08fygEm=d!bLEIn(YW1aq#mFN zX{XKE%`{*ocJ!uG;wBbh%VGyBFY{pk@)Rvm`^rMr(@BKbf@cP(n+hK*FyUh0Zldud0{UQ|N*(JDvI z)GwizqQxKVmk%qgbgDq2lMM7a3P19I1-O;L1cou@JBMw|)o0O>mpYt2x8_pgd(x4M z(>BIoj*p^#royTwGXf7zBwfmo!eSlK`lp4m9v2&l^TfM$M%L&w!6AOy7|Fg%&RvLU zU#;PC=9ZjPCG6e)F2?v}Yg({HB=xO$jN7O-O#^%Fs}nR5!4jm z#dRQlg||7@8VaZ2W0St?(e2EcBmF+<=u;;;Wlo)xK9CmY1Wo*pZ7<5T%C}!zO{Q{X z1_xgV_p@rIBQKv5j)<=o9Nw@_vH! zdvhPh=aP70cPx~r!U=xa%$VG~O#=*4r`@2uSby~@{9}5z&Duerve*a94RpdqfApr{ z{){<>(16<-u6!xva%d-~)A^}iK5byiVae;aJcA9l`1)y?FsAc5^J~He-_ra9V(6X2 z^$K%ZdAPR|-tSF=z+*<5aH>HH)H^yi(?^c{;=;E1VG-Q?^J*FpDgMVXq?yTGt}1~_ zjy8`liY}u!OFj#pgEy;zR4Md*EOt##L@eHzct)vbnELZDUTgS3fgSN%c8FtzRq5OM z$np&(>Bnnx>TI_40zr6GQ1_wXzn2!ixR?RS)!HYyhEzr#Rr_a{<+ZCfC6qSe1b+j? z+9bhmTH1HNy4p@5R7?iU@g}rZaN@}y`EQWVk&9?~n?*;{4J>2}6 zNPohvXOwAV;=0ktTqP|1Q&3zrCK)Bisd!O?hrs-e5C6Km(+2ADjP3LpVDlU!Jsk%8xFDs_hjk{a*?6BfPTx_=-R$2KE9Bba zB|7iutNg;w1AxBTdw%S%{wu{??@L=`^?;m7M;06S&aXRP{NM|DXbTuz`r#j_zJj<1 zK14y~zcGoQe``J~cqnU1?>SMSZJ6x;%9bHH^Nqq+zx6-@6;^FUIy45_j~!RJ(c*w@ zK4Oqe*5FO+P@#*@&&=JDr0Yy?l@VNQV9}<|LGd2xeHyCW-iO(@nc^iI^{16;R@Ec? z8)RBRz>!&~A#lHPjTOJCr!RT-9<~xq16FW`AHg*;(3W)U~If~&;DGT|jy zz>8ePL!zk~-v8~hL`yZ>DdJo_<~a#$y<-nUvFsT$J8IB9_?$-p@yiHNInzM3wYOpx zuV6wQp|TnMk&0PB;(iQLo>8p-)%nzPi?M6jB3c0Ou$YbQplw$w+lhMf2aHft7jK8^__yw-thL*F|8Z%RNDmTjWg3b6sP>`w1b@_3 zN4({kXSScKvY`9Nr`OG{R?W7z=WK`OX#U9A={*#Qhu`eq^uR&w3p85xAThcgy}x`u z!uu9%N_jS$01l_2)hII|hRn4z{B58ez@uZl-(nzTYn=9oBq~c+W`PP6eMobZMplU+3vc4P~@R|E;P{lR4Iqk&;3|SDbuIs zREgo*tg3O5#F0Ge9z{J@QnFg}`-_uxDLI zoQbPXZ6i?G*-uK%g%2b-k}7Ml9E1?Z^9oEJNmNLy!F6JL!;GeQjJQMqsGp7WhTZ zdn>eAEv&Losp@9po>L<~w)k|yBVYFOrOot}%Dy*OutDGNsPYHBu14eUquT9{UH`U7CtO8Y_QuR{d`E) zAeOlyALludnqjgL8NS-2(`RgW@-#}^QcJb&N6P`xI67jfpZ;>B4o+X)kbcH7ja z6Q`Vd>6d+}^T~)nnG7snkfPM2JG~s*33+R-k6AlmPq(Qc5nz!xU#W=EYw*2AZw^>n4;4}B0YjdSH48p@23Nfb)l@<_b^RN5mHNWZrc*zk#^BmrYFAtv>&Qlv7v^KQi)J+&m$ZnA&b0S!EYxk z^Z2u-Ny2!Yn7iqar$oKQ8$AZtd91`BK3lo}`d<^F40gDyj>jHfCmdhO9U593HFUFG z*wMNHYZZ4T^L8JV=y>fAW`#E`&7%D37#eLm_O&N|VT@a(PCE+bj}0R|vS#zb9m|er z-_SPtG|hD#bo`G=ew6S4RPEYaK?BV@5d7!M6J{EJTZg%8m>TR6CXS?6_yRDw;9l>4 z(DH=jt_={ZvZX5qh~0}L_Hm@Zndy5IMu-hsg%wh5J4K!OO`PbY`j0UHhUGKdvXfxd6yla`XfT`5#0oZ*3~cf=K!PDcC_{#}o0M_&A(h z#CpE?e!S$p&^tA(b93;ZO4X|CNiKN;)F!@;i(JM(+IHfaw2&Fni}oqo$XK-MU(#8; zRhX-W&IFIx9+ymoKT{5lqehdp5P7<=kv`45L?bmB+VsgnIf6?w(7fbGkdU0^r7fFW zZF<&~ufK8N#%{^kwSQ^a$Pa{>9qIK#PS?CpjgyKzlR<=cwSD^1WO4f8N9>pn zkc#UMkmu!sPLHm0ZqOGAn7H+TYFVimm4{XDByI-GqC}{!&aw5R4;O}0O8)I1%Z4#< z2UrZRcMYPie>p~dF{;He3?WLWBOTs!i}K=wt=FJ+6(4{Drk@Otb~F?5mo zaU+Y9kzi`ew9~BvIQei=jGS7OwiM^@mx1W+_ufB5{fhfE_1-8fjQ!0=dxzrY5`gH{ zaP%FMJ}{_FS~^~>|9qFa`%zBiP1OASt1S<(%PFpWQNZ;BFVFK$+9|#32>4>OnSJZF zNL8-NU!!O=?9nn0Q%K0?{qhn|#$Wa#Lo*{uaFPcE3pB!}w1hji$MQy&-i6%W%P zGxo8^2s#PKd72e&eE9W|E-umct;C*c;OtQ*+J2ai^OIEZ2nm>Y@*oaXu&GJbmwa0i zw{-C>-xQwL*&tf+1T}fi*R?n|e^4$p>;>tFcaRGcF~K*$)H-bWj{+5HH4S#`|JE8}d<; zO!niNx;ED!P_806xeji$~Hr2*QW#`E?q0jQB=b8no}pue@?wzG8Np$@W| zF0JVCy;l4sMr63W^41eMeMsmCk;Imcfe4zwAdXk=tk}85q?;;x{%AY$F)Ev2kuKA{ zm%u>ExD%G^w&;gOXC_XlgIvDc^r8rhRI4boBf*i}nODUHv&W4~o?mC_YWsCo68Elh ze9KGzUw{XFc9&T6$!s78xFm{U1SLG6FJ$ml{RLIX)oARL*L;$i~0e(H{ZKP7>SZEDeVa)L=_|2kWVHbb^g^G^Og!mvve8~Ye6RPaNlh3muD%OBtX@;Q8< z?TlEX&J^#qDe}8SCd%f%PWcFGnB%zOtdyf^kcJYFTrl${cevgb2G|8|=?Bs@6Gn5B z0V~mM9tn=PLn1jeh3(KN)M$ z5RcaihRWT8N48_}#tcF9dYOKiD)RrFy|EQWkPz>T$-}E*pV{J7zSkO=4}uHp{1m>V z+6OameSJ?|>YJ9DjNe8PDwCi2#_FdCR5IjkjH(eOXaNauFUK35?tzW zo0x&s`AiP#?LSpd?K7p2T8QPdmV1@Y60ya#d|qjdQe^kT6P8E%c%CY^du@bJYA=P? z>f5{e=6$jxysCG^TYp5dc8yUXsoppAIWaa<()JUw;>m*FZy_=;-Q454ii0{UQ)nDD zsapRrXNp*ro%>xveWET+S@A8w;It7k8`0f##9p2G_zeB}H#rQFMiy+^!c1{-6MI&%ySZ6Y z-|Y|lngZ;Qrp{g}SDkxi^K68p8S=~jboJn;yGFJMKI~3S8LI&{u4B5^S+8Hg?^6IM zNK~Hm|M~e~B)jYE$}B3FGG?U=zSM@;2$-KrCW4NTl;6tXX;(#DCoB;!5cO zwv)~m8t}#z!Dceo-pFfvJEy4!VrM3qLY{54a0`Tj6HlJ0tjz5?cGd*#RC{E9x6TY& zE7lA9qeExHX|~w#TpO>zY6@jT0il8AggNlE6*D50?thS*SshvP8wfm@wHE4CvIWcx z8PXYds4@QJg!Ec1a5Qa*dM~HSmcP8_BD!M84pnYOM^4WKbTb@jS8)s{%ER=}go+6K zgOJTVRL>)?6}LQIL{@@iUv8<*rO*+M=SFnGEW940wD?JOS(763Di)ZrGEA{TFW=6K z88zRA*}ty`xy(~%KdhWViL2H5M6hKsjgKfcACFpbA{DH*o`f;CRGGLREO`xf6VA zw?WyiY6f_EN_8elLUNNjZBua%uCOCKH$N;_U*~7j7BE>zk$3FilQobLE;gfOAkCXm z*Y8Ql8iHaC<*3MLv^=E=M|eRlkdx8Fxf?;@v_lCX7OqCYRUp~A`Llj8!f`>(cNaED z3v$Z0EM@!ZF$}iQXEw|wA98d4a{lfx=DqR=aU{(?r1>1XIucdV098jUZezD0oEiVC zYUk(gs@i6$oxVH!Vb1}|rQ;WEbYnQ+_b~{SyA!*=0Za{#2T9%_0+<@9f}=Cmu@eCI z5S#sVIl$Nc1(JL7WMj_AfXH}1BjD_&!cooyT-+HwFrMt9D2Kbu;&0eTPxm_>8AxS7 zefP0??lQspv!2hh^(e9>aQ7=14NtU+%e8q9f;EeVYjNzjUMWG1W$i|T!|s8`3SH}0}Kd=YWi zOU!xlUSV(~^J)jlZY+MaD!d&?ekh}C_e!fuhjH)6S}+jM5-Zi|xVdG|R{8e>qisRQ z#`1Z)JBqMR#{Q7GZGJ0jc@8(sntnm%YNZ=e`88qBzqVARsDf!wP^5MW_b+q!WEfZ9 zr8_Z6mVYdcagZmi4edIc!(U98ZHi6Ix>!mdKc6B zo#4oTT86GvudxfkNRMMo(XG6daLn{$&i0%|ZB)%NF2sU|H_)dAZ9KlP8GcA63mtg71&dKkzIgvqyYCU8rqMtJ}+T(gK_cwFzL zL=6}AsQTZ-%f|$zZ=$h!iFAx$Ro8AaoJJ-hi6G;*1Y(ey6^m#EDLEbZ1ex)>hh#e3 zu5m&xEIAW;)>~*+7Zr9R5_ST~qSE{P9zC*UYm>_y%F5U=ld@=W|zV-yh9`$Ew97b!!JI zadpLLssI^ck)K4~?Hp_$$Rd4qCzF z3=?8uGg05g2N*X%BX2C7c?Ysu`z9hFTb9FBU$vLrLuXkjqk?R$;3QA@iBaG$^Akhi zbzC_*rxcb2cD-|>(`C1kKv26tR&JUTGz#ldf>_+R#}OE~R3(x%oH+L#{W_11hg_Ci zF}v}F2+C-{B`$LYB-=t~QUCsZe4@Ft1fGi@dnBaHc2L>aQtXV@&9X zZMDNv*f_u5at?5J4{~{4nHllVWMKZ9rh%<_Hy`1{KR#km{y9=z#-c^#0<1NKh_}0ygB&DV~%>c)@cV|c#X48jo)?=Z|`6H`xdk?(s8uWEmt>$mN@N1rf@6J4wwPM z5stz>D*pLoNLmYBv5Os1<%^I2xxfs@)wd2>9&Uc?FhrS3z&YA4n2%ScWq^gWOt0M2 zM>bisoQVdI=H4gsh}!||o?Sqk_)dUSC2MGQH%W88cS6x{iKV^~4_DR(qUhOF(j zWcQt)UzGV6pN6^{jjqJX{2`0LA>y0w^S&DcBt~N6a~BaopZ(+<1qJ~fVi|Pz@8GQg zd5r(cPyF2fjjQ-X2NbFTi~vvx#_oM`*>Y{M2F|a5(Dk`&7m~!8pCYx-?YRdqwu-ac z|6}AGCO!lwj(n#Dlkd`AMhvvJ4|7w7ztj;HIm`rfo0MSp8`A8&f=0?Rk(V zac8>nQ?i%Ix#zgO>t7claN$p8D!q~ zu49EQS7oR3N~edrETA8hzi(5uEC%S^|2^D4XUlM{oZWd8l+c#XbUU|)oPBA3Xp?^+d@W( zuqXpx^|=CeH+1c}n_)K|(_ zh=(bUhnne(KF&?k@;AnhjqpvCOySgmgoC-kpu===d;6KNi!WYY1Bme^)}l3g+gkL* zstBlExa<|Dfx5^#bi_05*38Vo5E!?0Sg*%N;=NiNIm^u3vPESkA5n%ClQyPr(2BPP z`y+6!1-9R8k#6nvk;107KCqP2VJYu5DyO|N!Q}RaUB!ijCamD{z&G3O{kEI9*w+W&5|D31f1yO0dhWYUils z1OR({%Ls|5j3tkew*XCw6#8?)J=Ua%T}8U;m0BRO4`us!!}&zy!?n}I$Ua%a({7I4 zTv+!mi{`l6A9R_hM%g&zpMhSfuwzSzgv6}VUUtUM)u5XP-Z7;NS5(I@3YF!~;$mgC zHh)6t@RAa}3>hz))Sg_V+9+X-n#&~>Mp`%V`?Ictki=k>J!LSCJFkeGIlH$Mk=mxMI#J!nr=o|1SRtEl5%czxZ^Mcx!l9{$B#7tOlTW42pZ8V4%u7yoY@#s9CG?Xj!g z0(y4el@MP{(ie?v1)UB&Lb+W(tSO9ln)mem$vh!^8)~T0PyXv-g%CA>|DOzf$+lY9S&X> zsBEEu2~iXcubMWYlbWla&n8D2kK0QdRvLN5d|!rzYy|h8|77 z)oIX14=vB$QhVguBNm+cS#8JH&hxUL$NbdCnjKl0_sGAG-sbfga$Pbx#AHWdfdwRe z`7(OypDcs+qO-!;bCPmTO%~1z-bIlC^o~}(hN3KovGYRq3 zZwgos515gbvVa}TkutxDM;OV1cLueXoL(x)?)=hceJNOUZ&;bF^rMs(<4uuP2SPqZ zl_r;Ylqg!0{+_bom`rmn0mjJZ;#B)~E#l=u@OsJcSN&s(bCyp{zaR~u?+7CvIiE*S zh1L_l5G^u98?N}>p-`LQXFo8tv(vig{!978J+S|C$ep{%=>wA5JjXbOY1TBT`ZiOGa_O%G1ZGa1j*hsA2+qkQ@< z3({_DK`uD@qU*U|w1=RF9`&=I7}g+E0%|{#cLmGeWejzsWKu}e05e$Zn*C67mOwks zkrq=;Pu_|3qJ5aaAOjzYtt9D4`ISh!^(_5_uIm0&V?lO5o156OOPx{7r>hz*{cbaw z2FA;P`0lrAMDW@wOZX_1na?h=%gZV(s+DFNwb zD5YWO7)o;JZiaa;pYQKo^UthVcjmJ0;yh>X{XBag+n>ZAty4X+e<_p>X8(cDvqH`xfcxg{U@Rbe7qtl%nt%s$j9R7!*WQgHKAhDV zk~b;kesPM8Fw8P^sYk8rA<(`0j3I&LA&y5ziVujA;AOf}5P2W(ye^eG#V4YQvcXdW z=WRXazP}vnJ_l5;C)Vv5zBc6zDba!Gs0@9g+sWwp|5*UR#WBI}GMt&9vuj34JziL& zuD5UIqK&Ny_eNOY>Lc9!L0)Fi`ic42gW{G22H)NhVPH@-JTu`)7kZit?h+p zIKt!pkYCpKyQJqc)qhcdFcddi7Zr$gACdFL>Q}UO^&@;Hhpnq!`soGt1uACcy{^d; zrgnq#?1Zw;_dXKb&9#tNPS4Cd-2FV%LI^vSFp@;AX%CSk`cwVOCYPgmaBT(jJ?08r z##lPa?_l=Q7eN|~c38m9$0&XzaC29pjJEVl4RaBd_J8b(A1_pk*QFRo2S_LGdD~g! zB`h>@$kf!l`3nCVd(W1!huu3Y1lPw}Tnf+gX0Xp%3<R67rN9T`Yk)QGA@UniEK`>BV8n|-i)UiF>5 zAz%Gb`2hCVHN9d|y-xdr`Gip)*+&`RrcT*37UOi%7Yxw6xco2W_$FVmB>CWbk1y3x zv&?RS!Ixb!LZrPiH6p~;ciULsUa42rl;1pxpN9>Te;!Y|sOgdT)Ar%Ga)JN?6{-EXs7yBI@AVhCOxf;_#?M;1+nbu?+?}~ zBS!ESf@zwDB&F*|8ETIW>B-Vm6D#O#vyBgvfl?*&lbhO ziM{DF62*sCk~YQ2o7i_Wonwqd3j>xB);mD6L~@(fFMBCJgi|^VDWE=W+I!+8+1~Ja zJ>SN_2NVqmfJ)Y9gd?mV_f>2lmhCe?09{RT7Dk|&O zLxr{t#p=ng@HH+RrmEA_O;>Wux36&7HfSGF=%9xcsjeyN@1+m(HttMxN6_9$I_@?7HdF)Pw|Vn5d+Ud%uNP**ATy06@z&U zFvsK&^@@CNl=WAcZNH;t5v!u6nd6ZB6&!!`t&QYTR8;8)bRtH#jRk}7SSS{g{$rYm z5pjY{5#`zFqz;s(hOlUd_d}7iL676(3RC_*> zMe6fy78+s6Qi3=m>{n81-!7Z0Vw3Y%8JXIN=&9r<>rI;YJ)j>|HxO9}o8GlJ55kOU zx2t%%+Kxlf)+CFgP^ppOl5Q0mf6uxOZ7s`!*2-wDs9iQPS8y`$`)>2+zP{6vp7 zLZbw$bJ1%));7Y+A{L=fz+Xi#fBdP>qE<@XQ2Obliu^9!dO{_hPz&xpmV;fT(2vkc zL3B5zI7oQpZY?MO=q(On-hz$)`g2PQiyeGycE}m?PnmVVy6s}c(Ta_JoXf_R%GZWq zQKV&oE6YuA+PdA=#^axfES5K(zTv!BTU8fmhB#hh3{#&OWb^8x(^utAEPl%M+m#qm zsb@w|f%!L4C{q8rJ(u0)xSpJ%w&|55VTHEyv%0%F&T?U+RG|+sSMURe40wU1k6xLh z5>Iyw>?di^2U7{a6J4_^eynukpvh>CVeuKZjC0UK@_PsAvGh5O48}(UjPVlmx z2{Wl3u>vlhbzw-5|M}85LtU=pliJ@Vv8#*BP}5#>%*R({J0U7EV&n7Dtp!j{Y2o9e ze8rrweN6?4;aK6eM=oZAqj3OKykdnm_<@2xi>M3IaykUrB8BFd+z{;LL7DW}(qJej z@q!~|Q^jxBXq>^3#s{n5_%BZK$f~v`zSS#UHSe4=%@Gxui*>=S z?78{JwlX=vGOz{i| zQE6F@Nz1CQ0Hd;N=J(vrk3SrR+pteYH5J4MQaQ0i4ldb;cLG0ME3Sh7`IM9YFrx@! zMH~#q`48+)h?j#`Ny_o&_{&$tKuI#Y(^Fy$VLY#fAYu<+z%Y&$80ih9A z@Ucw9i6P!u&<#P40gA+XmT++UR`%lpFfvH>p9=UJ>%W+00 zHNFoTdkIA4O#iEy^$$=7!apEkMEfeT6qY2K);h5E@$ItBuVk_iPQ0u&sKoxS3F-LT}v7m~t+-wV>aj%44FXj9h6ck=I$dSYYHRVYN5M<;vv zvkNk^{uDO2DQ`IEsCKj~`GUptlEN+`^6*>P(5z<{78AQxu*0Hq?wPa^xIVDcA%TTJ zid@|=(j(DC3ZLcstSp-9sE5e*Iw3fn;BQ6@BlGRb!E$}#CVz?odNoq}| z=Rao6Vk#BCVd#!?n#ZEx0L6{(&VnaoEu$!&fe2E_X8Gd6R@O@^>Q)DNgITEBMO3uT zzdNJm+rX&HBm>3?@b@o(tiVw6>7aUbhom0}A^d0@&G#I>_lJer=vi-JH2M@=rx3p9 zknn($h@!Z!e;gc?JJb}KRk~Eycp>CDBS7%d4q&c)IL6&+5>q9Ig*B#ydKUiK$K@9@ z(DK`%b!%mRLchLEk#~6R@99MLm}liSYQ-Q$ZY*bK*iu<68Tztd9jxw2IsH2dRW9fs zdU6}bmWP#{NUSpQj1twQD6*@WVvPld^@ z$Wp^{a}jB6Z!4zXciwWUrPj;$Kn(iZR}4|(wlbN0Z5sO5)zL(VFGrXgxdVZbB7P%B zth3jcO51dOzZ*!vX@pEV)I|%s_6*D7JY^g5F@Y6Hmo%ndWXD+u5aGKw_+rC7!#DY} zB%2knvIV2`nEZ~k4iTPX$_pQ5(C0!8(da6X4X}Y!kRQz91c=nv|JFtDt|;dG&-jOn z4!pL`^Yj+_lYx>^-8%7Fh5;Nq44V^*k)5%hdO@WKcW)C$mfQ6PwX#v_mWS#QEn71` z9LD3ZedoHbZV&Za|4vmjURPL0^RF6$Zct%7q(!UB@1OOYB-IR*g049tf-qr=ek0F7%YT-EqjC9p9(GLInU;1D)^mjEbW_3D(h`#X}qtdA&DZT|6S1##*0OyLS7Y2E=dRb+lo|+?@uk@B_wW(%=(aEyciSM41oj8IBsz|R=Dm_52ySu z@0h>=%@fmcgI_zvWa{`_H9d~#@!`voS!+T|o5aq#@v5?e%k&Y7^IZG|wNKY;q3j4X z!y49ahpt9E>n;Jwo3~G0vv0EB$r4@sB`CL{RD;v!Fz%=t!?Hc+KI=J^HI6yRBPq@X zo4#%~LTH*;JeW;k8=)R`Xm(aWrjV4CkdwY(b$9%+uh4m-CHBWdHYIEyZ}_^-aV&~o z4H0=8agOc(o^xyYns?<0mvF}s=0z8Nlokis#bsD|UU>P~d~j!8XoR=+#c-C{<*}9C zFn2vOBEAxDaW_K(!#9*b zScUQZm`!*Lu8QZ6Xd{4{J7$FfH8w64_;iE?XhN?_Z%!^odJSOb0m^2=hkK3=go~v_ zxC2=hqB4nunP8y2<^YCmpU!&$GsN#c!|Y;lRJ}YENEzcGWdnQY6D%-a;{yRXAa@yx zCW+&cC1R08{70xx9_jj2KpA_@bB8L>gFvLcLJSid%kWL;SV5yRwn_NU5^DGV3f6T* zlRof)Xmpkm1=kdfB<(WUW|Ak#a#dL+5`aEc(|)9A#pr9o6eP4Kj^|)cNZy`rnY6GZ zlZ~n&VgJXmC4J1lkmk;Z#k8kI{%V`I^{WB)1fQT=;igp4?Jg-S%;LdAUvA)th8NK+ z2|r&z-p9zn-%&!13SN8wL$iLIn|`JFDv6rvyA7qmoj4_u{g|lIrwjQz#KMF*a(QW> zHxiJ0{-GK)FFOb&7rWEWuchFP8fV}Kjr`yN4az18*eNO|7xk&wN*?T9_;-6Yto0z{ z++z_w$aIccKf(#3#}BevClta&U>c~ZdbgduX_i?viA^lemT>TyW)WLQ(xd%zp4Mgk zy1M}9fWlb{rQASFd6pR1 zXC#3isc$QwtXwrK{mC~E8<z@5fJ7sWVdfgJbtWNO>XBaGMt3jAz{p5;e zUv^QLB2j~!q7x&sOGv3M7Jq>Zfm(@*hGRT<*b0o0kOUnss#hK06}i04)2nMA^$f=# z=d0|EeH3E$Hb6O`DBf63gY;U`5bIO{}++yIw+K74nYJ zzb_U;Qgw9ayuOvZzS{6>&iW}uMn(U$$BPc@RV*@wfb63@xs=u5J5UiD+o#v>JA=(t zES@lbdR@d+g#W}QnY8~I3v;nuk!G3b2UQC8PeTxfoq zlNpA#vGW?SP}}s!Z!M^~2_qf@PEL8k{PD(`qDhl>Kq<;6Qc;H&FTBvWB_zT-5bGJE zic!GBe>6#(IRPzwZ(Jm%NGY0H%2`gpyY(vNnHp&K9n)&!pySk&Hj8z^xtq)ww{-Qt z3>xrc&xX^++5%X6s3~S5(vSzYXcLy}mcOS@bhr^-AqeA?);-5r-u?2Yajb7@?%-g+N9lIrZT;Dn>{r&AmDDGa&r;h& zU?0Yu(AWQ-R4k(YT^LBTVs3BYn-q1SUK5KD@A?xr1n&<|SBiy>x0@DXERZ3;d^!EYW5II)ss%yO}&A(CPvs|}*pY{&D!PSeX3Asl1h%Gsu2Q-=y&!T`BeJFz(}bpH zN}-=|UC-`z2-ItL#P?JyUK*Gg3mBM?bgoU+*3TVdl#=je3}^PbBAs}l2rIQJaYVh& zCsSJf-p&Y1%~(+r*r_Vn^L48kXZ8E|->J=y-zHzqopI*gRk5Fgmr&1=7GCdKw1~VP zAgpF8QD$+MON@k5u|IESR$pOPaQPl<`1w8QbyjHEJmK9AScT%r@y67o!<8`l!Y!!+ zyr+_+o9kP+5FI>vRaeK=oQ#T8{N?cx)j@W>)x&d}|IKDSgj4m)YEhw&=u^_K}7_=^~1m3tzmWX~duHb2zE4qPgIx^qU#rbzv+^ppm zrbUGz-zkkh_J;YTCVPQ{NS36qs5QZ6?mc4}kDG>&^3 z*B=~r6NpzI$)n$f*XZ&fgetNGLJe;%eO-SORG^4F?)XHATL$@E;vBYZw}lvgFtf%m2@Y$`cEJD8=FSxE z6w+8x$K>wOC6Q-L-t;=jiTZuudefizumI_c8@7-zC(b{V=wP!SUwyDLhhR+*om0VG zaX0yms}#?QFFPVDmElH>_4DqfeY%|SSlo^wirPGj;slJ`;e#ohRc~a!x;92)_n+7w z^7mDcC>fI*QZh3&OD78PyLr@!F=5K_5e#aQn3SdYRzDDTs~MVxY;Y}kWtdFAr#m-`@ncvpW;%-krQJA{?I+UNxRR0di zQA!=c=d8}^ZqL$1IGEt~C#}tT`r_Pe@qJY?<{k}i2z;*!b>`t(Tk1*&XkBhJ*9PV9 z$=(o{{n3GCMCNUxug*L?+w!6qUN$>*q*lQ8(_Sonyf!Ez)#SyQk!`me5D+Km6pTv$*a}) zfhJ#fO|K)W>6+NQ?AfUkg{~K()%?q;JZ>uP-nsIHJ2?fzpYx4qy0Ry6U#~w7<4IB; z5jy&!?1Ra2VZ`Iz{B84DoKJdR`ZP6Pp+|J%7GXcXqaU{cx5SrQRss{JVFvf!AUjED zyKRG@blPf(q-61Ny4|D^>SVHR`;U5fPKj)so9Z<)XjAoi={@-!j}jkR^N+y3iLM5jSL~*^X*t@?QRYxt}tL368s&-;~SG3+ceQ z{G~q)Z{ZJmuN2zv79)e}>VB-(p{>lC7uP(%U7-nj*wWL?9Tjnn&j}K|&-JgA78rZg zd(oxfK6L5pH;wTu4dw*i4C~_R21lL|d*iBuNfoGd^gRdmBJaZf1&CUx_oHNFxeL68m1CZarG z2{Y1LoVC9*Vw4*vZY4zCX$mf`rT`Z~T!78~_jBAl69{#PBsG8z7W{TCO)%83?q6P` z!Gy>~xu^SPg&2h)^glv6f_bz}d}j5Nj`9|?Nfxr|5@m#+^g>H%kM6LXvz7A8^CQyq z9!Rr1B*$;um^=7~8LlY}492|e_;LCn7|5jOoK08wBNO0}b7nsYNesMFHmf`apZ|-? z+^r*z=w~kkS+&#B;XJ}jtQ7^}fb6j+SXiDsWbq(;=0xPbq4Em|!&OoGfhiXd>S$BzyUkHl&cV z?PH_KlHagjS|6rcsV|EJVGZjR!PL@Cl%UeE0J9rZ@hmI&oL5?yrycY-{bauxcAfAo zF7LO(Z}`o>Nha&1)Bb8lv5u5Q19*jNzpaAUE+s#o?3vB1*_#`C_+2Ll{=DI*yNd-z zbo+49??7{^d<)qX&K}5{hAezJw!RY(xg^Hv@0q++i_jRNXVVNAt&14q6w8HPgFmE7 zHVnms!+6Xf$SvyWviU}Kl++uEZj;M`PN#lo=?(?KzuE|4);YI^MG7|u@O6Bb#`BH*iuh!%O(~Ug@yDex=R0G0I)P~4m&7w1 zU(u?J=jaMn03(~-_G_!)TCr(_?f0>`9{_&fb-3!5SF!gx6RbI`e1r1r$?6A>hn5$j z&VD~8SO2MtOjw4CuE?~qPkd&^p9wr3snR}U1rTrTnD5hYTgFTUAR~yXvxu(gBP&;d zFycG-dZ-pw=}{=T!;vWN zR6m{nsW*K39mxW)ESIjQ?8Nr*z_MaBpc?0P;aU;Z?ShrhOUS5*R3kD?P^XF3jlq_3 zzQmn7Y|MK9&J}0fQv~8Q!{0wy?9=%o$!zh#VW@&}z|cE$5uSFGJ2# zKxxyk@2UvG)WI1~442K-W3ATrcpdOF)Hw$BeW6yU-}Q03H}TJcZb z2}pzC>05)oJY9J9FFn!!QRNhg;zwd28}_J+Qxo`28FuoI#oSz>yb+iGxl!xbupB*Wd+)*MvEf?$!5@w4L^03HKn6 z@kN}-M))g5Am)P^*Rj_bmg_c6fBh~{4 zxqmr3(9m1!CI&vQ)z5n+2uFseTn`~q#>*Txl3KKrw7AZHB0&_fq zrd_@Mn_@jzb$sB~+wlT?ccq>&NNf(iY8-5P$`o&+3^+lntrFApW_WHB7DjkhuK$Mj z?Clb`4Hur^yE9xBF*^i6&?!kMPKDOjQNE|Z*bRkOAB1E9uvVeZjZ1s>V7H-tT9~cW z6qoeS(c@ed^4v)$zVPyh8S77k7A~eDF-JG2(>dmwKDRF6SuyE;LTp{RKU;?BSk>%C z92io_zsx@7R0xzO6;Istz6|9CSlws1uBiXNzecD5+Ok_}@pXe2tjFnQ`NSe15?WJ@ z_Rv|Wm)`oDa8<0qaXa!2E9XGkztKfl?}Y*L;h?klI(!J<}oXrpFL(+UH8Pzwu$MZ4&JnqLqtCmp|bV+(puwd<2LN#1RcVl zXcsOc>w&jzF4o8hY|Hl>a}fqLd?BRYT}~8$>=3M`XYms)j)*Xx7p}nirxm1zf5vGH z=5b>CZ{ZJhHQmDjJ3Imt;9C+2*wk>j;C>u;C?4!(HIIH!!)ja;3J`Fs;UYFKj-HFg>mq z;^AT@P~_6duy;cls>H(%eaKjY8t!n#%9Su1dUbHJrar}|(_lbXUWFI;PtMkGN$a=7 z;jeE!O|EuD2keR0stsBCU|J5~NnV*70n-pDm7hMz^DG92Thh)5z_ku-&3);HSN}MH z^DUFx+hGKc$Hw>FM=m(}s5Kfo!%xUBMQN^&EcS-csDN9i`SOvy+ANt{*u0tmcTJ`RbWOpobSqwoCNc_bB}@$AFJQcsU;BCbN)Z{Q;t>CiNbz0J+BjqF zF{$?<#*5Wu-lzg(Yd7Molk%$;n>?R_??bOU6ut(?O5ID?MEU_Ldvdfje{$7~Ah zFV(`zC2=<@m(xXmrc`y=sKFx|J)56jwi-U5ILpiptvSEE%~QVVlVf_Ea#BNK5e`D6 zwbxN6Y!<_K9Vv%s&ee+qUEAkC& z4~NW9UGnxrX?Vm!ylClw=uD6#PUNKRr+E(Qe;0EswG`_>iP?Nl089i+l&#Z}F%Lkh zO#QdgcKt1GLfI@i?0El}8*EPy{SHg@-4DYM;MuvZ@zGa0gZUD!8rOy$Nt3!$JBPPQ zoTS^lO_4>uP>tVqq4nk3F!wr6>IV`*c3!^%fANd}_7c+IIyq#{sq;u}qLU5Df@{pl zM!ht0o0!_x&pyma?77d#dHHyp#6rM^xc2P`Fi28zF5PF{Hf)9$nM;pc{11V|r&|fxdYc;`E+#<`g$Y4@jAW zkIER0EzXz^_tr&Xw~0XrWZ=C>myPTB3D+3n#mY8GwI%So-X0>1o%ry{7Owe@s5=$@ zp9G*zh=G7QVFCyM;?aaiphP4-2WZ0v^Iq;7B**d=W>ePAQ4WvoycY&gHUy1a0r1eZ zC=Xo7BT>xYFt6RS9qR>@ijOoiQTKP^jB+Xc2HdyK466xB+3`J?C&a+n9%BKMJSDmD zG}+=MGyH7=T4|Ba&X{!UA>Y&j;rXn@+&JSDS#T6COz_2l_$PY8GHH|+cyEWOG-$majmv%$QV$y`ukPFXf%C*uMT<{8*bvd}YZN5xDg9^H z9M6;Ay=QJr?l1JA^Q1u=7M?jM(%BJ9uEd&Plt&9b55iXXR<{3aaEDMyO_+vhw29?+ zc!p6*aOU(Je$~-o7lTbL&ns$|kTKTCpTXt5!nx}=vepR4nW6prBx<@PzP{GoomEL7 ziwZ|eS=8N4_K?Bj^2c72+0E26bkdU&cm{vse6VkgpM7RLw!Kgyo)$Kh<5~D@dkH<_ zCky7L=w0VfY~Qk-aRFRprj2$5CQG}Z*qyOJ*vHxDb%Cd*YzkpcsWSSjIP`V5p8BiQ zc<*q2LAy;ZN{`H{I_SD|LH5GvYrWDzx7>4wBrDQY`R8F4wp^V~%5s-paiUg&JnRLb z<%)q?7y;|>vLx(z8epdAVxx~$ayp6vYDB~0KKp=R=_34V&ocWyku8`2`eo2BIWNF$fqKsVw=vlH)Sc2; zK{CDL4BK8M$M1YxRWFLRa&a9lC;{js$O4M;`m+iN%4-fP{x~AH^e0j9vnt^y?|`mj z(*8rSyE(?yhJkVbod{>h)Qbx^3`7%)tYwpe0oIdZkv}0`Fx)r3lc+;e91HB z==DZ`Tz$kUjcEL8AXUWibot$v6m3&^OP_Xig#5*-z%uaqO(_5<_hM4T<%)$NttJ38 z&@djuaW^Li7QDW&GSMNw6LS5eCBf!_a8G+OpbP#5q`-UiFcc^R`-4vz=iaC5Lez^{ z>r!O&G1MjAK2d1|e$c4s(y0u7$qSSPfO%Mo_#Uz_&-vUdkX}kX=)mEGpWE+)AC#(x zZ@l8$a>M)?Sc3OhlR9Md4=w}SeRt%o=r?>)jUU*>obP`g&c0j+6v@m^0G&)M|5vU& z+wM!q=FZHw4%>GX-yeD|?9;cNo{l@9q4p?rp33LVgF>&> z5RIB%Imu<}CkReudzQ2OCAB0JencPUT+~NpsX6Tdj@TXAemSFOSN-Gek0FD6lUZqX zmA9us0VVY80X)1GEA)w6h(wKcg0ot)Z>F;9gLHXA_HrJE+}8_ZWp32$$=KT2z@ zl-O5<;3~a8D5q;O5-Ob{dLwk1XA;>hd*a(ddeY`OYUSB}v*;Sq7vKFZr%|FSrbVt1 z*dgJcJS-Mi-7C$&;XGN8soLP>)=F-Ez3kH&l{jX| zPjS_Vs?m&%TfmB!nLwxHmc_ zk8Kq)a=dg%OlEaqM?%wSm`$LX4}q=1L~wQRMdZi~^uX`NPem`CMbmOimTGnUrw7xR zEYc|(Z&n`^V!|UuTJ3fiN`psDb6D7w^gHPyU^mn=r%#uOsB~c2D+Q6x8+HnLMZ|{D z(`pzn8q4`|(>p}8{AM-9u?+zpda+w*EFYw<)TuyzD^uBv5&XO^}AH|fS*%T`xN2Maz+?MxXxY1m-No+Zeh0T3e++CDyF9hG+5@2 zMBUAuUkQ?RZNhF~d&%T($mM#2j%>FHv-OM>5F4Y(IGD}k3;E20=qr#z+OTuvo&&5pqZpf3!vKWA2 zBHnQEx^(aLqQ~99M-zf;zaL**P^O%tk_3!v6=qQ#=+YknZNSU4 z(Q%^3mB8TGa1hooXMM!BL&c4p!T$7rD(bS+2S7zV_>wr!b1$I;W#W2+mjQ}&3dp5E zM@3m<5 z{iL8=YsR`ChZ=4&rj2X{02IS1U@Z`BEprF|pH5?XuhXo0Y`<}*nb{G{`>4w~5YnHm z#bWk&>R;pyV#FtUYa3zK+`ra(Apu|eR=;HHI=l8T38yV_$z1KPA+h=}j<+tSHz@a| z&ANY*B^^Pq0Y!m+;DsG0Z_%fS;y+9($<3AR*}p)!(!<@S-KGze(Fx5?$xlBl-+|Wo zTI;pv;_&%!yq{M~yv;r>TxF)9k3M0FN>vTPw@-+FlyJ3^dp95DyCb@p@oNb~V(pc* zzJ4%eqzWZ8?>Z8{L{G{Z=&-2OD6w@vv(wAL6!q*A=B+*XOvz-N_}JOOP$Z7oeX`ST zR;qYU;K2gMd{=NezV7S~e3SM3bETpPSw*#<(mV}DtFSV3<+HDB;zR7BXWH0eU zV8^Rmi$cSC8d2I4+093A-R5HY$+irZ#>Q!irVPd}jB|Pr{X1h(8LPOHoqx^;4O>F? zar&@bqNHa^mm30eyp~}4eha#&_hc)!5s-9OcJzHAXLEAy{XR_tLMrwCd~kncHKR-SnfUzbQ^EC z-Y4bTU|cH~{e=b1n|tO6`y*9f{1Ccz2z+ur7DT0JvqEJdu#cL-g>@0=gRY4SifL7GD?pLfKwZ zv}L=Ku_WaR@VO`!hWb7q7^cVSsGY`{b^ob?e3hFQjq0ihSzt1nwHHElNM9sVp<{WY@ z|Bjm22le9;ET~}!`_mdS*_F5MrRj~bfi(3nH9dQXy=Jb{#CNV{)Ihw{=6(>&67`Lh z*K(P5t>vbk6?a=F;`PqJdAg*kvFYOLx`i43EBxVET*O_@`512wuLSMl)U|N2YWfN6 z@Gb&tOtg0D^*J==?Ve4W_pcS|Zs@e0JdPi{*~eSywFvUr?YbLPGhiafByY-KSSQaj zyUNlDQ6Ya%pjh3?6JCDG^xds}^o?1fuZ&c469U-M z2PR=#tK?M{B}FsQHKmEg@!;|Zql5-SJv7--`B@^)hWJI^;|hsTm+hZsOCP4)uKSSn z)g?Lf z&p{b~5%qpQ*GQ5oVdJbpv;owN%y-C0#&w`+gZb-RgvdJ_e44wbgR#WI#=@ks-eZ(q z__+$kLma%SnHw+rHO1aDd=q}wvx_}G2))_A2%Jo%_4qZio{Df~U8j{hExp1lXI&BB z+y}@{T*xB6xnIHV1As_-C}Fz=4mZ#GchALaD|=5xmVVu$;3pdbJC;Ct^P*#H5t zD4f&ZbHW6$SJ;r=P~RkM$jrB1RGQAni2c3fmaZ3h=xP|Y?=lkbh2C{VImbfl&nv5{ zp9qdArT^1o%kTBre;gh-_oGd6lJ%^WnZh`z@WFS^zc**~e^3hXMo* zb4C=AY{ckO-8g;PG~n@%!!!pKjBqd+jG5BcYria{2|#(^yxFor1w8 z*E5y=808!|ZAtd;Z{DDBSPDf>H}4eW3$A3&TG{{;=XXU}(uhp)$c336*U|?yN9{8E z_Ul2r+Kj>(oZqu)+zO~lnOr(G)Yqg)l4V-9d8_(K+rc}Lfpt^D7(lD=;O%K5{xqdd zk-9Oi@?P{eRpj;%wwalz{_rU7snI(pRZr#v&fKd+-F@)V35HJMnoWqJ`A-E3E6^f~ zcA}@r_xVafq;wq7?^8ee-IaY@cjrqS{7U`S(-b|^0Os3wk>?Vf*>U4LM;m>>i5Yv- z@4&@6?<%r{I>BiVpE$or*Y-*<(^gm1dqtJ+HF%_6>1ukqt*!D?HXLP+3pZq1d?Ul= z?CJUUyp*rdzcRu_D{x83sYku}E1qrtHzO`5Nz)R=_4%QMctW3NCp*xJYEd54%3SX3 zvn~w$Zjff3Kxc!*;I%N~$%Xc|70@(z?JIqw&iUa;L45yU&wtbSP(BHpU1I%?8}G?x z?r}P^!%e3lva9*)7CtJo`l+u77~J; zLhxOm=g%uKq0D(3_Y9@=2WoFkTM0luMc87aSyIQ^o*D->Hk3{FHjuWvp71uO!e7(! zs-DfrToXn_N)%g2rMBRqBRT-R)BVZ?8@r9v>f^iP5*M8`Q6Y_?t|TZ3_22RwS$1VfJTyk|Vw zzva8$^d~}}e$qB`2p30*j_^H=ZO<(-v(my5+xnka6DoKw*1Uz5i`=($3e?kk^*%{{Vp|pOyB_Rok0_e^?^$A?L z`%h*5b`MXcx8}a}0m98_FlH0?cN?F$HG5)~E)4>8xbt1#feI^c08h?GeJnDrlW`{B zFX8bgzlP|NBQc5kQ7=GWT(ZOo8d%~WvfS85uKfmu2%lJ=ZCLsszs>Y1rV`yoKKEf{ zQ1&MX*LBgwyX9Kaej=xiDomV2JMTU2;1IFKRzm1^MOp5Q*OHK5D<-2ytK_XC)XJ1cKh1Rup_S#d&-MFsLwUn{I(R}1yx`PPIQq{iA>#m%Yv zH~M7pNKb6ZT;0E>FTDqc__=571oSH4Wtc>tH=$b(oDt4uZp}*M8x}vF^lV3a zTbcV~56Hy|?+BOGqh!`&tel4OBhCXZ!k27-L%8Zm`Plu`T$$h-cGY!(b~q7zvrl8} zS1Eg;Q)tiNiaS(ukt9Zpgzkm-6h2E+M{u{6JUw(!Ma1v4U zGA)^MTrc{Pu_w}jIn~PR8#n>}6)%d=XKt8iZgXCHxaJk=((baQ8blcBo}s%NX#oN0kcOdK8tG(cJVorhUzo_%TsgRP~aShtO8_f$8@R zT$xlTxTtHiZA*1~o`V5;w#F9W9bjFu8T?{1|Nq*CiTk#JQLf4K{$aiWW*)=ECmg)b z{vaSqn!C?j7JdrGvX$z&0>8Fyq-#n^8~FMk8p6z*k1_k1@f`qxyksoEm)}WU;GA~g z09ux;!_la*Y2p^FMqtVz>H?NWvW~LA(g@&5xX&K~3+K;Hwt>JK$MwqJgc1TGYyTC( zZ|e7j@bW{zf%|{X3i^7)q5~DL+%{W5juIj$yF+NmfCZ;+>aeaxHkA|IPRa0~ z!wXFo^?2^|7!JtgEYo0OIIMdj)KG`$nWoWJGAiJgbr6aRXTxuOh;-n{9W7DVO&()_SfIbG52}jh3%8 zYQJZ+h9&E~(<=SL7jXrIbX?lqSE(&aJh>=a^}&4r5I3;GG<>TVKgWfY`2`I3r5ny| zo|S_RM&-gn#~!c!wa-K0$_sv{m1Go$6Dn+Y>bc93$A0_Jnn+X!V>plV(R^Z*aOeF6 z_hugqZt8fedeFRR?$;X8@7j2O# zf97r0F=hRP6sWCov)44p6m9Ks2Cm!OTKWcI2S^E^N1OYY^C*`#cIvSP>x3d{^i*51 zBVrKEPu-y0=xdqS#%kfVA3MZ(-i$vb8|KeE9`MEL|_iYgW2<7(1Li^B7EkSX0wRhnO|LoWxRPS zdf_Wt`*MCIzr2K}@y7nac}&@P2$jf;WV4vjxXJFIiv#U7JH0ph3%fvKhf@jrw{XH?+9sT<#4j5s>V~EZ zJnodef5MG_!z0JENgVYT&~fNTxyo)+POt`sxYK%jNhpt6&SIPokY{wur(W5q<}+Q) zMoDpTO%XlHM)v(ZVrtHtMc)Lys3onNM`7%ILh#EINaQckK`AUBivt=Se-$q&Oo#bX z@%6`)Q%>MGB6PZft1pCZULu>ks(zlkFze!df>y#&UV*QIy9Vo_l0vJ>83Go1Um;^lG&bHK}&23%&fDumi*FyZbs{5H9%t+vY$>fQ53< z8$_^!ejVT~X^1aCGM%M0Sj;& z$v}JA3E6Jj{!yMnm-s?EQKkwzoVDXc$}F>ACygsVqZm_@RsH*IT_hcAU-1+8!90oc ze>on~pS2_PgxFzQ1#IYxYzF&k4R!~>-9o>`%M!W^KV>uxzuo!mOBUD6tja&88MFMD zu(Iam-8Wo}#IJVf2Gk3rdLJoSld2IoPRI$DuE@v%`{wyKFSCt|$Co_nf_Ut{dM)34 z$F$qk^Nl5|<+^{m4+P;R>eBZ{*~OW6s!;AflfL}D?bm*@ohSKJ!^cQZ=1sKMgw|g6 zjb5#lMn2Pqok^&H4cC?^zyZ&ZZeHLyHxK4=a>x`;mB2BHIX{zh1md`M^<{dS2oW49 zw>dTbHY@jsOxXJw*d&yu(cs#gO)1a^T`a!_YXW)YYWcuZ9{wmrY+kB0+mxKuFr+a* z3E4#Dw@IE>Vi0Gh#aJ$W(-`xKJjq9KCzf^el~pkTf2M*a=1VScl*-ga**kfX?LsN$ zsOUVSd8h-+*~vf*Dy8gZhZ<(eUp5Z=)1j`a{mme&KQq*lT#h+f^P2c3Gtt^6k-X_B zA$m-X=y@zB2b4=7gS?3s{3cxh7?x&E)!pmL^t~qc*+}&~at0bO*UKmUUM8Br2E{lX zYtmOcwDU;tg*qXxL`fWv>dxIhdeFx=6gbQt4J#BXmtX?$^qt3_aw}Uq)AoZPMbEKyUOHAP<~w@aZFK z0sM&jAMrnQ?_eP z&iu=oQ%6K67UMp_;$u4a;BKULkM>>qNPS)Ae zvQoGLT2mro8*%PLQ{dixftBejxf#+t>6SSaJg7^a(hU7WN!XWI44$KOx+u1n^&bL_ z#}&jZpeF&QBCpHml{_VyK<`P=^8TL4$5Ryp9uv=28m35|h2nE-{hukS; zwzV78?sXKvjADInMv4Ag#5oFVadIx1AF=6h=ZJiM*rfIJW7$IXlA{Gfe@11ObTJo)>DK2G-xSj}MFV4&Hx#ahQ#V?;0elO!X zr%C&6v;g~_&xO92(emKVQj$<9p4MFAY zL$?~O(lVL^6r&7qhyN{#DyFXSl~Pw03EED`-JLuv4gc`Fb1%d;6{%}HH&Vy>?}rYr zz=FEIE%|tTOBzmv+wCx*oBr zCX1wyn`duk6DX0JHy!vkdg;^05@HSv3&qQKA$`AHA6bnVA?aFTGI^eb{cwGptIv|F zZ>lzJVBYLyk_Gs!erG6_g<=|RS*sM|<2q~oF#P@KMyZ6cqP*$i>7$45^YHC+gX+^8 zWNn})V7HvL$Gkh#tV6Vmofh#mPZYC0-&s)m5qPYm^Hl!mB>Bq;uyQp+8G{@P%}|*r zDyrPwSJat~h+c7FORfG!~+}?o#9PcG3gPRJfU&Ceh;|EBNaZ>om^|rs1PfNXJyxr(X#d zuWz~{vhJis&go&WY4e~B{j8Z8n{iN8Rsv;0opFe<1NhCjdat}>&H!xm@0J}bm+!28 zc$B-#{Wnd=0q8aq_WN!bbx@!7FqLvSApKJFf)>_~YJBW7*8$yAc(7ha;eEoZs9jeBUd9Z3p&H}$>0?XkQ7*C!q`fay8Dkc$+-1tD=g zyFxFXzEW~(7l3^yt_8aQIvD#ns0Xo<4Lic)ysU@yHBfsohHY?fH5$5nTPP{i7B2Fo z#X=B#eB#YgbXT1>C^yD0%4rtm^Bx;B8;Xtu5uI}f03Z!f9^oN zkpTKZAJ2W`h8UfNm|%Gc9R~s$)ZIaZgS{gbp6IAUb0_3|0VqAa&&65kc?u`~{ILX5 zD0F2P;+nuU%H3&PzT|sOPjQI}o68lL2U5yh<~v$JTqPnlkWx6wzRIb_)ZnSV z^2%)oX=(op*!cKC&fQsX+{pI-4S^&74S_HJG&yGCU6=wDmz#D4Xr%yRh{$U!N_yqZ z!(~ltqRacucqkE~li?A;A--azk)I*1;`y(pdzGl%C5MYXhVBn2#Zh??Xxu^*oBtd5 zT*912T``xQi2;9;fvyqQkiTh=xF7JAith#U%z3wM*QZxR(~|G_&FfkR$}2y1Q=)$; zm{X8ezQPL3i0bPSjZtqnY@rVfnmRk@I*lSv`%#_6Rq8WU6RGQbdr zyfV-e{DFBajCEY5u(h|Ll}uZ;KrcsggxNAv#4~$5{UVxFlnl=<9zz2kGoaF!w$0nf zZR8`5sUju~=hqt0K56l@eSQ%!E3{gq|0adT>?aJ)_p7?KVi2*r^c3&u3+VR3vQ70u zXQoGg#_uOgjkswL+M zxoybH{;~j|!k+X~Jfn+VTog?J=4}}s#7~X* z9qSnELXNCRr2tV-d#EYTI!R*A^ZI4>xfb+;lj-5If}E1z-+AJN*P@u36%4<>HmXgW znxF~1AgBSJ%5$g>f{Bd~&$C7~)|PT;9CjAhO@g#(zjmBTP*EPWT?Aq4j^y2&ix0Q(akqRy z>!P_veWIP)oIEEbJHT0J1=KrDaEA4D8u~&-1np#eB${xow0Uqg{~>mZ*1#|w|DVX~ zXg{zk)oDl^->`90%W7;R5IfnEwEO9TI$qW&qsJvu`&&zW=&ATgM`iN>#n!WGv<|T+ z=QzxDHv1G8!Ku0mHj9r55}jusjthLYCiJ1VWj~)YyV_TiO6;!D<=BLa2a&Um6G5m+ z?x%X-Z}3E!^a^3Ppi#s()a6VUB%(u)v+t5`ycP8-4cc6WpDhPEKwGj{b2*+7rT znI2RYyBNZI%q#@Vs@Qv`Z+A|4bBYp_RNlssEtWX@8Gq}@9^9%cq{bu9xC71(SRy&R z#3(_-#F27rc@(#2()6ATpiZCu_HP!*rvK;H_^;f>%{yD%caW)oWKK=l%Z25xKO15% z%k(>c>HZg1z)*Z2zhDn^v?&bCL?5Ji9?)>K@BWXt9SqkNgF7uPBW5&28LXu-HL}^RXP^g>Zqi2)j%We4$6H- zWxak*b8e-IaQ3szr~OfSl$!(H;Yxdm01TTq-?Ffr>~4nbs9YS(KwFZD!+-pbXlP{` z%c$6#;r!;E6iJ*lr0~t-nGCwka27527oudH zY#GkEiQ_)DTX+~>FH(P<8TCGyWTUo}9I1ZdX--6g34i$~xzT9zfRRA^*Q%)MRyDaav1L8wR$0EqjTomU`u{j;1rjh(;VKl9MD9NFyoL<7X-O|@Q# zwO=&Dlhaj6v?afXSuZ>-=KR6M;-Z8oz!V;l#@_bmP-6eo$RiB5U`y)ak8+pM4PN@I zh#-zr`FkE_5Q*TyvOkiG{_$ZHyAtlRW|sZ?jWK!$&Nj1H*SpE9)HaWGo7YAmAx)vy zZLG3hkIo74(|n%p*LWJqm&9|2@sB-aXkz^*`opI{5r{buhzO=)X$6tg^}tJSlL9meMW9>uLb z@%vrpMWSwoDO_}?s7pm{rE$PK_aRiYg-+HgGv7Wbzx-CWCd`$iQcQ%9jqIANk5fB& z@71Os4v*N+50^$48Pp3N(2D?2dd9EL10q9;q?T&E$W!=runtAXfo7&a%(V)lLxMW> z)IA>yDf};pwEjewI|LIQ&QiJnP-pTO8tZP+W8D_ z?kv$oQ#KmC%rQ)&6|!HkLB^2e8f~{8&k2gRb(p8h+@(b2Wq&o0u-ny!4RD+VSkmsp zEV*{Foi(y^XOZj^pcu`U4Dl+pet#A@Bdj-a_*Og z_%9|O!vXal1L!#Kw*#L5Cj8!o0xTR4;L2Z)?&o@9fUx3f!@_@H0D#$8O@9qN0fDbM zpYVTEx`^U6IX_SlF@Sb8rL^+z3w` zOjfGpsLZ*$KL~o3FDs&)*Km-_fjA^SbWg~}`Kglv!%a*~Enr>Pc3~?#5VMFcCh!s% z`xu!v^wtv1{aC8@xCaBgHX^rh{DX++^>xswp}AwrLnL~sqP!livDLX8BIGY%kCB!S z9AjjYO8&!}V$T$FI@{rPx8|Y@V&=G-Rcjy)4w6DXTS4(CX zQ_9*K{*5pG5Q;Qo-Zb696W@SW)NVjsm(*1b>POqy1WNV6ju5K5i*{}NS;uBP3XP4Z zvc)}i+T*wS>DPUBIL=6XJMn1ORGH>v_?XzBtJp@VZrURab&O@R@PEs?S?^8f+a*BA z7}AAs9^9S5W1rs^yE&f&qD=)50pBK0A-4?;@%PP8jpW1BB|i4=MP!Jg~Ob z)fHdjJuxAWSpJS*W$>c&0Ct%K)^D`R#PTVp3%Cn4FQ4H}4Zxt7213>6aIkeSz3)2t~kpY}D z)nt2e9EO^T{+2~SXh=R-hIb|?gm;&H63+!H9KAUk`InvOV;PZntSNf8qxtgeRtT-nuxdWjaR~|9ohR0Y_m#W+C z2N7$+oC2S#eI!`CuG`Z{6mCK(5jGlu2O{W&XmB4g^-*qm{Mh-NA4U9(AE{W9%q)1- zu6pBQ1+WTu+1!e+e{yf53sQM=L+A~u(t@QtE65;CUtZTUqX_!GyM ze~|x4gRU+2m8@@fDhctra^^m$!vp&@S?v4-?^_u8bf9L1t1Xmz3?B8TU13}kNZnEC z26sBTdJN(&^Y9(40|Rl;Uj_i>@IA3tzjxUv;{pB}g0BFVjupk70~9=E2vcE()qTk$ zQ8n}QrIoI{-)}hlx8Lycz5i@dYgS#kLO(H8Y(sh01%|8!HzAW@7s+6pL5IhTNB=zB ze;oc6SkUWaRktX{oHZpFZn-So={)r(Ey zcWmQ|m3{i87ovpUElp-BE#Sr8A507WXa_e!N6@O;18W6K>~r5g=sa9=y9Dk&K269nSGcp7HgEKqdpZ>y zKcz==>8NsI^rY8=Ia=lwQU5uIqmw7q-4|>3*>K1e3xml?P5=piqhJ2jYvjri+1_!J zZAHyKv)E~EAHP!;&qx3r14zpEYmu-ylBZf?()rC zX53Ae8^t`o9a_kggM3HPB(zl*H3yP`Hzk>@@`4>$ZqCyR+a_LoLmq^Qt{!jy)c(*8YkO_Plt-M|7-JO^HIpl+4 zX&-B<*3GA%@|T@tp5ZJiWK94xD!Mm&*cm;Di5D5BakZbI=Gl-W!5?@RKD@vDr%eL` znz<1cj{~nayF#iP;vnyqRINkQ@b}|~##h4K;m4T-r-jT;5Ctxp&gaAP%0Ki=#bc0# z$TaVXIH(2xm$El=zs%^K(EDY1kKkL35Jj+R_?&emf+Ov|%S&AMLyf+`SqbNhCp*F> z0X;7z@YkN4ti3&um^H58v+O*=r(?wT5j+86bOv-FHjdsf!JsUvU7Gq4=nVD#6_6c( zxe_~xZJ1rr(5;%`2J;!?PPc^E!ZW_z=Bc3WB=*47U35K3{AXI*?gsfjRuE0f=wa{} z%fmLM;bWe4+BdH8%P}`8$!{QEK2<1MaBz7eSc-C>c13I6U7VoLA#`VoSC4r{k6T+N z{?1&>e@@C5uuaSCz574cVBUWqnqFSH=)F9*9HEkG4J3kK0gDf>((?x?j+g@WpW2z5 zUj0NUfC4*N<<34u>lIs%8hfI^MR>O$%jmDyYjmv#c z7X-|;o`HaPXndbc^k1z5xOay2|H`Oq%6%bovsuoZv03H$i2VTZ_Q!Wa3qMvpvH*jl zRLU7r$=B`-1V!d7q4no(l0fwlgb_J1KRzC+xCVrHFV;J@-lJ})qlBmwsA=YI{}y6{ zYmU));7Z0gRH$Pjwq9&$U!U4!TU%%r@YeCy*Qp(M7jB%^+r(K5C(9%;pH zRe90p6H^~0Q!>5luBYJa&e4*6iO^y@YcERmf)@zW!?09bH$BV;6U2Pok zS_?*boMm;eAGl3V4?OGkco4Nl_Z0OtyvAMuaw_WgFm2?4Rmyua?stYUo2xFrRxYwh zB@Z3^cbB~g4XtH8pG-~WFjyE@*QYk}M4T1gJomJv^4q0wQs7n_{WMAE#M*D49jFrr z;(L&`rvnea{c}8RG^a|XXel#<;ulag)nfJRtZ24v>|ZSE;SX&9&Wz|OX>U2JD&_yB zrBN`Sk&=v04s7f{`g&_}Fy%^#ZC>KH3j$#(J!h^NSe(+{`lUl+6(v!<(zX}le&?c$ zCN2jV^e*4w7o>w@FryaA=MEHEQ%HzEY12M0j5she2;LH7RS*QVX4G*zQRYL9?`m# zE4u&#l9{DHZ9W)cF3rzje}H) zg=Je`I1eHCYpNAi*;h3BMsIsuzb{)4dBinh-Y7MOyDFyDxVbXGqax|8kw9OGwmR9C zFgA0%!y6U|@b!~6(iNcnHm8|^znv^)e8`HN&e$nQW)@^jAy_On)x^mDGIxYJ+*fs1eq z^YrU>CVic5Zcar^OhsURRFnpFIbtrQq!--(_3zv{NSd1aY!r;ed!^gD&?r_C?iwmaEt%ah`RH_dg-;Jbw8X1buYj#6caZS$tREK53dg zy#AxUS&O??@g%T|@e|DT&tsk6{se|h&*Pb$DQC3}0>lF4&QcDIQDP#fjGB?RbEze1 z8AblS9M_fg`MA;?qZxjK*DpIYTt%KEcef9`@`q}GnZj+F-|;Dx;@*pGyJlkOb{riotz5aRkD-w)xG~T-bhKhfKuL7R zGclre(vP7uzBPOA1`jJ?eqtrsx0ql_nxOT-PRRL{&wHmie)^o`X9ZTj18(y@?It<} z$zl<^Q=fHj`lkvd&Kx+`H$bIp{#ByTaxkrw^{ z>pA9r#W>bn-TU(G9?v1K5@C6QSM1UK+vSA^YNbT!O<>1!R7|8w0$;-ycA4!!kllVv&;Q~l6jFbr zFBU{YLPekN;Q>M&&CBP?%H|p$!)kThCC}ztWk^7hC_lCIFF^?(=B@guR z6JI3aQVmBo05$gZm6S!rq&)2Di@a>@q12FN^k*^{6dj5`??EE`8JaNt;>NC~W+0hm z>%|B)FT+>He;KYCqnB-$lXb=^LN5ATwZ_~b`%B!nipdK}^sfO}ra?Srs0ZV;=hVop zHc9{C+tjmqMrV_i8-kC6bWL%N2+P2O9#?Pnj$17p@H@wk9Moq&-<3xMKM<=`Xs3hy z?maBau+S`_ozn zu!%lE)oVO>+4%XC5NhGB29b;#SX;#C!z#3Y0_n<-d5VzpE=PI2K@ViE7QwCUg8o0U z<>5WqGBWmybJFHB&kR7}n!W%)|5SdU>!Rz-`Y&e1zVtEUt`BPdsph>7Cdarp`X;2@ zezyLhd!EFXW^?FlFEI>D{b3&fx!jM6ZvoDQ;OzfMTcCXPV7~&K$<=t5+d$#06uFOu zXqMSM$N=2WYfs-x3Ovs3GJs+#squV&MJ!u0lfL+EH%4`2`P#PB7-z21^r5UwO5<}8 zJ2FNoU;QJ;$LeQt++;70sZ4Q9sopU@KppUkYVbUgdXJNbKj+axr5HIqvtl}QD1rl1~k!$)C$qSO2uVwg#WP$qeC! zHJUW9erJ@Opr+X1qBy3Ts(jQ6_K7h(*48z!;kWbew&C&heLx{fMqWkxeCBz+!r#w)YbL_2 zAmMT`G+GV+Edbcsm-b_sR-X57^V)}aCnz+APA~6_o|x$+e?S`*0oV#mLa`mM?=-E^ zMg&}prXvvG*d!M5hLxJl}u5D*8^y`3;CLRb~b_pwLaLiY)gP{kN&`u~Dh^ zuXz%O?gMYLk{$tOSp*)_&44NWNe#7$_%)JN!|0KTQT%Ccg{(On(yup&*{QKUy|PrW z*F`n*)0-C8T@oa_X)D7;EUX$HaOfnFfKS&jVQxXtM;%Hv%9E1;h9dPAAiMjo*k;PR zWNl1uCH0qU2{%;5>FVL-3a^EfIk20D;qS8)m&9|4yhIN(^7gKNz&i5Po8KQ8WD}QO zJ9P>?_>t)Ob=`jyIwR-W;? z;$t-GDzHzizfN8C2l^pt2N;iT6l?FVR~M#d68)T1D+q2$HNK$AcW_dA zX&|ejuR-I%O*lQZh;PJKV?*Xnx&uhNIAqS)WA-0;%}VqMM7@R}ZUy`A{;zJi-`B0^ z8Q=yx;P;vF#S#JLIKr&|O?g^Z5lleCG~*2bb?d>%(d04h{1~?>J##vCA{xtGe0lq& z*#E$g?`XhLa7G4L8UG_gXztstLjdgK^=*>7pFa(M-s2$_zg*cJpU$Sg#&}dbH0odf zol)TdYX}xdR@#iXe{mYt)|)t)(KfL85wm_)3WxuvWUWPHqiFN3@aY~MK|NhqBZX5N z7aL>IPoG$vyb^#KL1Qy~fu|HoesH%V^F*U=02}d8n{)9%95Ysx6m6VuF4<5JcRz_A zfoNG@jFguRhUpJ_zer`pr=Es!X*#!{>nGm9F&1#v)3B!`+BA%oIMTAwqZ!d26hW$6 z6P(manwGgl8G3-Tv61kclV9L?98&fuU(x2#%-wnlZ0dpFR=1f--PQCdh0_Hgqtg5@ z#*u9TLxhPs5dx@Y+^f2iJk2+b&9Un=gmUsN1hwuQVJ>l&zdd3FSq6^0jnOD z`YSeYp99KlzQ!+eZEX6Y<&x{FLW-~aHS)O&2m~{AH`N|>LA2uCWmxHViLZ#sg*~e>uuwC%)vingUM>NjIk z6~k_QvYQM^^3s9`sO3Tx5GaRMC1W3AdsKFdqaFDLKY!#g^A|INohL2yu{^#x%JZz9 zdLPkOGN2H^-GKWG*iO-Zvz(D##vWvL0_{dUoJ$)uh>fon5L0~Y_m{~bD?u#oD`nWO z6>DQJXRP((t!mqI755zAUD-1{f)GvS4WUc5em=oF)kTtC>0pcfZ6pB+WHmQgi zqs;nBjmJ>GOCdw+)u^0(X6JMcf*E!Ynx}5JxI%<7M|~X{*BJM^ zR3P9NYfhn+1BCp}0dvERAJfO^N}DX1a!BfttB-+t`{I@pk&~;uM4$}l*TcE$out?g zBx$D$0cl?UL{UOpVG467W)A^iy_?(z1Rl)xxW{!LA#bRD5G=jUT}phv{L6QlZxv^SI?b{*#4hUZW3!&{J%h)%o)=hl+h)774yX`SVM-m?@oggTu0%z2(;w0i%V z%$1Bk1-7I5YX1%GUdv?_=EBO*?ZeyD(d*DH?AGAAJ6YC<;iO2R+!*U^`uMsCzG#s% z2ZasMBsiPMTHwI#(Yr+2bl-pX8o@KM*Q>nM}H09!e5__AhAv zzs;dZLn2W%w%YMysm~QpBEfqHF+Tt)9oqxY%&Be=G9<4)nSB14+MabODDB317gh2q zm)3!LER!!2s6Q_|ah=EI{x4Afzep@65viDLH?GAa8#650kpI>Y z&VDVFTSipBFpb`tS5|S|LVf06=}5R)!%&}%z{x%F#;V9Lo}+Y&FJO+>ge27^btN26 z6Fs-u@r6~LkV00?RPZ>fGDcSM_A3?WO?E?+-8+r4r5LSReBs_$6Kv-8ym84Kgqz*? zag_Ls>$2~zhv~No4Ik&4SuNbeU=jK-=fSqh70x&O(!sjrZHbK{`l?g5bNsQm#9ORJ zn=}2&!_V{%D^VVa_4b~vnFmisvH6Z~Q(D@Sb(cwT!U+uh6OD5HUF~ObVoY&b>D{`u z_8WRc1kzq62(I(nV(<%^CvsW~NbJz@q zHtJe(#s8{(68N!Y41l$0nmb?&G0h!sX_(Y&-f#s3am|0u3$_>N6~kkRgw|rJE)Xz1 zVPy%d!XcMqP0(aSt!j!HM$Y!?{o0BCVlZHlb z#Drm+6tjbM(|*xknx-V`yLSkwr11xYt&Xt;__tpy2UVE+x__mjoX`IEA^FKzvW}t( zi*)(u)0iGRlAzzHz?>D~FcXS2gX%*5|5kN-3-WW_kS=z@PSHM9IR-V$&zW!S{jx)8*e?)kiwV~TK`Zl1v z#Qx3bdYI)QOO!u;- zX9?rdH*VrcC;5>~pmDo>9@*q*vg75Sqm#_=xh?hyM;k%`k2+O50Wlk1qa_M{-LA1V za92iAV5m5gbA{*HsmkM-yYcg)2VaSpxi}}d$sy7|xre2pcC;ZVJ>iFUZ-%KwPf0QT zu79FY@>+)iunSe065N+LjRCLNM1>xhe`U_@l{-k_8n#N`$e@uEIZ;|H4B7L*XGs?S z6fB(X`pABp$@iG`Y-JzhnXR-^N9p-2JkE$wTDLEuo0(4aBB$%FP7m+LYa1yBEaqgH zgGuCJm&ZXpiKYoeS)rj~-Bb?LT>A^imSW^-|RIWcnS!VGD-mc9X8? zpKj{Y$zZB0RlIB8B(P;fLnL2SCe6(S*dCqCQSU{1Rax6j{a$X_c^xZS>9<6_sKQUe zUan1N?(Xa7!(3^ePHXm+=ZoK%rOdP}}HVjkt#2B&z*BrWiRbV(i`c^U-`y1Q;S*@NZf zHLJ9iz1=ES1Pys&E=>!tIm)ns9Lq3r`Cul|-kYkeqFvV*|2%GPTK6dWcg=WKY<4_u zlTv7#Ed23BAkEBMkiv8?%(zC5^VNRd6M>!7m@mY4U+St*(&c^f)N6xRfi_k==MIoZ z-d8=w&!pWJde~aELOMB!!2)Zcr}LY{Z?3(A&(dC^vbTMKSNqRz?X=DUL1k^4qkgBE z*n*uN0o)9Wtx_|z&bqJt1rVMA2jO(?0o)fMvdJ1xm-W3Rp?^;yc0sBgpcd40Fy6DL z@$S>}kVw+v6TwQAYeXrv!0V&Nxks+W4+Fw4@eILZhH<#yv2(no$3jQ{dm8|JA~Ef) z#3<&d->VSpqdtUzKT1Nijk;U)}F$;Y40h8Sj910z*dc_P?!g0o{G?maW~Ia zY@xy4GKTc6J=n`7`81I9YK%ID&^(+tTnB&mop^2!BU1o8!6i|=gy?L#*-V7Y?eY#0 zVjW6sD=OhKXQpzCSx!ArzoRShD*U*gx@A3R%h2-OTRz0Y;#G{wb~_ z?ksM=YFvnGdg>5Q+wj;HIpeDcS;xQIIc`R$J2R-7=Y?la9A zoiAy(2^*>PE6oQsY>P2t@XiULSg<=q*62K6ZyJ*`6T7l*JeadY?D{(tiEqc)nc`C& z9})f|5_*xuc-Vv0`^slC^xt-}!&$uyXnS5=f6>_N#TgOLlFbPy6`LR3$;mCSW@SXY zdChZo15W++-v73ic~I-|O2eh=9{(z6G0cTnKj2cG^vtG)sVdpupA%q;9}A^a98 zYJ3&&SWiHr079AxA?M4GxbO7pJcyycK-@VfZq!gJ8Z?KT#TPfNZrK=Jwzr9z$1ctjJ zQT@$o;d}$1y0V945m&d!2(CxdsZ>ux%85OjFG>;XL$g8f|5*-*Ti=cG7ly5i1Hve_qCRF2Ax@Wr&QPb36NucSDnSJ$sz8mQ^S zt!smmLb;fV8RqKyUi0yjfZXWCq%;3 z#XxWo=ag&_{AvFoaZ~Et>2ywWB|-k5S%O#zgE}cQa)NX{VqMSeOKc_QOMKr&*uP%4 zr@c`+^2Byr7-?D~e@qw&TpsVck``vL@FfZwivp4w#Mo z%FiOc&^?HFppn8Bizd9;Oi#yOS87wUJuzG=O8;@9q?Z>1<7JPG5e}pZ4ApFE6X&7E zbdZ+)j3Jvw7VFvJjJg`@Q6UPmVo#=gDOT)JlZYj~nuhV??I!}m0Sz4qQ|YJW0aTsJ zvd*pxv&N`R7pUpZ%^v#niA+Vq-UAuZeGzj6@Q}9Bbo#z^!$E#XYWvX_5|<_49yl=L zAc^_$BbI+Hf22zRv8EM9+QnMwX<@4ikNfi(cTrAVkfU1BlWn^=R{(a1enNG7Q z9Th%rr!4OlzeTXbq7%Z`luky)Q~V28IC^r zvbp+pWM632wJnmmyZ7e>Y*LI%r`0B)|b_WDQUM7SId{gOH#)3MDI1a z)rA!`LG<2(=)L#Vd+)uMUG4jLe}4b{j&qjB*|mGt&b;p2duL|aor)<<(W&6_6HXHq zBuRWocI!N0n;B8BA3T$Mb)j-UiAT=i2MqJy;6i*kpA~F{9;e74NiAcD+EIXeXE)fk z>Il=*7|$bo`J{`)v549oust}n+>*GKRSZWh@ICWBBZD;Wu?tkrNhkI&ueLiBYJU-j z?1XH*l+AXO`@IfknNG0k2ro_Gd7w$7{`q`6NSR_?;o~AHk~p|IR0|G0pM7!Gq~(7% z%qg+tYTW>fv@6B;E}*uY{1EB%?H2OkF-x$i4c2pi*TPpd+IhFlAv&^=p^Di^a1o<= zxI~rs^5D?}h<Eeo&U)eE(L59EsayOfUe1Gw@+%6!&M?R@I@ z3BW*=5^t75xX_f)*#R`P--m|I1LPXxQEF%7)-xav5jr_HJ^g`YkHAvFol+O`Q}}-g z=Ls4$2zy;td*Y`|(?BH!bEAus?4}010_pfqw;n{&FdUhG`NB@Dm_r1QWxVx&!A4P# z@xi2+8ATkMSd1Sj!8Mk93c)p0bDaMF#y*hvjFsJ`1-ovYv_2keH^LzE7g*%{qecQK zW9frM2VKuE`*|pcVqlxo8x7AGFd@z_33nNp11wD8X-ES1z0{jPKaTJ0Piz7(8&-pe zo|G>E4N435oJ&Q4yC0X9vS&Om&*WVL#i&q04WQtnyYTPeIyTZ1 zhM0}fVf6rv5>w1W@4bOE-os7I@((yGNnUxsJC*K3uGAUBW)e2K<^5QG?*3MBIka}G zBOIN!lB53(-jR-@X2ji8;A1rm#p@maZu>yp5&r$Sxd$c#Y6gQ^Lv{yB7m>gP6==eo z6;1M#XAGUgmgmQcJ$x&pKSl@rENQR1xk7|uHu|_msdYYnGfNh%%_W-_y^1hXJi}C8X|B5Ina~LWO*KtGG%O zqLLweB8W#nK}gA{g2Cdw>}lo?mZ|X_HbN^rkbta5ht&QpET$tj6rd^T%-SPd82EeM zdoV#Zo#M7d-P%E$+Py=cpJBE^5K`w%4|(9J%B)YKAQKQ%vNVgqWqXlQyDy^5Hx!r5 zK7h-fQ-W^|EldU2%rK*#%{@uu-S;Nf|DtH}B$GXzV8mOz8_&O{`IKAnyW#DaHr^14 zgZLX@rEh>hpf&-}gM2@yPcIkc}LQ=mI3(TmrIZ)9xU7t^Tfk1@n~H3U-}k#8of zCAb`sp)pJX#p8n^Tw`SoM-+-4(;=mVxyY<6FUDS1VCtt_+j=YuDtSb}^wGri=Y8^Hw6{kk1Z$aDWi2qri7*N{>c~-MurnFfEvNrHSBtoG zkz}10203k33Nrt!m8ReG*cYJ)XFWHI@EEl9S#6}wN!r#kUf`eE5*7kFD;{zn*{(Tu z#J&11n2wY96=EiTqMfKHETTd;Xj*tP?hS8sYH-9t>QCQqc>5EeJ^NnTA!PCgl?eok zh?~yIsi%~!^E>TJyqo|GG%YioPCadKDV7wC^p?`52QrqsV?%_A6wbPkDi^=nGK}zs z#K|W+WJg{oeSf)m_H{hm_YdmR7j-YP9c)qJE28izZ?pmzUC86q&P|fn-%^3Z!XxAU zUt%ea7`o2b$Eyz>sY3c1Eb;9HB{tFCBXIEZ_yI*9uFF!o!ZbP9F0IDtpFN+pbiSiP@YO!JsTfHnHc?f`DH~g-5d^cZ>8_~ zGnSORkpUA7j4JsEeiU$FXBk_F^m9{8ebEzVY>5d>VQYOZLVv&R*LuNp`L}dc@iCYL zw4`Ju<%Fqk264~uYRWN9S7wBuXs>acSb9#-ZpL2xED%NUS-h`^PP)kWaAM`@It5|f zRVbc+*0Q~e<7~-6IAZ-Wi8tMa*$~`d1znLoeK0-&5m zw#gs<%e!mE!>%1=Us|&W%?5p|GGT#-t4ew!-zxGF zNcqG!%LO^#Z8W9vlP$Xr*aW}X=b30%l6}V> zQfQ`=bSc3&g7^sTr33F}e7 z?=L0`PDxs*Xv84r{Z}O-itiTDp@CS@uQwSF5?_auFWdfFYsU0*;&DSdZMpxs{ARP| zeq@>NV%rC?jhiYKn#|!qO@^JJ$B-$wfh1+_!&moaa>f_DgH8ginLn=Y$W}TGXv~%t z+t!lYnW{@8(B^H1BC0>YixSdX>Xn{1M?9;#?rS&_IBYss^0oN(h3c*_p)C<&NR8{k zWK|n}mSZ%!vHTXR$z}2Q-4H~<@PCH0PyZl^c(n!YwUD%@>E~{OWk0Z;rerv^Z3uZGadSy>hcuoF z)Z-znUbZ$aT`?9Xuj&h#S26XPMKyb$FZj;uH=Q6Y&v8PEF4Rg+zg>x50^xi@GxH7K zJ@Dwg6ENRectyC}tFb+%AE(=kBxu<8IGps8W*D&@ll}!*caR@d*3`vW^bnQo7X*@B<;nonn)dqc^u9{R<#}H@-41w7pbdml_IukET(0}a~ zDyV2rKS-9qsA|jz;gFJ$cvbButz(H=!OxEl>9;a`l+E4ry>AikfQ^ygC?_We*){a@ zw8yhUF^F2a7Z2N2RZAG&rTgb9b!rI{Je)JF`^)Z_1dLEXO83810X>^Bp>+04nDvo0 za{9l2Z<+f^)5P1!BL;`aj0qooA6L^9$sXbH)70#cqa9d2R!t(qc9t}BvrYn1OE!u4 z=qt^st}UnVLP%qOD2#lGH~&YvIHJ(C^4UhT*N*KkH1%&ISp>=K8$}mNz$7uq^4XRk z^<3u2ge`S1J)`5Mly>OipfW}TSOp;30i zI7Ra#7I=5ll=xVhA$Ye-jZ2$Ju+j~>D&ULx^QmQm3AYvG!ud!> zK!uf|V3?`hbYmHNQaC*p!bMcS(9OximrJk+MJbnFKFgAt;okmg|Ix@AO|F?H=Gf(` zq0`~y=5M4^=fiwTPrV^X{Z@+p4!S$CybPC=A^|zc7Jg$@d6N?#t*r zP8d35w#}Q%PLYvZfc26%M84IN@o}Y{n57!V8!I8bUT;~_2+1$?F=@+joSl^bMhRGkRlgxUhXb)&d zee@K?ZTob%uGYDYqREh7+Fadw4#erH^Jg!vj6X!l(Gz)i97`ut;;%238&8(0sLq3p zL&U-q$k+%k^Jb;JKew#q<^2zt)Q%yi+APS4cZ5ycuDpx)L*zL`aaIt3Tdoq z_x;;SGIhpsrKLs`9@RV7uAYqj^Nm6isYm`h3{sQDF>`7|pin5!>rx%+S{q#~1?#H@UG(zUW41q_)%NyD_ z5_-&>47~l%7=!|L?I`J99o_!R_z_cEO|>Kpszslae+@!uD9?Z6(l|sIU^!+`gDm#s?Rhn2vl0rsyT&g*Qs> zs6#KSEf}3cLTM&&BA6;Aj($WT&1$kE!9j) zc9$iyKb#=6v)Bv#g4spJ_mB)@tjr2 zd8aZu$E(E!6out@Rp@-BFmoMh_}k}Jx1~L6a%6rc`J0v4e(R*T0Nnhs#uno*&x%aK z5z19fOC4M*_Bi(1YY?`J8Uo{Q;S-lhgGybZAW8RICuzocEP zT~UfOMz|X2v_I%GtThi&Q)BE}UH#>t`@;Ub1?l$SOXju6(-Vn7$Rv9)D25u@2XZ0J77C)rRa^cGMN_IiyF52<2C4aeZ&NQL@W)%C zmt3MVDntC`Qfbn7j2WGstXV|_lT11Oj1}pF;+)pMUE3W~`N2w5!F?F;x0AwIlU+AO zG7Ofvcvv7=^SYcbfO3%976r4kbnIG49#4b(fv(fqkTh z+!Nw&Td+OY#gdeN`;JMa5Hbb^eKUJMq!K(4^hfm`TWZ^^Z1jqGqW8muGrw@>50HTK|w2h0RQF8j#a{w4ErRxJZ2v6jH zs@KP-g6&<<;FXdGehN1Y)IVP-|9y;IzOI7%M=`z4K2~&4*6ofPo>lW>^~m$jp(hM# z*=9l;)YmkI{(1a5{UNsCv`@bX^l!wz@0C5sel$!`ru>~&I|D;EsKs!gBX6<%Wp_rf z?)NZgeiz=SZL_XcW8%HD7VrJX@Rn>%!tRC%G4mHwAH;#)pa*?9#c#g6j2=3%=6pT{R+j6FhaZ+TXttwZN_wRpXKij2j3+;0l=TF;)UUzGUU&f~9@jjCQX_~>-;js1!WOTiK8sA5gTGARt#I}<#ICvxyqzvFNauiL%E4?n29-i=SfEI}jITxkziuVVEkBdO3~ z0lj84(&wU3PZ)?-^%d!Ayr0vQuzlE`Zt1Q{bY$v{XKN!ijjcDaM@G#y=j5p#3E{$) zZ$?R0+aLYphcY8_Snxc#=Bp~BGs%%QId9Jc)-0u?A={WBmwq7n`FK>b*=>n%ubUaJ z*JE2^xnc8zOPQd4?W629rROf!ft^BJq8A;!@-(w&&TxZ6YhAUm-D7Xo`U{FL{y6JV zLcxbv&He9=`&uLq`^n1|J8VRDjNXPK3wVD{%NSIIK|h=>M!D`aq3uQ?{PUpY9yE^jozRr*=ufflLeyu<}tdaW3y>dOZjK zQMkAi{%*QdCBpkQm<}YIPv2HgN7bX0fslkO-w!7%H4{AEFYX*8nU)%0W{n-RT)6q* z_Rfif!WREIHS{sROD-#CinFV;ByQKcQ?5l8*oToYUA%miHeT{}$~!0c>gS6_IjjP~ zrIS7JH-|p(2}dwlST)E%}u_-z3L zzqoK-OCV8woT&Z}^@cZ!b=5eUKV{joi^#3<_YHfmXf}0w^@4KBT>g+9+P~WiR*c;) zv!uLq6`4tF5EYDyHd*@ZvQuOtWO9?p=uA`vLyeN!=c;b@tB8`nXw$Vbx~~?=7aUwq z`N+PKV!0i%EnmUGY5(ryVB(hANKT@j<=ZpZQQGs*Us}XZ;l9!syoZvi8My@x{;f8VD5bg{)ChJ32+^Lq9AXLngH+ z2<>NQ?QZx8{zCX_Aa3ANdPHFJe`bRIpMbo^h7Q2B2q{Xv3$RQuK#EU_J@XiChQR)^ z0xFz9F>sIPxJ{D45+rKpp?ct|u@$&EeE!E1VBS->o^tu_TBF^x(+bU&guJOO2Qo-- zBl#L6&T56M@)FO%rtuV?N)}gpjJ)4_?Tg#56F|=*kdorj>ALF&80HrdGK~ex&G*Ey zz9zR{B+G7=aq+;QFEc*%clW#T;!U#@!@wbcR*UWnPpC=uYB>Jh3&Zfa@yl?M-NGf~ zmkaHn@%9R8G+E5ClQbn)HW8k*_R z@LYTlzh;)|;r_!j0qQs9eP4VC{ah1lyya9`l(duXe0th;+g4L^H=C>!!|jDQ57xpK z!lant^*(G;N9H$qe7I+!_qS=AV1^ofz}*;WC*CmYQI7N-X_i%b;GB;+K8i+Zd)vn2 z4`CUpc(AzZk=G5Q=2zaV*)5dACFBb^x5E2i>I_UdQ;!ek;zFtr1e$AEXUS?RlnDL(XW?O4Eysti6N716&Rnb+$BIJ4N~Ji1L@~zea7J&Kl8uGz+G&> z@U-`&64Mbstxy5^aBq3IqMyROzO9`vlrfK-sR{E#?wz9qdAa6XV)`B-tnWr)9Houz zupZUYwBDNv+66nKYi#F_FAO_tML3!HcS#V!Ef3VWf8I=gT=4hdCYoir2l;%k3%k!O z{Tzn%!}^5gY%Q_5v+De3qMz*|vT&@z^TVQNOM1M&5+6U%*PiEHL}s!Q(~rJtx=uut zoX$KHF<4mPd+t#iKAL}Qi;)V!d*@6jH^uFJnx=TuhC$D-u^sABddqv{Yxh`0t%Mj6 zgPY^UKTuPlXR1>#9K5=?zv-;)+kW`i5^eB-B^ptJf_=W=xY8`E*zfdkc#hZfZGcP4 zjpS3aH_di^L@vWk?3bD4vinqEzf+fJcPatnaR%vI!9oqeT$5fKU_g}a5!$lP9bvx= zZB;A|lv~c9e`wqOXy>e3mQf{}cRFLYvtOLid2?M;JF<$QApZhId_7i(wLAa4V6m6H zwvNVWrmY90Qm5EyGl51ydEw?&tY z9kF(qF1y`jk0s2MOuIAG5c|@Fdeqxwz1aKq*9_*q7vc}xRYla~W>;w=+>`;dvtaP; zWu~f$kzM48uwUS5C%|&GIvI@%0i;)Q_h-Y3?N<1}6B(}tl$rE=5di&lDhKL-lorlm zP<>LRjbFv9Pmo%P^#03~g&sr+5b?Dp0Ot-(RQ&zd@ZHN&QMExtsO~}^Lm=S83dmSW zpXXp8rniGNjqm`{;tTqpxPk}W9E+MdnC2CH`Bz&bxaCc!*k-|Moq+2>PtZNkmWA;l z@yX=%tLq7GR&I4%cLOU6J$1(og*dsSW^w|4hc2)?0-J-fr?MmU2Wzx#jxgoniUOf5u}EteE>(P4l1 zV{PW$w7CH7^>lhq=sNjlWewrcz*~afppI%|sUTeW&qmJj^x<$m!k>#WAn~w4+hLRf zjYY6Dk@ty=^ub%OlnJ7lKI-h(>HcUsPiU70KhT@QCGg(0b z|1)Gyiy@1Q+b~>Mf7ZaTh&3(wKm{IuL^IuWM|5LClXa{jz%R?ZccZlv4e9-oGmvMi zeD}h+v7^if$KrFYU7Oc4&!ZJahFumG{}s*(dK9ECaOs$N)!hEyB@@bCbB_EtjQx3S zLf5clcEWfuqh|7$J~E#lKEZb|Q3GdQ!cGhVqo$~6)B^1-ce+M;F^rlq?Lx1Y^2ZjU zYuf(Jb-EYc`L@__w&t+tcq*vlBx9-5k1V?kwv0r;?^Rln^w*9-M#U611a03V`bM4^ zu!W#75rmH0;o-UlNt`iBKlg`91~0t#SI0x}TQU@TaH(@)OYd3IRoTTeyM1oi%fDi} z%Iol`?$yHoVoc;&E642mO8CW?mnqtL!?rO)ICtX;O2;jfN_{BjqU{x2y-}awH}9#e z@mIY)lNLI<5If5k+?=a2A<(*xj+sQ}#Bgn$%_;dwS_|JGO@sC4((x+m*0221z+4o) z)7`IzKVZT62dSUUy(j-YBiQo~NtkmZy}Qf-XO}zs3fk~s9WsRoWKwZg&9J-1Xn}_o ztjM&$O{BQzU3uB9!QAu<=VT;4dn4&B)6EBoinTfnV8Lkb9t5m9)HQ{5921e1YV_E$ zIc%47ChmjjNa(`Y3f{@ZI@^{?p>WA4lz_N{@|MA9IKPU5%-4Bwhw=<&zV?oii27yB zRUWk%eB0H_Mb>%XY2OnLisu!1d71r<){Inuz1YOEMI%U0abz{OFQH^6#GG13@T|^v zMBHnlibN}eI}l_!xSLFpa%}xBOP|r%rskLAUQ}t7&ELmWpb!O!_fJo{+R$2Y831M) zw*WU(sbY)ZjtLPE!8b@YP7?4uF z0!D)G&*X1g87!SXM*rs_`20%<$EPg`3=@%ZQ}(IW_%ufgiO4X8Nn@ZN=)&!KXi*VVzq3Em@4|_;A_pU zt%c-3N`ThGOeFQc%UHWqbi(&w^}f6!=x;2%7I1=@90$XQwRh1&s~j`82k6!O#qQ@) z^*^Ci16b{)o?UNvH=L1UX9&EN^zUrmq#Np?eT(g#v?L4V#FM=vB|EFizm$b!IJ_(OFOEGJqivn_a%8e;B^_uhB=6FZ z#gLTZ=YP+PjGmim5dr4Qq09a0^&Zj<6RSdHocUxh8CF3XB^!DWW6Z!ra;38W(Xvv5 zF!QHCIoL&4V_j2+!q<^3!Od&klJ>*Hgm{oDZ;gyx)5{49 zQx^^^JwcahJP{3<+1?6R+<9VyQL=NW#c?e)~}b z9elkd(qhy9=q~8JWI{4k~H z(F``(Kc!f^-3FXite?Wv@ycBt5Wsla z0X>X@k7sUM`cvzLbY>TDh_7`b*x);W0OkhRcf?MG;R}QkcCf?EY~T>57bVx(VtZAH z_T-4x?`xlx2Kea8O?|EuCH4K=Jz;y-Cy{LA2!7slO(Vo4%+R1=x@>)}76hYYbb|Bl zNgTKBhPzVkAV~u=ql#Q}_^e3(%Axa^;t+$lQ9#^|9t=7`unGw*hlpT4Ms|pwV+S~) z|Kw}I9uZmyl1W7Iy1kPbu-Mc^{TfThdowp<>_KE$}bS><$8SFjixs)@$)Y zYMoeIzz6=9$po~fJ?bP4+8mJBah{X-n*gaIJ)8Sw7x8>H-JyQ++w)RJ!;Zc)rf!*B zHp3z;WR+d!%FpO1eIO3X zcFI)HO|HjOBNkQxg3PYKr}qAfe^Rr%rmugqJqZY5-4e>5u&UiGU?n9{KBPGEo2o{! zy~eDeEtz6N>d#?>uM6l8>#pvs40!HTsP{t`tMpr4pKynM9zV;u_{MIN{$_vDcOTp* zTd9O*z*A)h)AH(9nHZ-;+b;(tTY@Isj+}Aei@65z(Kd{)6y^l=-|a`~AW0)k@gS

^#P;pjVDAqPxiW4%7Y>x4CsZ^Q4<7r&eHQq_B?~yIP*wyo{R2yNbUmn z7b?X-rtJhoYa(gw;iLn+dQ*s% zIvOQwv~7p)2rts2GWN3d5zdxCK&~&#nFJ4s5hb{LwD~_sWK< z5UFXBnAAEKAr(;pe!j;RNxR%oh;&rFoYH)>rcW$*#$~(`EsbE1lgT@*$g>a1uT#Ez)f4U}@FliX{lRyDiK zI3nmXllWAU()od-rUWhAlsuk5L9oRpij4gg#7R<>fKfgyY1|8E_GRa<4Q5qg5uX|} z*1=!_F1XgK^P=mBh!dMsR$|R&uSr`2F&6=(Jj6%ZxZ`D8YN#C}?C%41Ob0%Wdapy( zp2WXCx9Vg0ZXsgAM zVHgHU!tx)nCsg*dlfBfN_EZ$J^9j>zKpP<;tNUZ1m%Ej(%^pJc)tj}u+)kAa`}4}i zf^LfOGJGy&;Uiw*WXyrKk2uUj`69$!f&Gc4juwXMI;HAlxxg3H-?G&tcc0<%G1Dvepf*|MjO*xI zinj)?`ujd6j&J8Ifm8AMdqj?!tFbv_Sw)jsNA+;>t(99(XX`;`8R<1keeEhS9aXVL zCz(HiDdCHkIj0fq`o<#Bwmn){IHT_FTj_muE(5Mo6wxc9f^Q>}SulLZ1K0?8yJN-OnO3k$tj76QMY2+g# zZSN*8B*9fhp>($iFf}_R$4yHvh>Io1HWO(S~iq~da1I-nZuC=~#r6lfHhe)Wp_HxbS( zAhMnS!LyE&c+r#$C@er&#)mmE0#Ui${tChS6xb;rp2F+3#Tzd}0EQ9)F8cWwd@QTf zHt%YCUlbw{hEue1tC-qkVL`TGgwON(vet18X!lWOqE_}08#&TZb}XItqt5-7o27dB>@`WJxjy(6(k_BuMA_})Yzbl ztG~6=s#JE+RXktM72KET?z;wF1vcX+78GITc1~!lJiJ~5$F?inki*Oa4k2sT*w0ql zNGcqk-eYCyCUf!3e|}u`hj{f>VBORY!qd;!9ZVOrgZ}Jkg_URdp~xD&QraW=VqLnX zT;6kqDPFO25zj2mVU6<0BD)diH+zkQ6=WdJpioj`-N^=xeOF`TOT|cIAM@N(fz!T{ zkG3)EAulA3T2p-JTYkRgB@1B9Hc9)lv;SAb2-0<|sI02$Io6Le-2nZEMOJcFhma`= zn>)hQ;Z~y-`~p#}xuu(rxx@Z-1R@i`2kAJnbUyZC+I=o(0#{klUR{p6-T;y{=gvsz z?LWd=O}LI*`2PEVn-XeF<$o?1`u|E@M0veGY@fUHzJhp%$bE@0GLNpG=#W7y=<9R> z@}$JNy3SoZT^#oX(cZh9GPl;Bw_hWv@i#@iCRk{#CoY+i5>K%hK;pM;4T>bk@O{DO z^*QL$o7K~If3a{fbXmYPy&UiA{o+}{f{|@`TDb2nN=1CX^)Fu&raxQc8goL1)&Z+M z>vwZ-a7zjFf3QyW&@*4Zg(YceJy?8|iC+mO^DX@tl??k#;m=VTDz6g8QMyDE3e$Z3 zYG%{JmkT-b7E1+g5qq}PQria0Q0vw2PyR0T5s*2xvE2upau6}!S^%|m(m`XE2B|D~ z^9c+Ba4`4@qzR_vG=rboSY}BYC9fxX0gfhoWH_r5?=7p(?MjYg=4@7wiD!OnabWY% zm*h5r|MkGlLXEY8x%(n;UxnA8zqNyrMGUKBcYVQ=^bV$X(}^<4@Bvgu9Syys+68LT z|IAeSF?e<`+A8oH5d#d6DnPhf``jX)2=`&_Cn6mF_S|RT4{CBR^1EJF6h!MLs^#<6 zo?p27XP0>+?ZFpnUtfCX$RK;={=2E(qG>_sv$tbt@n)CFM1{2`FsK;nWb8{#^X^NMR^TR$|bD#5oiY>R1|La?YouqZCn*T8I6i zFKl6TR6?d%*~epOAXcv0BLU}2(1#TMm7@Oxmf!pG7Hk_Q4^2xFqubuPA#>`Ej*R+U z2r*)hKbf?eOjG-X=}9ky7_UtFV>neq_2mU7F7_`PLf)gf`0smrSSy;Lo~&unlYAR; znCY%0Uh&6$es^R6|0L3Ceol+Qk1U*iHCV#Jro9AqUr);X6R4w$xTyY>H!h^fx~K8I zKj0@5{2*>sL+%};;q)9MHNw`265M{LC=nKp{&RVG;lay>b7 zMEUn5*zm@ub0t|vory_VZg1l*)ybRSr`I|B=Mz*%Y8`R4vX_MbL zb%ukTeog%tHU`3WGS5p`UsyxtKY0getswpn`#s+;x}*_Gdupw4UjgJFKv5q>^@PDt z`;8WX-vxS9K9Ewf1LqTWqiK0xX?I{AP;U9mzV*Q>c0UXpL((FcX)paCg%z4;Jkbq! znsq8z*gL{;tAWGpUl=!VEA`ZDVIf>19t(U=GjE3cFSxOu8e&!aESf`~Lj6=2O8jdS zZ-s+1n|oA`VOt}!R=q&*OgLfSRMSl`NRlTzx~q{h+7YY6A{;RW5gSVqmrXN2nr_u+ zE}E;!0-Z@2zawOS^&2K=xZ^XdrLtyS`zUE3V2!J^bE^<42LD{5;U_ITsn!1!m-K$Za#D@D;H}G%xgjT2w{y>*zBaAF+WF{j zC_I9Ne0U{dbyC|hF|tc}BS%Xgg7d6Trpf>E@G5JGfv*Z(Y7Og+??Q9Q3pI2cO1^3_ zz0P!~9XP3z(v<`YR7E4t#m50c9ux#!mIF*GD(}n-) zyNGV5@^1inc7XfQqmZ>jwNFPkW3OJ;F(-&RlQbGt^$v^LzMau3FxMzs9NCD~1qQr! zJ3W7S`S&&;eKDBs=O1De?S09!7aqjgCjasr*dC+{x>@1s4cH3J(kfM{ngew>lbq>M z^{2QET=7*=0*`CSQ_%)SFJBdUsJ;$dGdDjy3Og{D_Sfn2a zv1NvEU08~PDM$onLP}X2VV(wNpy{rzN^z&*ciOYs^DBnkoTp@8req;GEq{5&NKz|x z4BNvs6j%u)Z%?+xY_V~bR%wXWVyXS{5|aE$yFuGg;@CTF?IS<&jn0uP!ur(}Uou6wMS?%>(WM+#R)H=2Vi~LoO8WP^-&>O7~ zOqz&=c)fHf&xL7+PZNhngQC#)XC=Dn$7VxmP$7#*gh2EM*)!SxaDgsCmvcUc9+ zsL+diRNtslcU1dKL*(CFG^5)yU1=g= zLKrz51{#|J^k<_5>rGb& zoYEaWOxqLw{_-okvOTIKw=G16OuW)zJrVZ@%HJVwq!@9r_i0h2NbvpyI+)Lkj%+V^ z7UX&DAk+LgO^?$$Zfl~tZ$d8uM6_FdM8pZwVzVyvxw1>ewzSwJ$_gGP^EsA(GQ~TM zlZl7^vAzFtTm895fbk!a4|Cu}NbGWnK_6Ai$HQCG&!U2Tpiz{llq%?K>>nr+6{7y@w{UYGj<_rusSG;_Cg;bSXRw}$hQ zbCwFU?CIJG*Z3B0ALOhg3+~h>#I29~@9lMbdVBlRJ?1v8s-p;Y(*N^BFwBZkuQf@! zwYG~26MQMxM0)%e+lL9FPG{h}QO7qC!C*w!{1ByO#uYG{`{!_>MB{L1)(p>Q1C zBwJ6UnP5=zGUf7g7}a{gPjrwIse)Gwt5c>)#uUE={gvTYGf>WDyfve~v#2W)`2dno z&V{2gI&xp4mnxUTLx`0`z^h>ttUPgh3{?|0(+oz|xF4$@*l>|RX8nBlcGTRMFeMaNt$oV};Ue{?Et`5-qr`YtJ?s+5 zyaGO&kEVG?=0+4#rhZ)9Evb|e%e^JWa<6NLOeEM(&3)EK-CIrAGg@YNAeTz+8E7lW zEZe`C3&h~ArP5g*5Q3Z){QJJQ2iFd0QUB&og!NZ`F!uS1gS9b`{cLq^rzp)}Ci= z2-41McN8<@6hj)2`(r%IDG33L8xY{_&0iZEkw47qe>s=d(eqS;0}u=C31TtT?(9GH zg4jQ0V-8$EVhRm<`aG6qF(`jHsS9pbbD)%JsE*y7@~oTSOd{m2ZQ-{w0B29_e^R0PD&426}*MDsG=IrH{a~dIi8dxlu_YnR8 z`iL-C6?-;oE%1QxEnV0gLKBMh{fds~LxXEuh;|lor+o>w^!qPZy-<{vdOh~D@O)if zapEOgP>UB@zqxJLC6+P6bPyI16M4R|Nc}&0a>kl}2XD0H<&tjpK>Rk{N{EcptvA!-%VKT0-81uCTrCu+EB^&DT-~k@!7^aP6!kG?f zKWUd{zfd)R0z01yp+XdWMZs4MO-;dz%@|}uD}lBha%}+KQ)nBN1SzT-1v$)z6(v)z zc}-{E(KTC_T^c&KPy4_(A7}JEst}D*qYHJXkD8Q*dCkxD4ab}Srj3?J;ND{K)uM&# z{IoSd9&Hxiu^AIqpJn}QqFh9f4R`-=v@EN+*t^M%9Xd`BcQLkar*bZ+-Ov@uI*3{F z-E%s`u3T8cpckObXO#4yEN`cfy&z-1XTG0R=^`4Y$@_FJC`-Sg%hmqy z3s#eVRi_-u@v=_z?Ocw^I6F}+yt&M{u&H`<@*-L{VngMWQN+`FSF`kWNd5h^DDGZH z^74>dJ?`9@@O*_}6|7QEBCUF^C*QCgZQC!UxemIsg}-~}^RaD^Nn-El`;HiiE%(V6 ziv?ef3;4pJk#Ezkz9A3X^|-s4d|1uqBo2%J}g5D)-kL zTeZUu+%BH}8E>XG>I&Xs zciLv)3R6+_h%S2{zguDZ87Lu0&eMb}Ud_1Ryh7*u*CqH09k5OR3!Y?ArRvEkia+1| zUn>G@_mhUh+YDEKy6#!`8!iJNQ7tp-_Nk6*F+X5J!=gozxecbv;$!!4Qr-iE*6v!A zos(Uizcs`)za?d?=`|jlsWtv$R7<{FShyLoG>i@l^epor(iDr2_184cxmE*Yo-ciK zpjHn%SbVnu_4I;X(JsAU3&(Mu?qlt}F6Y6OufYB4mfQY+(8$GXO(VETQd^{Wr(mPm zZr~~Hd;OR8RVojA05PagD4i7#q>5;TH#e+!wwa{2OxLz$ z(%E+}pd@(ey&rUR=hBD+0=ao9lGFY(F_J=V*OejE@aBL*X^i^emKsk#2|1uf4=L_T z6*{wB4OVBAmv&*QSSK}+(4JvJ6dj=i1@p`Id~cD{yhnUT&y|AB-`)NSj#5OjP^Wt@ z4gw`WAW}9Qq3<0?*NIVd)+sa}a5FfR`OJQx>x*#du2%TUEyb}1X5g}ii%)9Yk3hrn z{$YH&Wt}eFP^rEcsw9>>^s@g$rX{SFr$erROzFJKBrpKG9r$Wq)y{>k?KrACH?*1i zbyf2=)$CnK3;*#iZfkq#eaVSE4#s{O$kFn`h3)I8@5k_@44g`swv=Y$&gZ05!PCMr z>1^99WYaHl%Nw&^Cy8WikV(T`ZZ*cOr8^2=+qt^4uxP=m_t|<5p@c%pkz#8(h%+tQ zzjR61Q#UG?#R*LIM=d62xcOzll?_&4>2E0M6?Assb+ulpf~ zVzNGl?Cibrw~Tn{Zr7cUf}lf*hj}OauJY@)Tg9$hdZ0N@590kjJJ@Nl!LA*Cup*Z7 zn8`KA9bdjYMKRhET+UJTSIOg!}hFO8XD+_l! z9y)TKOqa{`P1aSs&l#rvB(n!BT%+;-wfj&%*_{@3d=PU_jmTO;>E}hm=h*vtmDrlD zlUWA|b#DTH2wxG9U!X63sWh)NG2@0gOg-_$Zk48o?w4QDW2)IB*C+oyR2AP}CcdkO zOvSDtE;4}s=r@2%UL7pJvRncJ=BMQgM|~0ou~M!47S}4Eqj~Mol4fDXnX>mkI$9f8 zW$mmo@^)cH^U&(QdL#CUMKC`*xM>Fb_9Zkhk|}m{ePo)ALX9rzL*7s#TX%-%}?!CHKukPJ@!GMVwT9n$b>B8$~ zKS)|(CRcY5?fE!GIJRJ2%$|TW+6yI;70Fh>TaDCzc!Fvz!5hlxk;#Z2#doiCja#PD zyT26Gp7Gte3Is+*HM_RHpN~{elwW|jizv`evK{qQ%T~` zo{*)!E!qEYP_6r3^>)7aFbao*uv*7I?VR&9ZW)bzU)C@jUTjxto3!`rrPGm}qWNU@ z_G1e#$j{t`2(fPWeO&NjC_UAFbx~h#=89!c^1uBAB;9AXP53OYp zB00ySz+U&i^#$4+=7yWE|BM_qUsD5JjNPU3?3#Nk&2cbWK>tEUr_$VK0X#EEZ1-E^ zBhy>HRPO}Ydz%=bMS|ew-|r>FFyb1G+AND%Q+Re+%MIhduVsb>wi$dd*aE?3SWrcZ z*!+0%cCdsGD+qYner3n;KU-Sky4t#3wk^`jjGhe~)k}pD%hiLuC?2Z3f%kZ~uM*T@ z;|@&qYm&k~$+od!@da!$xY!`RBI=I`0ayt`P0pb5qF>(oHX-_r1U$=X3j`nH zULs-kG0r8A$hLdpF^)xsmQyM67GL(){N|$$cVF+B#qka)ak*0R|cGI*|xi=Q^F&lez*GKMt0W+NY zUUyL{1~8o&QE_oumGbH1W~ef=(20fYF6=Wl(fBNlWjd4>YTQ11OKmv)LDZLNu=y}E z!%zq#do%q%6oURkVc!?S=rur7feie9t)?)IZ=)aUcg3_uTXuv&t z&|=C%kR$k@G157Cz@Ca$GUqpX3BO{Xczs^Tb038!bNasuDn(vJn_SGp;lzCjOAZeJ zyLO;Ofm~7Hiwh9mfODxflw*yXZw(4)Ee7!aO$UmF`EFAUcVzoDOiGnNuV(Lqz~T_i zPs{)@qFu!PQKX+~JuY^=Y&qgsaZnt>d`8~?T01XY#E*PyvkLR=j4j6c95ddLo9<3v zVXv~)_bQXc>7d=cQ{z=KbEroA5omBF&Gw*Hu^z-tm{RQU=k>>xzAKc)hu@UIAP?-5 zZf{*Fe}erbEKGuo519C5>XG8>nqNgag|6$ze`k+%Uga~SR6CsYTiU(@r_<%iAsu_I z>k6}<=y@_>)=-hVA#}vv46a|4LTs(WixgZ4->zg4_z9*1^iL_zlO6zgee^K08*;T(hoR5lKfGc?tE2 zj50$v2wTHhCaq{w-z@Q0br_Fi(Smx9;spVAqA10CvDl%GI3aGX)d_MJ$d_hXa0hNFt#T`}89Q6l zETQT!31tStQe&o)8T6gQ@lCoQbL8wpd~R>iar0 zF2uw&PlI(japOzf?XgXvUSegz z({C85+K+bh0_RZR!9ZGh5hy+Ei5{582@QNOh&k^Y?3Wyh#yX)Km7NJWtr=cxTtDR2 zy)KY$bIuhCd(W9t&oNrfm1;Dg*C8`x{eLpZnBBljA|NP9b68%l(L9J0z?AdsCk(!I z!rQS=Tn~Jrn0|aWMfh3DgD@B&b?T&--Dh3LXZ!?HaWhm0=mKI@c>+SA!1@R&CCHAn z7mz7#DuANv$wnw@v|#)oQaZ4pyy_Kf5MbCT{thq*$I9nFu}{VM&h9Nsr1|fhrs%*u zFtaBUrqorWqo~YS@(U@sZLpPm*`?YHQeTKK`XQ7S1}C4;{?3oo={vM3VR0 zh^IqPSVoj-k=9l%F%~=Mg7$~5POx6Tmz!HP+>Z$c!%KR#oy!V8sFD~Xh)kH4gOtd3 z&Csxa4dXCccp9r=sH&GWQ#KihlbP3G3Y7snBN+c{SqDcek@(!-^`BxQKKBdHEp0^~ zWa=b|&Xvz7(qJF^(v?A%d@)Wzm(_&%`fj+us`1y(c+jmBUw4-}B@DePTjYdEc|@ak zTVuU>-&e=r_8i8`>^sK6pXYL0bJCL^PM5|JRYoD%a?cc`n}TPLaRd|gJe`9R_r3Fj z5p?l}SMB_Ia3%_21I7=5-1tLv9 zk=J>>a@@P>j;hAYw4^Ql0q2vnekxV^7Gvw-m029LX8-UvBeU1*2}$^pa;i@*;MNn> z@1gS%hZBM#mw`KcM5InEE-3dTC0QSGxpMseYHObrYbAkjuWjp;N5}AEVWuwoj|%>= znV!wKBz*P%T3mr(_Wzg!3`pTP==(-yB>R9&sQ(=}ry|+Q0%#iZz>eMzQpKS3c9?_# z0$mG+!RFSkYCU~#@Y1hOw;vq$BC)vjaR85xkY5TM<#XrrknLgb`>!WGGpx({UN)x8 z-_X*0H5-U(m;^G3uvQZT&d1C2RKI3Cj=g~+ghYpemEi&Zw-U^W@DlLu-MiOUpWB6u z|2r-9xE-m9N>iIzul2@v;8aL3kHg~&G?b)-^9z({g#lbQ0gf5&8O;0kRcQ&8HqB3o zGG9ZSRDxhXTvKDlLBa{3Vf$Gn-ir;1gk&mad5x<-uI>4(HI^uytonrrsb#&iWLXAS zmg{V_cGTONXHD}&13Y8yWwt8J?Ao!c z{=ryLhJseQPtuN0O^_bi&8;>#P+%|aZ8XXN-E@;X-*3o2>mSQz1$`A{5^Evalg{?Pd=QBbGBx_#Syh4fMX4sZV#&$wE8K$1-2A#7 zn>G=A@SN64_GSa4!SkG-(oxtcN6R>zei?=yIt+wx)xW*|S)tM|7ov)XB0(ngfH`8P zjEEIuT2^S?e)t*lPj#l*^Sbx%YcAyKRX4FRwLb#5W414A{AJmZl>$GYM~HHu^ODH~ zg(cW@;xIgizaS6J$VB%Zy5v75%?F|&gsC$Q69%j?Q=cX!M`A?VSZvf zVt&Z6sIiOJxr4E(cCJF`7#P~TBqmuZrN9F2$>i%b9Fgrg*Ur>Au~ni4!9DsbM*k(J zZ(?5)5!`C^&^4HuJ21*9N@Tz#kwhHC+I`(ed~kj|XlC5042-tldsmf@4I0Ux zB`!Do+t5!F-5+po)@jx~^;CoaO30(akaa%1+Zh&gXO4A;C4!PRsz=;j&TiEi5@@Gb zM=bjQWe-};_KC4SUe2~v>jQ*;eL4?|&*cFNtK~~JRVp}UBl@PG+I}-<{0|1E?x2XJ zns3)@Xf3+ju(~?c0|E8XypPw0g5$&aUx14o`U*GHC`iRC@(A5hHjCqcLA#y~6G>7{ zZm>i_88Lx`Zk`W_KCeVUOd_PM(Q`2NHuI9mY{}CSY@uQu+ARNOd>g}gUjFd4ZD8HjY`l$nRh*bvo1F%8KuQmh^;5Nf+=1W?Ay2s8*-{X?wv!$RNoay z=aEffvhP98I-SQ|jbBR;;_zi44Zp=JB>(LCTlb+1ev29X>o}u0USFc5Z20q0jZhLr z`$(~&$-YY_<-aQiM&v6)=`O5!c32alA4hDXP9#&_1&`^ex1wp-O>kblOKbM_9XhBh zyuB0V%_jR&Y^nD2S+KnZ1Wkq^dK2#pnCBSE9Y4!Vj)AJ@MnQDn{PyESU zHq#y^BjOkL9C5SvQ7?PEp>C9&ae*Es>KCf|`fjWCGdld?N~3S@$D4*u-%`l9?`p4;ZhZK`MpxAyJ;DMJG-H~ zYQt9vA(_(cZIT-npH|HTW`JPC%jgn+s+P;(UYtBI3Q%J-5wwoS(sKmX>eRrkJ2=_V z`{Q%gFKE|h9jMxr8CbMkh8n|5tkiC740w)PIm6e8q{|VdS95UZ?cbDNjLDPZ3(b5e zv1fxa0`|5KH(ZCT$v?MiX8F;4&cdpbQue&fpkAH-+nxv%>+mbY0!^!2(nh7269e=~ z^Gz+Ho~2S|u1D@5W|C=O^EOB9)$>6wVL}1b* zvz>pP#87XB@j`48_1udtz8%7vcY&?TnoYYbBhwVBaMMRiRua8uMv>H}?5)|`UP_pa zU5|dze0d(h_5Z_QV1BU*OpDVd#kR)#*JJ4;<2t3sd08*ddop-F0XBrwn=-k+P>=NYV>sANs*;cOhOtBV%-|q? zE;I|*cJ$rT`3ilF$!?I*s$wRugYi9VM_|+{v;LaUDVlv(^kGaZmiph%^-=-0Rt%;TJ`2(^DpU%g6!Y^y78dvTdfB*^m1T}C|-yy z&;F@A*R28HTi7LqUCw5p)cXt_)73)8Iv*EF@1~D49GdO>BO+&s3`|b4q3)*zKefIa z``l{&d{X+7BIBRPZ#DBTB*4vTbaRW_kH_f3iWap79dwf2ugQ6C7MJn+8y*Q6Bd_jos9JP=e+&5_a0j_P4d{liZBY4Yw zWXzN|HX!-7=^_JfZN?Q~Ri%QiJJ}FI?BwAOCun_#ZL;vXP6=R_9pTOD;8FfjJ(m>< zPYwSRf+wk29)tY@pIRRc$Er0h{4FTI_4&wdX271sJ>Fc zu+ii~$GANUYAO5Wn}wD8#EbIU`?x7xTuN$3{usv4*=s3LBG;4fOssko=5Rn2V=7OyL; z8SQ!O?+m_VgYOhojL__`sx6`^xGFsR%%z_*yZ+k=wO9atGoy2N?LA-{_@LS62LxOy z|IzWn&tkK=%Iu@|^o7%N|6bu!rWJarBx$?~c!-!wjUo)I9RD6v?ejsXqi@KbyPI_X zf?>^j(($K{u*v*QKZodF=3wk_8n_+HD;a320fK^486=OpEVJKn!{i|j6z4f8B-R%> zkCTML4&Q#{5;-XnSXVb0xR3OS^vbTWu{NuvC$ZuN#=H6 zd_DXJ{wf@UF!bHcf`np1`-kekiaI^v`(B=|G~%%xW>Zd?2WN6n?o9Efjr9UMbRF@S z6TnXEl+^U&7NQ*tY+a5Eh}k3CrM(I*!~*;aaKe(=M{GjFn?i0pGAC^xrHu&5ffwz0 zX;<@zV}Vtv#&89l#%Q{qWdk3Uz6ETJTO!SOXB`w(ScpT}gm6ZjdG1|ZKby4HOCR+5 zz8wpLvc)a6KS+1_cjBD8D!pif+59px8W9X38ClTS;vIi3yx1A`bLD@89HaOL_xGvu z<5X7SS#I@@Dm>PFBtMnsJ(!&t%WOC}{1=Q$GB z6k2n+$Y7AMKm-YDg*QGb(rl%>1-;ST*&>Uv79mU(Av2bLUq=Ur7&1(nOv(vMw1TNmek{dO2vE$Q9Q<;}etA9C>wNPaky^>X`f4 z%`Y<=I!*Nmut)fEJ&+n`bzS>CLPqOVeS{BFd;H!%&-m-6)C+6Q=L1IIh33ZrAayz& zf9=l)ts4dy395rTb#GC6a(ko)tz~RtrN?}z6hIr?Tfo8XU61A+#EjdR29%Dj7QlRI z?^g8zoby^@I)P64IHp%sq>U~y<3t<5tZv4OqmwD+zPjNA3?U981r;5i_4tKsqy5hv zpBf-bo!)7XU82-X?A%tS<&tyTUame2j9yEfbXG|w?TcKVTTp6)-+9ew%@4{>SxR?K zs`sSgn~&-TV_0A=6uY}I6Q4HxQ#^Fc-|wWyzkS)7 zFHw(joladuVRrvw@p@tbPu0wSvwB%BE+S;stIQ80(-0n|U(b5D-mzw5B&E zk%M0`JTah{z0%cD!27kHA)26Vs5~)VSf@*-z74-?IeGae>9yu+PTw;F66<%BOC3wX zZ{cF{UC5GY`Zd?j<|e|snH6LAj4G75no`O4FIfJik>pVY{D`snL-$KovnUoHe_xJr z_ls2r{H}9*xc@1Cm|x?Kr<)|v5Q03RT>zC@oDQ~D)ez61=sZjt%5k4VBCwB2v!@Pc=dY~3 z+d{CfcP9%q8w<^S?O6N!0ay-X1eu++19tv0tRQO%qYg8I7Lw=DLDYmelH6qPupGI~ zQa#AE(O@8&**-PJHtI@7h3%@av{CCD9Xt^dTkXgQ6DgglaR?_U!8Tcpg{+tQ>3%u1 zikVhs^SE?DAMxwI3dhzsb;1!cicE?Kwk#}=kBJ6#e>7^v?jt_c)N+WSiG^;eLR(Z| z|8{9sHGIo>Sx892;14IfJds?5but=ctV;^w?egH;=kEG)+Gq8}IaMeK{LE0I>f`=T z=JBBTfIyB_g4(q>Fh=1IslSP@uZ(Ve7A}mYYLq_Jsf3kM(6_LkrBBEVew|-sAuk_3 zZ2^Fc=~5H})|=m&vz;ZTi(6ELaJOs(4xp`IsKs@QCeb;97Q!+UgEk7MSyJFZYb}b} za`+Je5cgys05mvndKCu%q!X-S5MW&;s0e9*^>qCt1Ex{x!3a4qn6bJYM3!}FzTD$S z{Sf&ek4gU>(u$!A7^0bvg*qu?K^55xnsIjKX?QUrOH3ssx?Z~QHUf)rk7^ii6WWH}EuB)#*Z zo4Ah8c!^ir>AxJR?V;Y0Q#+zNaLSL>3=U3pnY^O1<<*Ax)a$X~i7ey$-nY)A#Mpnd z2o`$$(J#Nml{++7m8i9J+%R;Dgr|$JDI_N6CQR8DzR2-WDrF3t{+EdGF1`7m z1)=Y&{%^4~8!d;>Z6&+4DAQr0pVA$4%B@${CKJ;I4;VKJ;2elXEFQYR=GVu6kMIlI zI)%th|44f6I%$yul7e4E$vBVJ0)usd@?R)V$9aQr89udR9)*(!@Bt1)f!4fSFl#2* zTRvqJms59I;z3clHpX<4=kBk2>dB|#Jic9K!s2*mr~SO|r(`-D`mLf`jffyTzw$Z; zN)haX-3157Pm)Le(NR-7w!-YHMxyFR%htkCt4SD|wR(1k{`zE9Luj$HRIDmA`>U^0 zV$HtRJ<2CVXq$R38_%%i!~*oY|7wLiQ)^iK3oW$g1<}-=INp~V!Miv*?7Fzi*))gh zADV(k!PIh0iH67PkitX|REM|)8vR?RXEOeKUS{5qV@S6_4qa;5@CRd4|Ng$h^>Z} zB;YEzpz%ST>%(Y8hnW0Y02;gF5gPuk%N3mlV^DLc@5N-=o~DjFi{zf(grS`<;c}LA*X9sG?%q--3SRw0_`> z_St-h+45>&cT=-K_GX6n-n7$1HG=}b6VdyzrJ5?R{l=360smBs@|QZWBSsx~u5zQp zki3k*9$O|y`}^PT9wT3t3ui|-9P@{h`p}w|#;Z>pRavB(-BcbIImM1roV3vt07wT9(Zwq=-dtn=iW+xr;x3?5 z^6%Q9UDB_$wf$%;H}<5xbsXFRZPvZ=Chn@7IPlYq6}K0-0>W+=K*SI`{o3-`Q28Xq>UcQv+dLV=LGWsC#Yxt z4{_V^`6ZHRGraTegPzudLRU87TQ!Y4(R+*ZfEh0^>-F>hWS zui;1Va`Zm%qM)$S8G{x1sONB~iI$yKjSJ*G=LI*>b#!}W4D zHXe&rAFL!XR9{9JR@v<-bjQ#5+{@hhcYAtci@JXTheETXJ^`(mKJW5tdkP*!6X8~n z7^JTYZD>MW3x1#5uTo(wz3Kr&-=i4PdiIK0CiW zuScO7P8nY|K(J`BJ?#q)I$5$a2@rI&bfu>Qnw&~fw=k{0gbLfE?5=R~n`+5e3stG@ zr@)~0<~QN=&l`h)5PR2>-g*Q3jeXsLN!;_^5AT)^$wKa$%RG!ZT8Wz$=E8c7oTOo- z5eDvh?t7}8uj)yca3Ti3!%62~mk+gd?+9F`+*&HG5+X<_n_M&6sblT%j%q#9$c+`G7j`anwZUv#Lsy%PY3xK3et5#7!&)NH1cH8k5;%DF7XL;|c ztp}_Jpa~exre&{d3}+i;^0J%yt+x6Q`O%2q3eI&5_GrE?q{%C;225{z`JksVPO#F# z7p%4}Nj|DX$9YGMx_^jGUnEzib#8Hkie zR|@nJ;NiF2n0(Hq&i#C`C-=-$56k~7U3Ju45iI=iN>s0;C)A-GP3rRBr}fzra{b5- zkI3mX|0dR+zX;x>nB{t=PX^4<)gru6)g9qFelJxa-3Tm z%S3RN+-fpU{1mwkfS6qwuSNc584L!A7NMzbzME%N<_X|2aI4I83;U4>tgSvCbxR!!rhC*4s|N z#l>mw1_NgMf2nMwJ_e!i?H(u{(g+IMDn1UIhf!PUtmYK-5&4hqjSHmKy zcfs@8;Y}9Zi*5!`06B4dv+k&`Bw^n-$@=iGqggv6 ze%88^x5=PD-XUE^apd=X>9Z7hJ(&zQ{&488z6rF;4a7kvIAcgkrq==k@rVxr$;tJK|Z>1?Bw?s!PdK4^AZ$L_WnJx7FG`8 zaKp}i!T=oX{Kgw#Loup6$Fb&-Ve9??Fx1HIL_17`2C@zKUZ8T53%2F?Ql{k7_GSiO%Y`$QmSnCJ2?Y=>*Ez4!2qe!sK$d9pnyj4dvQ zeiC82{O-crG*ZuUrIOIiox<>BqFK}viw&q9i+a{`3{LU?S4@3VYg%!q1!CV)Qd}rO z_|ZAwezXb=#^)uuEc0>~s0|h}33OPdKrmO3 zEi5PFtDRY8DY!yUW?%$B{02iJSaZhsv_p6f-%(y^jnY5c7cg`isW^%`4x9TcFp5Tn zz=mKC90odxWiQx;FcZjJ|Hz5-;3@WeJ<4Zkz!e5^pQvQD*o2#sG$e!LYzb~5LJj|U z&BUYaa1d|4T7(_%PeWPKg%oAHGZj1ycImC@N@Dpluyg3Uu?P52Z!o0t9>G8t_W}v*9YeV2d&~82@X1RQ;c1_+i zU3vB$g$f1`^B4385;wuz0P>RXZs|u$?-~(iY3q5vajrRCh-N1|{EAD|;}noM&`3ea zboSRRHNdazyu+!|{u%Z4rswZJ*+`POijng#HiU7^#b4)=f)LzmM%3PGe8!1GD&^Hr z9;H;fl2PSLp*KqLo-l_=Jj{!_u`F`WVnK9)iv0{H5Rr%X0qK%cO|@qTCs1xFzTC05 z=O8UaO>@#ye@K-Y)jkC5VDZ;nZmvyEafp(jmQIOemXIu8$C~Xh1(zseTZPZ2qvzw9 zT^s)HVeDVa-iUGfh8SL|6J;?E%3??5!J30aLlJST(72j@L}wWxmt~=>cT@Mi)PPy zI!#Kx>ib@577N!_pjZ)EZn|%ir}(Ko=_!L40_CNl^AzX?a2*s!o_*D|_k!^+G8R`# z@Jc-U(D*$279aXR|0Q%~EC9vSHxy{+1R%XnM#?{I2h*V}P2by!{pV=9+tNz@n!*J(Tbi402TNp){rxl;8 zBaK)ni+wR)GYfH$2>E-Ci@%}*h354yNmHja^C~fm^S+5j5bfP-|(YeAE0~G9}Hr= zptH55`DWO*E0uzvn4imzp@r-R@Z`F3`Y(38MVL|DKJb%+N|n1LSTLMdHsh}zP@T#Z zv;F?ud%=_lL|i-B95w}elFUoLYYv?7-0-_yu{_7q3v@495fOGX$*B(XM@5U)YJnic z{93N{=`jnHhO7Iev%RTQlL_s705%(fDj7++W_?h%&3+cgHr1HcUwbHk03!6zwlB<` z<~MQ*Th^pl@#xx~%h33i;@hglDlJCj*z#l|Xd?6vl51YV0H;p6H z$DTG>pF&n1JB8_Dv$$8m=4m7E91{x5(cOmNV3A#VEvMF?>NkJG1lwKeF&jy2e^=WA z$5d*(lU0zQ+D7T5h5q!}7@Vv2kCMkv*2q4ZsQ zEN{b)J)iHQE0>L#+HOwfemz~$2%EDPI2Mb2^5)@kg+3=+444Y=@9v4l-94J`YYK+> zBvQ`#8a$zqal4^|M-#Dn@-$8>5rjB}NXlfA4%NN_pr)5m)TOK)6B`2^?1o0+e^4`vHM=xQ2h_7}Q%s zkgSn+>@dNlx14 zXrBG|NMzga`Y;k9w%z1@+KMfrbC^ItcZt}X100%B>02_T5gRynhIlLjYc^pYPp7(0 zcrr^w>$-!^z4+?gE3AEHc#TlW%BT9ywVbrDfih(KOODKKu5Z-_;YA`s;9Y7|U@$i_ zt>(s3!wM8OHK{8#ayKmPhYb#a?L-%S3B-9rSm8G6G8(Dc2 ztrlF3#GDLHg47d!pH$pvs9Bs9R{v~pWO!2|3yffO07Uu`kC|EntD5QWpK$rtRTEuU z@7&4RqrX(gbyHANDUMH)#l9c5bjsWaLsnTtY3FD68$B$giBjG7$`{*ZBnYklxEqR} zy|rcLQeINq-e+f&3m?*w>eG+KD*x#oX3d`JWp%{R#$_$oM+GJ;p!F&~RcO3gL=c}k zDlMO)Y^2As1F9e;)yaz;N4=r|{E8+s^+#%_7_aCR~$x8>chN7wfI(? z`Mw9A!<0Mg4ho}X8R|gYRoRl5PpDT`sxW$+w1@G_Oe`o~i^)`I&H@Wp?Q&>?Vm64I zpv`m5D>nG7`O*NK!947UlO2k{0+$)!bz-=94Z=I+`RPUi0eQa8T;sl4JWQ0E`R?Cv zxHUUeXEO`CP#0V^0MYI{HSydXOiY6!{s&0lZVSa+!5{cp6mu4EHB*n7{D51dxZelU z5B&&hEofU;lL3#Z{k{jn4%~dgp!4Se`?abn{3$;6@AWTM&n)NLBGrNJ(zoHfvFE&O z2nBbyFYCA3UTgP)v7GmpO0RI>B&1~o#)(Jk_@C)CYK;Leq~>Q(V=ohT@SOV|UeLvI zQuae0T+L+G67y_3L$n(AF6GKdteq%OPKYh37~P|O8f#B}T{}b1p4#6W&@bgKWk{f+ z`qvc(77`qvVhyw)GVU&&I{GuFrbZJCn!~UNCOL}9P8pNe%tuVF?XwVqq*~SD$6eVe z%PDKW@qtRtvX?SWzhCHgd9~UflMCjDI_pk(nprSo^2tvra8?UP%$I581Vr%@!k1=T zhaAeLMA47@LysK6B;}}Lt7nl-6<$TF1>;nN3%V?TTnr@tt3eT~QuDKV_F?sbmc8i7 z|CRX|Bt>@R0LlQ+=8CVb+_V|MRWe#{6dI2MH8$OQ-4jT{-SDo-e?v88gyz)AtbLi& zyG2(^i>z#eJrqwNhcYzVmsAuHPeui9a3l4De_X{z90p5r$A@`drX_ww_F|5JU1}ttL99&=e&4flQ9oUSW$n&oxFQC}XF)}@aW_b9Ks8jKsoe}Os z2BeQ4md~}p(x(Wf7fAtE^eAiB(fkTF9a3iBBD~UQK(-F>-_A1TZ4dBvyS|`tt?|7+ z;G2j;A}N049m{~jXKiKLEj*iM@!xfwjT>LP^8#l*+!e}y z@_YB7Zdj!K?Yq1)0jXs{PAGQk24S-}{Yg0d;uPI_#|4Suqvr?S6kU~gM_44uhbn5#cS<^tnaOZRB&+$S=SZxI>zLC3QsH@ z+a^_g*GYtpE*K17N+7B79mqes*!)OhqXTpJc%t1&si!>M5K$fPuM9{{TNnCXs0ZE2 z%S>KkPNg0y{kAkp&muwv=eI`;uaUtR0n-%n%ymw`P28X_LzeKG+l0a`Wqp}6&q8mL z%wBVZt+F+1xRqojuZVvoDp@$jk1nes3ZhzcJvqv+*h`LnYF^pCn)Hz$8~?Zp93N0$%s@)K%~-RMH&Z+^#4 zL_G@YqP=MLFFZ&0w`in9QZ{b9v3vKA`YnBu4yayHc=bl;Ug^+jE;ctV3oq5uKD(pZ zrQys)Pf@CLgW=Ha1GS7pdQ8Xx!)T#w4U+T66osP0D|NdXQO%B6yduMVvU?rS>WH*s zEz&@?&P1fx5(V=`pn0acJg0{E;h!fG2jaaZ&^_UYsCwo`sW! zi-hEJUN?0bJt1z6;w6WClSR|toJx5%a}+%iiRNwBQgD5`cnkW^40HCZ`cFv*x-PySqSD~~@Jszn@To(Th}q_30;8riC&b5E z-}_w=3!;+@yP_CX82B!b*;;0h?AVOVQDz_u@7IhRKcE==g9fMQKahf3Z$Q@c(5o1J zkGI-wsljj+(k9#u&X&}}Q@5*C(G>v#+cQ@vt>h?%h1KR6z zf5P;-f5S^vF)6VXDiV;h6Sn!8S3yd2&TvUiTJmfnb(r_V_h>lOg)R0mN*4Ty%c6Q! zQ)(hMTl5bl#iiez>GSKOXU9m5KUnDNEwF6OrH@EI+vqj7$OfKQ+l^dSd|v%D6yq;D zMK$5Cnep{rogeW|KIzhvQ%>f{(=TViP&w% z0T?azi40QqpwT93Kk3e6&w#avbRi)m8N=zn4AHt07M?@*Dg{bG?%_rMarSPVm$t{T>?4 zmlivYOd6CcXog`^!O^2138|x4r{Xwlt}v{lxfG4sJ~1oL=3wyJ!!Jk^Qh`_T5ATbg z&nn>^=KQrrM0@TqB4^w$nvYB}Xjk;M%>VlO>1*>Fl{QP=J!W<&StK;lu($puiF!sq zkDp3wEF#-vC36rLX<6S;uIM14vF!l^Ng6N6vX%qf)^>kHG-ZYJo&zdjXw_-#ar@9> z-P!NZUuBu0kIu^duHu-chIo@a?uC($xxTcO1c9(fuf6|KhN-ufiK(qE&9@W*4be)R zCZqzD7SI!jQ{TQAz^DN@&UOYde`>4y)GUfuKnAoMYyxS9R`%F(D6_}AD}f1JA1fnS z#u%;Q|8O33d(6=cv~_QPMEm71pY0 z`+TjS#cYQgy|C>p;`xW{`T3jjI37fvZe2DPMQT`&FshlM^Ju9oou~7%Qr?5%3m!OU z30+Bn4NJUG1m4+@{o!~9rW~guf&^ei&}CCpD?sf3^*5}mk0B{1z{Dvcp5CG&)h}VV z@(Q`~>#*|sP}T{?x^8(pHIjgJ=}-2O&yb@HQ|_YQX7>|ld`hbAGow?ZI`r;b40t;G zz$|ebIWi|w65job@X9~eqRb@yagk|O0bkbKLeB*4(4M;<*I_Q*E4?y;N!$>lH120J z_}I+PaoA738aBfgxD^Jw7Z4g7;0^8Df!UZ^!2>e#`HZGI80q1ZjQaQ6wz*I7Dy-T| zSVh4n`0}$lgm+O>n$8(Q2DWIdr3^TAw@)A=>enkZ|KW%0L>i%mZMA@#Jq36jnr3;f zeU9d@@M^Tg(wxdd?&d={AbHhqT)I}$^1Va*pICp!j%QVQr@>uqnPxra1?%Q*CWTBo zywCFy5~)41)KHs>hy0_ zzskAo(JaSr&VBm)-0g>O^5A#tJ7V@zNP~fDc~D1TU!@+pS1I6+vv!V%((xXH*?y3oUVCS1eVU2BY4wLKYC z?_PeMP7$`>Xz=9&BdzuCz!oMp(QVVxamMcWHfr|@pvh@rG%>;xS18>x|3iYgLq@l` z)#ayld~JjLeC)JvIi1g-mb*eT-0&R+iZvVljN9IvvQn;O)yLX5(XTRB3P&+cK3clL!o$d3~H@W zu%P{FlZEckBr4l$D2ASmee1u7Gj{FIXUKJ27xk`tZp2TEzk{2QmSf1h#v9XLtu7&eucAH_=l-LS0K)aVYv`{qGYYe{z?d;O5ziI@Vj zyEq3werx_E=llN9cAx1X0$bd(08VPyQ}Ds3{6(|#eq28Jc2mJ8Z4?{^S1Rni#gdif z#U6ul!Bm1f)LfC&@{q-0p*0b@dT48qMbu;MC(92~MQ8gz zOnrASoR9alUSbght9PQe=$(X!E?Tg`sv*%kt3-(2MQ_o22oY`dPOK6Vz1Qfyto=Pc z-+5==*)e7@`~2g!bI&=~lZ+wG;a?p%#R7jr6e=)BvE6d)M}LcHaNkPv-8<+q5=_jNoFA2G>H9DX#Kfvv%|5=S7s^F`FLA-h(U6|!F;#A^Iu9K(3r@lHz=umrjFlh1!r z_?P^@4|4Nizb;iOwxA8E`@^KQse&jU8mm{5W;TvK~03=Za!lbN=}VMw%pCC@Uh)2elU+Q0FHM9+aBF z!K~A?S^MK-esJH7yX@!v9_8qszDx33AOLmcb@=_N0=V!i=$`Ln;fgAt&r2PAmMY5n zsQb1xtr|UyBTWt+M#Hj}(u-w=Tu=QsCKq^~n{jtSDai0^&aItD{dZ<_KW zzdCH&{WT8haqpo=d(RW5Ev_YJe02(IOa(plV>QJG8r{;P_sIZ<%t!i_xGKf5Z~QLI z{Bs6(aHdPR>4SZc7hVv{Vui36W`gYOx%GL&>4+yQ5AC*8ELN_Lg>4 zX4hI5&%<2VH-x_OkA%K#6wJ$;=T4nvsFYR_Epk-MdiM7ALTME%3A?v8NBsMDa&jNH;tNi}gFl;RP9SIB4uzX8UrCE$v4|^>xz{dw zLFe%ZeEw;Q6?DSi-ncITYd*n}GL-#G`OPSow%e<+G zOB$+I^LbH}-HwRgv5$AZziA)52M_>sn-PfP8?SrOhd}Iv6<|Bqms{Fl0 z2M~k<@>%vD%TAY7WJewa47V)W2#FE(LDfJIU5Hhlfy_y?J|jy(-k6SU8TQ|A&9zz5 zlXU0Cdyr~~?c6!9(6;BcnvQOCt}DKJ6$VUV2#s0U?lYX0+ggX-5celIr3yS!F@ZPq z&Q($R?v~*lHhdLW7+O_7QnHOo?$gB%;}vx8%}ZXa8!i~y&X9&P;r5Qd}{>= zaJH*S3R9h?_+Y1+|1i40YqDRhAFq8ubrFd3eHW&fmR@Wm1|1Gc6h=jDdsT!7d@2B= z_T>CSHn`)^#;i=Y{m#M~LpuE~gxm%1scm<1>*dXI4ci;w+i>38S!f155~uI{um+a8 za-nsI%p0Vt#$40Cs-tBW79Fb@opC@+O2dwch%JzI4YjiB*&R1u&wVbdWgaNLIDg;7 zIu%5m>!~jarLRzX4Nu*23I%xLjLZoQzgd>%ii0jxjHd=#Jh=>+f9&~WrX96lpqJqL zm257&%|&?u*q|Hu zVT|t%IfQs&i9SM?`PQV6idXad8yDudF|K{pd36JPKVyurSyTwvIOg9m39#jT!KGI@B&PIWN|Nitp>JE*taGTykh5!FIr}6)C z9W(?i!-mb93uOt9J1*yQ{hISVE@$BHT*m~`1Sk7Dy~_A1u#_GuC_ppkzs68&TP|k3{dIBbGhdoL zlzwHG{l2_A(`e&Iwf!VvGdO640+EQnPwl0f|f{UeKh8ek17Fv##&Q<^jXxH_Y)J zp0`*Fc+3-h?=rzBdd#-{44eC_0QzPboR6L&p*mBWS0@QPS1y){X9&Pa1)(KS~Vuo$;jf}pzfwgpgiy1_F zYZP>d;7ZShvK#oAIh+LOFj@LmhuyxKFnuf#(gZ&L5k71Szj)zJ_YK>H%$HKv$?>OW ziIBTU7uakk+n-9!^#;eR<=UWoXG!*Gj9u<_Tq`}R6_qx~b-0nCh2q^+=3?OE~t*fkPUgKleD zGI-un-uLciw;xg@`3>1E3BYVVOJC=Ch?;eXiw@dV{m$=CA>GVYrpf*rZ8kNqvd6pR z;1KK|Uh|{3JQfQjkK1Tq@+)KVG>mi?{=M(xj|{DE(>ETd;bS=2&_< z&IvS%{B{y8QjNx1ZLNN9J}UU~98Z7m(nSb+Ke6dMp+`slI-vMpRLxk^p+FIT4}Kt# z3fQ%ot1QpIkjHrh46XYLtI;C1QROmgo=$q`K=rm-$Rh{?p!^2;?OrnW9FW8R`gi55 zCSnM9zDUbApRtUxVM2<^mF;0phg7OpAbW2%aUeQG22l(XHNW%9XMddq{W0DHHUi2W z4;rB??uWkJlXWQCDwaw&D}N z&|q47z7e^?R{Wl8TvgCLPUa}+h3S3XusVG%dWf1?rsIar5?pC(?!57Ce@^`iagYvA zpK7W)HC3tFS@0Vs;nL0kWh2h^5pd*qm)=z9Q*>NUZcj^FV81E=R zb>cp}wE~zEE4`Wut?3qzbIz=ur$0|SY%FeFC9F|S8bIv#2zYM}uG>e{4%d9yBD3Lr zQmL_2%=|NXV8H%a2O^`eW`cmfwPW|)IBvD9#N~vKS>hA+#jYW9!nniuzGmG0hHC6%ic>swulSdeEOks5)$yFB4&G;CHFRMVSzEgqNp$8+?VX!gBkO;R3^Jn`g6gVrJrTP_8@Q7E>dmj;olMkF}ouq?b!= zWa1<&F!Hr#!OtEAPZIIHtY(j{8*F8k){p&&Gie{Gu{*pr*JF5G(2Om!U9YV<;6C9u zT)%FM7*T3f_BpzN?cPP)=Se7J%GSAA-C>h&ue~Q2amvQZD1oBLB}80%|L)t*H0nzO_E>81lD$=zDX@A}@Ul&TW9JlBU&Yd4SBs_K%L? zlwUw3iwjfMB7Xuie{r=H4tBZA<8iOs_n$mUq+C06>EEq}UH;*a>+V`P>SebSa(6@D zOc!<+?(jtbkl8dHP)Dn!3g12`8SRt+imS}(`#McK%tIUq8t~N(K-t`xpMmCC6DXvL z0EFhdg0oO`YT2zc`yf%)&h<^7J+k;y{^;2q5ai_~N4^hG z-1mn8-G=4hTmoYY4P#b&G^xp$SHE&*T-v{ud`^7#R)zmwDGGJg?%!o4h$CF0!SKHO z&b}emrrcC8zRqdB!HHbS%O7hbkEq>-mm$B%qJAr<;L^CQh3G)U=e!~CgDWbe;}7qC zAI-I29Bu6tChoD#B1T(oI+cJ4`@n!cvOz+?ILxSh!s*Aq-4TnvZ!M-$S@{I^DR3@6 zoXoVGiSA_1$b>OlSt0Uqp{Fni(WOU=ri~442+1EdrACqPe5sEYUd(4EAV`B$Waj{> zWvzT}ayAi2OhQ&Xs`hvO;W!5Dh`tSXq#1epEKqwXiQ#f>dV^vnG(zWUsO|KJ6i)zg zcb7h>`-xW*NZ#j)(D&|TwDyy)a@6e&s}-(EcX~l^Z+1j;{h!1nl&X_&Zm^0wwTo*V z`CaxqG%Dr47lr#Bp-XH86==2?Vh+73!^R;Xw^HGK@`sTsaw&UK+-Lr$#f&vzb`%PZ2jJxjC zyL;rf|NxszP4_Gm%&Cf0E}$f<=8MnI4kuXb4V7!Y|f=zN;Qy5pw%+Z+BY z`5sU#bVGgjdVXEw@_n=NVu1Iro04&)63Lvo5(M6>iKVx$O4U5Oo)v@tT2G1dFIA<} zn`oW5dL{Q;sA?v06b!nRhLr(QopgAPo7MKF)X_NIl=Ih}Ne2Ja-z^mcVP{V#Q<#@& z5?y#G_pX`Gq>Aqw2cD&BIlDs%0>skOE9mX%Mql&Z6bF+!ChK9cYE8_?l)Fl$(C83L zP2H~Zjo`DSf}q>4*nwkl*&Z05ej!Rs%(GOKoCk%;x@?h`$aP@^a>$2$uT{`M&1mVP z{AJ_*r^LoyApAT@A4;KW!43@2Q{ZFF5(5E6oM$4!Mub-g-?$p^bO0sOsgfYIuR*vP&e`2_5+%v`r5gr&z4=N%C;YB)ogI{;L*7Y4{3 zW(Z&L4*<{l6!aqwIyC47{j-@u^fo1MC0F*tn}9>H!2We_Y_rguT#TebJ**@H5F~|P z`PGoTQWLatTf?seyU*YQdNi06Kcp5?TB6Air{vdHxn1%0#DtyUbcw;K4)dd!zvcx6+LgJ@7Z*-71g3IMqis!w*KpF@HEt%_)|Y!JlI&>S`8$Zl?s3kK5~rqyBwNBxH)9qYhyjR2WI$K765G5#R1S1xxb@UrJ(6B9h6E~_;d30C!mY4)jz1?^az0@`bB|W>Zjv|(U|(b_cCR5}vx@l9^D1}X10{v? zyk0R$aVl-9&O6PlAt%P^xAhOL;oL)OI8PsV*v9gW3D1rOP&dfBIN=QqQ|{tGpbtDW zs6;A(BO(-ThonA}FZWgz+Xg&N+C=nD5t1nyPeJP^)5^vxx+G3RDk>e1v$CWev8T4@yk@ZcJ?S%X zgzZ-EkeF`>C?o= zX4!Jn@CyXG^^LwEIqvg3Vp1|H?MU*jvAl(fc) zxqsfASsEN?uOpJF33pT@OLSLXyiMhhKe1lV~8dVFX{h&&putln0F`ok+5{YheF_bAq9@ z`)>}rc#al!Na5O{2EX3g(z$oW*39}G=F*;7bd)kwk;_nVpbRtt(^BPqS&I=R_SC1%1zM0qb;6RRHZ z^hnzxyiw#oEqw7f{2f7-YXghHRJPfD@?e=%yOnF9TCoS^o;T-lS?qPWr@J?^s`{-^ z`jxTa)UTLSS`vMprekvAQl<(f%)}~_XUeQ)`k3{O8~m^1m$eevcvYdIXT+Mxd>opF z7CCr`o6_4X&|xS*{J)rX_~{fAy@qAR(h<>FCVHVjz$W0zaQrh@!K;s0!QjZ0Wc~Oq zp)Kx%-BOz~5DMZP4^5$j#J|OND(03XhzkIF0RqKH!^C0-7y$DCm{rfLUeme=e;jmuJ{gDZRwJmv@PPy@eu8Ar{kQ{vLi4=MLd(i#=|N-ce0%W`U#}+EV%jc9 z)q5qB61;ip(Zj&@`chEt#ycu-a2VCGe$;DDG?s&wWc?n)>EF&*LGb|4$WohMC+njD z^;fX%V&0`>g<@+?4hGM1_o`@<4YM*muMHNLqH9sE1qv#6!`*HVWJ?TwDu5*l*6~q( zvE2T_BKQ;01PNYYtR@Kki7y8TV}=huqXB8s0N9H2ua%<5PMuu%^

DWGr)?cGNMxtr2ni&rNgut?dekw^=cu-l}alYnBvCv$F4+95=ypWkm~wl zOVQyG{hxu^O0o_7Fa1xMm67DaS{8yHldiv^0_VEQ%w4ZIT9cbK7@FB`5Rkl@F-NNF zZ7zYUfh}2!H?ES}3N{v>fp(eWIKAT0)0Q*+G_tkKpguQ5&6}GM8#VrDu8BYG-@AVszgBEo0 zkv~t>yo~N@WY?P5-Aqf|vM#IxAaCJGTQ(i*OD(nx6Q}n=YU~GB;=oztoTmtHqt(}U zg=-~I6Ih`$T($BBL)%;9gDeKxMqT1@hnOKw<+1mmee{AWHq>p=mxFP+d!wXgh}Yn@ z#s#^lT^=?^gAUc77y}v(?h`A#MsbGTGYy&`aGS26z!In=`=!L(#BBn-Uzi{%T{~;7dJ?va60q;AeHxJbk zh_zMYHJk+n?gQhsrmq03ik6%mSY=l&YUV1ZF0@OO`TYGh0}%Au-v6b9KVc8mk%lNz zY>))-3;^6$s%jXMIML|!YrGg&aq2GNn`|}T_yX^`8ARUvTG8-s!OjgYBi3Ln5Ze`c zvRyF|IddUcNW35l`>U^Jr!cS3RK*Sphz&9pl^|f(d4~nB>mv$sx&6`JLa{H&04lhl zJ<-2pG;6`{ZUCz?`);TemgoP?ysV%T@j6+s_B^|JZ^#h2t{{#h^ZM{6*Z=v5aG zlGcd1_YBP^`F|o5QuZkXSY{c+v6qlWR|sU%OgnYQ70F)R~W@EQXC*MTBRRM7dA3 z#|!l-Z!}B&>mG!T(Vil6SqXl(2bD;&F?afqhVwYKv1ihSU;+KJ$#W28-3a8mLnG4C zM^);L1vQRPSx)}vHo_e8e9z+OUXWWjh`qObQ8vtx0MzD)y{`#w&P8I?fxZ_^3G>~; z7T!&kNIDTK1k1{#OEJ0#;C)latwF7|e>+(^t=?1r;yuB#1T2+%qa*~F_dF`c3R=7q znVX37)4OQ$;hU;4WVfxlFP)OLEC$_?&(-HU?*@{BxkDcMR#+lvffiQRpJm9DZatHb zf4d2Y>B=hyJ|DP(AU~uZS!?5JGQ}}+-1HX=PS6PY&iTxbW%$&iGWHfN&dvNc*tR8M z7`W2tiH|V`U$W>3BVZ-+#WsHQ`(;{6aqy$Eu{S>LmznLBu23*vJQ&~;PMgDV9`;?ldMf~PwTkiNn**%I@ZXY#9%Ym+Wvta|M&go z1CM4_Tm)Pk&Z?yKF_kVu+s~P~m#O%Ds|SfLxh<&n_&)Ej8Ui|%D~=MT;9;zKz5#lhuky zmxl|suKDqbNPf{r4na=m_Y&_y!0+DqFni76qwYCU3 z|DcHL-){wr>UbXuiyfD73=xqAn z1O*nLg6^u|z$wcC1WYL`Uky15aIfB51Q@7g)rbf*4Y3Jq8Cz|C89EX)%nV&@zt<16 z(YV=a$Lw}6Ophl2m9+9G&HnqOfL%Scoo!=^J%Ls#j#Hn#pM`(5^4g zN|r|zSyS-@>rbYeQ+i)p#8mvlR5ikXDzfOhQZl?F8Ri+m$<_UBmQ%U(B;vH_z5;Np z8K$(Q_JYj#mfmqSX6FAYhuEd)o)c-;3-T3lO*e&#PWSUsWk9#@9l8+K_*UEHD2cEZ zD|HcS^DA;i)2HN}{*lyR^lL6ug&49(;b5WjQ`#$JPZqG*m z8!83XAi%)+i{yVHx^eTe8ezOVQ-ZKoQ#~XYq_g=eO_M0U0PI6L0Rl7OxDfvo01N#< ze;7}3LY6fEIEorWD7t`7NTlCDUuS!!9lD82Z_%hV$Wi)Zm&~z7jQe*WrVQJ z+?MVKKAVKRy=wtd_ELapZcgXSZ>1YB?MuAbyx>#?PM&a@Jlv=v^2mIX0ha8vX8XhY z(=ny6C(G*SY9T|ZJ>@qFz&(vT!EYUf_P0t4?5}qo+;p}pa?TZ#*aFxp|0pP_NeGbi z))x;C(yu+jjvy(Ao{RVja-X_;mQJ4wbBs%;l(>+FJT{~Z)K{YZew8`|q0W4(!`JZr zHw3smgwA*MR>>|u=#RqEJBQvD&@q-_fic0 zZbN3@HehfaP71a=FT*AP$U5B{e{@E2AqD1j|CR`pH&$*B8{I$L{H)d!Kz$eQ?cpen z(}qx1Ge?tOGu9lBH?y|BZmpcf^62FV5@wES@7j_4^r?=aR5m7Sy7svf#xE%w#JLqr z>AR+V>X6DHKqW};nqaubvJz}_oq`IzBd5>=?X8D^C#;3sw*~=H3F1QtnC48-{dzS| zlcBCiXj5NI@mA_g;%$DMTSJXV=xt}?LF>%doLla(PBwTvXJ5zO9e$-+KSL0`$DBDv zj#%x|gqEg8#z-ncE2hymH#QZj9kWWZixm3Uo%@sYRbT4g*GMJJn9u%3Tij??!Elwi z7tu?$@T)h&@!SPwtq^QUA%7XzHhibS>6?25F=RE*9V)3pLX~i~!c|;)#y^Iwal-+7 zeJhovwJ)ui@oZb^a(@QmaBh}(p0BoPD|Vcs**YFAf2zILeP$tGn|ldN?LMdd9atYU zLwq0`H&O;vKlZ95FVKIJYNFK-{QPjrs^EinOrm0w15YAoJw(?(UyP(ZDj@0GU`>ub zobVoH*$KASmR(sKvOta+3f>ducwhCJb>3V#wBO5BE@QwhqAd7xTbeMoIA350`z5r3 zp++1oq%!PEl6l1L8kfp6H>vzzmod_R=#Y(EDpKteN#Zpgw*IyMiMl{Ndz0(iVa3<= zb7Qb4<#aFphH^6kulxOG9|57dtK6o%qyK0}=)$klPg9%I@X{DH7p<<$DOBfgyD-LH zdzbOn*VkOUG&LSlDs5jR!_zato@8Ns9AJ*{ArqqxX)tv!+%+ zz!_K`U_Rb3V&>B0^%m+I>Egt%UyBRJoXc}zM$%`Uqm_AR<1kPmth5OLHy|t>pq>*^ z0fxdrN}0s_z*4{LJPnlc!IK1>dNiPo7Z`_eV%t^RzdERVKeIc_q*UQrR{y>gFc*q{ zFbWbkd@$x{5}H`lQZXkZc?_6z+#b{!^EWM%Cb?Nv?{aSxberGMwbPBX62C>oeK~Mi zy3tI^rUr+6=4+km@>=jn9SphU7x-Hk*Y;OJ2w!DoHSaIRWK_@OTjMkXp)npFQVZGD3iX(lyo<`k%9(d^%UXzhylvRu9EiB9w3Grd|*lStl_ zeKZk}#If1zBnZCzo_k5_aHRy_f0a~TB7k9|_?^hc&1|$eY1BkA3n%Qeg>kZkc9lc6UZunU#t<7*_WjcwaWrSe7CiAMBT7a9~ z?zNoS*^1ONEVE2NA#tHG8l)g98tY+|tbY4f!c@)$1N3W{zrE{`|MCDP`>_79AP0`n zt*|gI&dOt$t7ztS?q*}!_le<8e`7as1kYvIE%yfmrvf{%DVeZgg<)1ko1C8`w`U?O zx5t9p%=1LOzsjF;2z7TnVbKn=ALYM>YMd30QI#Bpsh>r`aSQNnURMTLNX>i<0M=4V zoECI<16y(t_k`cESc!{ij8Z>yZ=1pB)%R<;`nZjjhhCZWkF#oOOYglKt3QcN2+jm| zlpRh`3d;X>3~h)V6D=L1J=7#PeGjEfTjSdLGtOdQ7AiYE%;vs~l@9mwIr++&`%}8p z<-M}Hd1cKtsdzrLPtFq4|wdu9OI@?SNf9(YH!A3r`lf>{#!cbL|A*iDD-{Ko@R*9g>rxwEVQM zAv~L!Be}VBp#+YK%#TyX={#Qh+5T^V04EzfVvM^-xV?rDm=2M=eO(Rp-?f_B9JVve zJe4FGPh_6-_}Ok(kBH+-A0{vz3%tUQ`_7K+;=gMhJiLahr1K;+(IlyIhgJKhc?}*V z2fsQsMo#)>yzK09iE9D3%d5YD%kM@Cr-7w)pab_C-gPW?P#F+(`N^n74z1sE=9iTt zm{(d>Zm(o&0skUXH9;u&Cc)N!_8~Hv#!1DWLjC8_( z4H)+WwUj$-i0r|y=@o!Jh<#;p`+>7Le!wIU*Yi`-_Y!Haeh)d45V=JIYiYrR(s(4` z=Iv_-PDag#t#=9RTQZlmSgpSLnqd3b5A+@^fN)Z@#-_uRJjl#Ip_`Zlyb{+cBcfP-H$s0%>TkY*|5Q+!gQV$Ibg>S>Ylz6s$3qF7 z%zdWWa7~p#ZNJedvv(W*>kOztD<+JiP+D*lzS~&!ML?p9QuF$@vyjeXGbgmTgcXb7 zzjn+##f}jpP3aO>m9ZP&AOFVbZizn}a1j{p^E&+Dx>@REK@v^7Q2O3(oV3a zkuGb#F=+@db|5hNd{A<@>t88YzA{S5&J;;fQh|x*gd$IK!LR9lZRuj~?^$kt z5j1DGp6Ad(1I{RjV-r9G&LXFBr!l}|1-&F{OOiNuugE{u_>5-q-XjkKatCcN_aaR7 zOJTlp#owm+Rm*fz)rTHYHH!#+I-MGpzFmq*u*`zz_f{Sv%07G^=^cC{AnSFQDStaq z87HwcYsya}2oMqv1Ja75oJqhl_9{kbIqk=psL5(WHFM91T8*zp&fO+UA7+-$N@~Q? z1>W~ou4lGL!wNln&RFFqh^sPG1BBd*7zU9aZ>E@)8g(%4oqk@}SD-AGh{H0{+CQwm z=K7d0y>UbOLmYjs^m<9|c)8R5x*;38yvETY%hcNO>S)JrB z9q+R}V4lT#7^6tRZh{YKb--OuJ$J7W8|1ALws?l*U}sCsNUh#Pf~$ zOf3DH>`(TAZk?5BdXTR@&0UzS$>!Qn?s-Qi*?Ftkaa#&LgVK9#bH80#|AedMo9wM? z-tb}SDk8t)qVh*pLviYtAAgCf_?v468e6*Tb1x*Q`BMtWUP4!kM@+Y!M$S!VHl)Nx zECM#%+ozttn&3w1+Bnj#HYtwGFWmA8KJDWSd9>*h-`z~-;nKy-EZjIul=`#74r$Dt zlQRa)RJ6ex4-Jqj-n9qN4H=056IQPQU^T5xN5|<7uuW+JJ`Ittv)g|g3`2nbHqn7| z3yg3Jc~LZWP?E$5f^lOx@>fN`exnv(r5 znn#a}eY{R&nY8=)D9o@eR_x>?--PP~UBcqTNN_MtG$&HqNL@unfb;Fn6FKjKFk0vo zu#(uSDQvUau#G*eX@~kzSP4D`jXBT#>T4)4kOu$1N0TJj{4sa02Lz@od@~ywY3O=(hnf%tzvwH8=~y?>L`3 zVw2`2pWb2hK9ZsQigo#s%Nyy{3Z-qcidc`YPcTw9LC!Y_KUupCz*8sj&|0vDjG?(h z2Ou37ZkW7TlLYQU%g^B}QSNEl;@w;nd%=5WU9MU3YUpn42z>$xcO2l8%5aQ+L#%PR zpS#37C>7NClKPiZ^LkbOi|AEZ-8C4j@R2FCh=97st$|!+{9@c@@J+?HFa1JV)I3wc zms8Ku3Mcjm_?i)s<&6Ri6$R$=3$Q~71*#Esc&Pr?dmEb6EnPOT340BX4;g7*c!$|2 zoemeI`lxGqz5GkPeQ}>~4RNTnSe`n2Il=ql<0N{7=8eV-?*d0E{G}Sf^J3Yo!Q?Ma z^YZGDK{Q`#_W`Wpv41~9uAK31Xt(Y9QDcjKxJIsewo9UGyaIf;FAO1B#?#Et$_!P z$|phh1~`c4w`k(VE50|9!Y(MDrf_SzWf1D`O($X^H6{ZwVh zN>RJDX65Itdr>E0lMC#P-Cx|r=|@K5?jO2m*>o+SKx(?++|nfDAe z=rzGDu{fnG=11Y@o2UDWrMESoo74&_-5opfjlQ#c%kq9nQH#z;J&H*ANP+*DR+&O z#rzg1#RkC%^%1qvb4=h}_{TfPho=`g$P+DOCox|1Da$WEWw*(((h0>fKy(mlxqW0E z{m@c1K`FC^&0aw=&}8C>CfM-Kz2L*)59j$mc+j_=#?cA=H8XwD$Bo*=S!+pDXI7Bw zNu*ypqvquvp6b6rQp?$v*$I+9_iZjw6M03ALM){V>_q0%=Xy`4^Mby`8pX$~<>1q|wX{#Bnu6}+Zh{VWnoPTl zej|mRTWDQHOob`gwKi)Mv{@M(6M;{^Cak}zi15)jkNzo*B(rThYcM$G4>)_BMBevt zKfZ^D9Dx=ycIQH75prSMuVuBtYPrZ2_Ms%oQ%g*KqS^%4wRpg&QL4m3Yag%2+~W!B zhT7YEp^EL=etHMjy_L`3py4)TR&RXLE>yevNMu<9pSbB4wgj;x3(cwhLUG~c+*Gao z*qcCIkm$qA3Zy%kO*64*I7v1MH3|5c8v#0ZNe()lOBLr@S^d=LrK)RV$ zm!DXliKiaN_1mgWA|=ujkHlvEz5vSFbanHOuzdov2G_CcWfctyKY@X8tkyGSJa=d+r52@p^T7k#X6{w?vH~}h^rvhAG-?pi)Y^qWc zjGm)lRU3h~G)s;rVGd3LoEVLrMps4B|MEmaTo~B%D~$S$fBZAQ1JDCSI9I&hJ z#U%QZ_)h-ZjY)b(T13|;9=MTSQ#YaIKRu}~YWyv3s82_Y`>c`$b%yhJYPqXb^xL_`u+waehb37JTP*an1n@t7T&EJ{|q$}!(BQ;-!wVbQ=R2Aas z6tVqguQqu_#3K^aN~F1OyG(k)%R)F9T%GRm=H?}LzJ=tiUWP8x1=qa$F2KT1v*!6T z??r86g5;s3&I*{L6e{9btq)U&$M^nov1u&g<36(AbT7G-8y$Y2`W-remwC!FAT3lB z8ktqjbU@x6}i( zQkcxb`OBj6ya-QsD0F#fyRYeu&&u8e!N!_rs#C(+)Y3JpV(~|PwYp$dyys8YSwCP^ zud9BFw{*73hbD2c?=;LnKJY@?@vYAODEn`~`uTcT_0&6sEGgKT!aMn_)iKVq4`t_u zuDdy8r`LNlA4iJxeU0W~Y=Dx=HR17+HL-e>dGU<~yUc|OL*O)&}5;8J={MjY!FqK~4HFRM$ld7S8Lqc#cZ z$-Kc&UJAu(bt;HH110M3P|vjltod>S-fPt&R0i_Xw8(F_CO1@LurGshJ`=fVdIPON zXqqrmE60f1%(5JFdz`(fSshkE4MtMy{ryx-mr0SCxy9~SandF<5H4@u2(qHxzwrYq z4s}SHq(bMKJV>J|RLzo4{mO~Q&<2`*E4L%r4PuUcI$0&D`-L?kF?m9=xrS(gz1@)^ z0TFX$6Q=02c(F%Qx%%4dNH<9*8hyN(KEj`rD%9p8aGYi4ZK{D*ZHYG8yM_0H#T+wI zB=LM=`(}IUieGitZQkLLoe2i|S2ir4eHRE+V{Nxgh_cR^`J{JBh-G^pZBY##*%t+U zHOgax&SDLM28>9Ww`}khr15LBpxc`+{yd7QH_knB=bO-N-CUm%Lpw#MN8yO=-^&7u4k{l6W%d%Grbmm10QQC85Q7%aFOsxbK(1t%w17?bLY`)UA2VN_#dw zq0WIW_ir|PN`gtD?Vt}+7deK)cJ;tK&-K%1f?*hB`5EsFXq7iq(;u?6pvNF4dFrz(o7J)VG)quZlwSLj;7a z_XgUAb1(#iE(8)^y&vjs@7A2ygI(;k4W$k6=uIj9Dy$XEQuil}r4SLC6Dcu|=Du^a zN%Je17R&X_PVaoEj@I!FZiLtNYTuBA^G2FG5&mCJ9>aSon^PjlAwr~kK%&3EK)kA^ zo(6dL0>~l%6!#juw(a3Oj2_Huj#Yh$K$j7;NU<<-uB!Ema>}&rGFyJBF^9JJEYu+rxVVRC)9sxs5`K$Xj_=uPFN!p6UCX6nZLT`^97;L z<7o8h`gc>+G%lJRw=twuZYnGjku$ysAbJ-wgS$d$eY`>un|`d? z9??rF_Z5k_N_Q%Qa|RMp841Nd2wJlStxlF_ruK%Y7mDY9?!&Rtp^v9czGOR9Z|$VsvstDTwF9S`<`^XGc_;sb&S++T~{kPZ{=qDtE| zk-H_s9XW~qCc>ZjWRgbF$h`;{7hI5W{Ci^vQ2Td*{u5B;G;MkDAb-*g3miiUbS+YQwv;Cl*?G4aC zr);Y}?Mm%2SNF@X@Z-{t-yj*B&0b>^Cs*^NvwUlIRWxRj!s6APi665N9s!}shZruY4x6P)uJ;XPPfyVc?)jHj$t3wsTVP91R z{q}rWbV0UJR^$J;`l_g?zb{@9DUp_vhM~K=K{}OY0O=4A7(lwaK{`jeyHn{Nxn@R*~fbZ{^>mWn~iDe%iS&!z@4+Yz`9p1Jvp!Z;jM5Ai&owU>|r!A!-<#xGID- zK(!Y;Xg~S6BLIc1&UYM#cmm6|^8&!cAk-cHlMP}}Mq*aEA}b_Pyo?$%!%Sn<9PIj- zNa2fxH2YN=03=0NCotI|q!U=b$SLMp>uzqp<~o!a<(FwjM!WHXA3%Tb65Qbvjaa$Q zEJonpGx$N-NV_HXz#x6`E>BuV4YtP!Puwn9kbL~eOo>h7tJSea`BF|JT7u(pQw~+t zXG*EkQO6jK>k9)`m~u$nc(pk*pQHRV^X^bX$j4q1w&u(ut9QWCSfy93_y6Q>R+FAs zrV@v{Jr#ru<#l)D--LpYWcGznFiF0zpadWt@r6V6F$$7~`1)~4iHRF&&_QHYL`klu zo5n+P zU==|nb1h{e2?aR2sWbrv`~)!jya(zAzrT*DOF7*F=P`6)XOxR=Gc`%CcMSr}%`1eR z7dUjYP{B*N%jKUFRhBo}E^F%D-iXexz*9{jsb#t-Isd-V8)y_~UEwC>UxPFhephNr zcV#+s^j}f9_3pGMwb3b3JL{D>{ZeD-E_?F|?vo~+*N1(d-*mgPr>hCnp zZi>eeIbD3e$1DC!(zRE2O7hcTy=ldlHlz!A*(o+*jh`w~BP+{@N;8Tx2s7gBC+ejF zoiEGo`kw?+VXUWHVs(g>E*dGYLa|wjJ*C0IU^bTbjzFx1y%P1jLeKwxJ0!P>I=1a( zP33(wp%9!fh(d1O`i{$E3 zT}iiFKFvBTg-Ee7ShlZwqcXR|emzF#tj@WZ-KuQ3T;WR}!}!!aK_iLanQmi}9YHiI zyy=}&8@U@*9u3Z-9kp4UF$P6dMg7AOpFwv9we zHL}jEbWTEbpE@twae8~(GK~@ZZqHTgj;ehThvr6*v0Wq6M;s1uBDG%Qdj>WPp)>Li zE{?siXm_I`Bs!?n38qqWm7sJ(x85aLM>sqAM<_Cvv24!r8+Vu=hf1_xN-NA<4OCg* zSGbd07bTnoruXjo9@o{X8!wXAOO)s_(4)m-7~+4o;_lt!?EAE`!R;|Kw~#4fdj5;f zV1{z}?aEB2X~j#H1(xbSf>QA6>IvCJ?=E)i-wYe5;ZpB>Z}SpWWQ@lX3Ypnn_YKEF zNM+g+!i%2GHWJ5%2RX73w=zMMt7e(+RdWNZCY^*+Y=44JX|QAt}0O($+Uq|D9JU2?*KRH2` zoU^Rh>M#u;{AKd?#&1-$L-0#CN^h*#tvjVs82@)s1XTmc>^?8o=v~e?26==C<`mQ< zQAk+}`xuFf7V#C4g$5tTY;$(0Fm31(YizIoO38ur1ljMX%z&n6A|=QBsKvu3(c z0}aPjDe-oXEV;MBt%m(K_HAe{+uzse_Rf4Z6*&i;y{6W2B`?grB#PpfyTeK|K3885 zuM6`gcPx=XTCAKHoQI40n(tD-!RHoMIZ5!C=ysV*6;eHCU~W`xzm&#PU%;o9B&%h> zurW0uo%Y<}v78E)-<0LHg#c{+ZXgUsp!7vlYerf0*emRdTojuie^h>Ap7=ao;KqkaSRqH$JhY+~|A*Gz-$ zK#ItbFkJu%SN1|CO%@he*HqG0gaj5fK}L63zYki3YJ8n8t^)xnvdxlj3SYbKY9lk&HjT3G)Z>7=*7`cl9x?TrzlC!Ts>0OVlQLMf6;?A+d>EQ6CHrLPjh3+R3EF&%GVe9Jn zeMSkjfAv+cohu0nx_%q}ew3FX9{$ik_eaMt17qHzxxo3@QL0(#yM(6|>gKFdZ*0NJ z9HM+o*lnibp?eQz1R7c8)`0tQgLIQUqQ(;S(&F|)w^^b*H|M~wDZhK&(Weym&N*`r zvLW_RTMUOTB+%Mz3?*4UD*sU8bUW%S@VfcJGL)IRl+2&y2uH&46{UpnbrZkdQ;zr9 zj0&=rwX(T_6i8GFE?=Ff_giTj{dKl0%t=PRNnkpXSZbgQQt&!LJjAzSCsoH_qJ4wJ ze0}TqNiOABHJ>6gRMK#PUZO5pKJAaf=SyAReI}XyDzPT%tsQOjcLkG9X9T6%QpwW7R~@9Tn1dD%XyTkxmPiAb}fQ}6R=<50#!>$*QzmnH{Mr69-PVCht zJ>AIlrr?@$P-NsR)gaAJ7I&v~Enl|G*fEx&@=8@zRbOzWiOke_L12QOCO_OpnJTPLTRcNvE~e?#RZ9c5rfmvr($yEGw1Q@7j8!`uw1 zg%X}~&gFQY*=5vBn}aaH?}87dK)Ff=%t0oB=6;1QO}nMe_zC@4j!(T4AyX8rl=@a@ zIK~?4L8PT68LN?_?~*O2(JDz2HHiwlG`EfW`#w;4Wk zt0W{_FxLC#j7eAj2g_~tGus@!52NT;w0gn%-6zSoc_E_HafZs>Ao6N&&w8c3!jUw` z9_wF_g0^s1+)B@$1jX6eO%fBNu02Zo0dNlGO{iXgqmWFNBbpf@z2F%7QtnRmEvKL8 zyny7s7%dFV|Elu9B6+KbpTFd->&&0?r>}s1`4yug5pY=CliwahUA}9vvy*UVX_J)D zkCg>8>;)=n5=yn1oMEp0(Mz~EBx`HIxxxgGNdx%8T5R}7z=QLb@os2trdna4LF

{8Z8XFYV0f>aFy(_0bw{2q^J!i4>7M5SD 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 z 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 literal 0 HcmV?d00001 diff --git a/docs-src/blog/bharatmlstack-history/post-three/index.md b/docs-src/blog/bharatmlstack-history/post-three/index.md new file mode 100644 index 00000000..ccf9fff5 --- /dev/null +++ b/docs-src/blog/bharatmlstack-history/post-three/index.md @@ -0,0 +1,104 @@ +--- +slug: post-three +title: "Cracking the Code: Scaling Model Inference & Real-Time Embedding Search" +authors: [aditya, jaya, adarsha] +date: 2023-10-21 +tags: [model-inference, embedding-search, mlplatform, meesho, bharatmlstack] +--- + +![BharatMLStack](./bms.png) + +## Cracking the Code: Scaling Model Inference & Real-Time Embedding Search + +By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained: + +- 🔹 Scaling model inference without hitting infrastructure roadblocks +- 🔹 Moving embedding search from batch to real-time for candidate generation + +Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system. + +## Breaking Free from the Scalability Ceiling + +### The Model Serving Bottleneck—A Wake-Up Call + +July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment: + +- 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine. +- 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup. +- 🚀 The results matched—perfectly. + +That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: + "Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results? + +- ✅ p99 latency dropped from 90–100ms to 30–40ms +- ✅ Triton handled significantly higher throughput on fewer resources +- ✅ No model changes were needed + +MBS ran without a hitch, proving that self-hosted inference was the way forward. + +### Scaling Triton on GKE + +This left us with two choices: + +- 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack +- 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance + +We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations. + +### Fixing the Cold Start Problem + +As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up. + +After profiling, we found the culprits: + +- Triton’s base image—a massive 5GB +- Model binaries—often 1GB+ +- Startup delay—mostly due to downloading and initializing these assets + +To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother. + +## Embedding Search: The Last Piece of the Puzzle + +By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system. + +### Choosing the Right Vector Database + +We benchmarked three production-ready vector DBs across key parameters: + +- Milvus +- Qdrant +- Weaviate + +After extensive POCs, Qdrant stood out for its: + +- ✅ Blazing-fast search latency on high-dimensional vectors +- ✅ Efficient memory usage, crucial for in-memory workloads +- ✅ Support for upserts and soft deletes, vital for Ads use cases +- ✅ gRPC + REST APIs, making integration seamless +- ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.) + +At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs. + +### Embedding Freshness & Real-Time Updates + +To ensure embeddings stayed up to date, we built a dual ingestion pipeline: + +- 📌 Daily Refresh: A bulk pipeline updated embeddings overnight +- 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes + +This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds. + +![Skye](./vss.png) + +## Final Takeaways: Scaling Smartly for Real-Time ML + +- 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services +- 🚀 Building a custom Triton image reduced cold starts, improving responsiveness +- 🚀 Qdrant-based embedding search enabled real-time personalization at scale +- 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations + +By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead. + diff --git a/docs-src/blog/bharatmlstack-history/post-three/vss.png b/docs-src/blog/bharatmlstack-history/post-three/vss.png new file mode 100644 index 0000000000000000000000000000000000000000..c6b184753f83780b7c1d021cad9b895798429772 GIT binary patch literal 244203 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%0Aq{9>@{469ra6u#yW6s9*92 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ΜH=h6o@3qrv(>|kjKVY$XW&6m-tcEGL#D=>qp8EP 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�P(8dKaIa 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 LR+cK4FbVoU1*mLz literal 0 HcmV?d00001 diff --git a/docs-src/blog/bharatmlstack-history/post-two/bms.png b/docs-src/blog/bharatmlstack-history/post-two/bms.png new file mode 100644 index 0000000000000000000000000000000000000000..b397fc8825d633167b4fecdda172d84233d3cc9d GIT binary patch literal 197116 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/lJ*L21_?o)=GotrRu+|nH(uFql@ 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

{8Z8XFYV0f>aFy(_0bw{2q^J!i4>7M5SD zeJ9^wL`GO%c%} z`j42|FZiHDyYBW+ChbeGi%_s=4*^cwa+|hhY!DloLZMdo1@mC55;Gzgd-<5p>Twts zG#wOM9zGT&ai%{7}?(T=GAh$m^m*s3`dcsn`&{74KT)Xk5oEwPI zXJLi%RTS^yFa$jq-jt8o$Ypd_RIe=ddr>ZfH1|bsO2$ z`a7n0*iqskQ>rWxwO5&y?MHMXVM;EQULLNOiRb$V&}QjafidUfw@ZSNmk)TkH{a~V zw;gKAvr>GPV+>Ht<(4NRcN&?c;kLRKgwznNtTr6CMV!PoV?m1GV|uX~uHY(E8=N+M zxr-P1y%8HD`BdYmXMs`d!M?|s4@l9HEMHjDC9(XjjKv$h9Yr24>1fi7)x&EiimpPQ z8XVd#<%YQD^7t*@dimW|t=Oxjb9&*A3Nb7%e_olNGDy7tTbg29h&#N*#B%?+7h+Jirygtg`Z4JF>O-9x{SGS4T||{u(?VSQd~vcDx%=utGakeO11S zU?EvMhOeAFc$qe#h`+KWAcJH`QNWz({Dxt-@(Gb#&MVw(PiKn*emazj`&&s^)e%*2 z)-V0`g!Ag3rX67f1xv|O>#aOjZDFzlS5cD~c^di`gc8?}TTH5k%XE1pGSO(qrbo^q zyei4!yH!bZAI1nnCypGmR*bTZzX@k*JK(e_w%`9}*8;EvfBqSk)JXX_J;RdvcbkQY z?(kzm7Z_5tJN)eZyf9=Ovr}59`Ab^LUd;UJk;6lVyL9e&n6qYB&NRc4Fa(MvN(AV# zi$KSa!UCX)JK417H^8D5c3&G8a!%f{oq5_}=7E#7c}n%s2W!Ior-dPf4CC@eyBYcI zhC@3*hqCE=#z+Bk{~e_%)aS+s(Om)KZ={t;SQT3uB{;G_eAZs&C$|n$JgE&$uPmYe zZ0BajWLncf5~be$45iLba#ZsE5ms)x)FDH6v(npteO;qOMzQA3W)TEj?JG=jww@tj zq_Lzff;!i^!LcQa30N+dWy^)TJlT5*iER0N@bFHh0I_^fnXCxlgC4#m-m2$$6=?Y# z)7iZUvB1t+RQ}M6{8plTbB*F_^KhCmyV^gkvt>_Q?~1?f{2SIc^VKL&J)B?71DIeO z^>b9P@8wNJGfn6*9=>$*d!%wdDT{1R3%SKjR3bU$U;n=KYzzF6zn{)8S`k_*?OJ9* zNh+hwBZScVzka+Srabn&SfkKIoKN=WXtLs%VrduQO ztwM8KLPuZoAYvJM3MpWVu+lm|AN94=+xTZ2Ev-(kvCtD9nZKL1XuC*FOi z?TLp&5y}vsKSzONt$Q9bS9Ny!c4rgK{8K8$wQC_y)YPw(#;I&yAtd z!{6{>DET5B1mY^rq?|{mjrY`OwbnaOiQoA1Zh~IeN@Cyd3_Z8$q5C@A>?3EvTeSvY zO7~o|v<&Ih(!~IZX8jBW%Kn!|{>h^Z@prqJ7_wW{&LFMWX=)7D#}YLfx-S7B2Sznq z9dw9Pzk6P49)>80a|f&&+F6XATK`77RXwAI3GogPHc2v4zyrM>9>u zR+1>*9o~j!`TF$PZpr3-1?Zx;9Dl2e01Y%_1b{Opqo>53$Q{VX1<%Yyc(3Qi(hGxh z@m-!0fah?OADCV2nn=k@XYt{ya&RXSnMnDx@A7XFTO~75U*&E;P5M3bjdcH0GUmOh zf9e`B_rV1zWg0gVq#Ia9FG!ewkoyC*7@-dwN+8tUX9?qI7GKW2;yAWLv{Z^3@dNEa^8t8P4ixcC4Aq@R}6e86!c z6rfgow{ZXKD`#ld#i|8gLWUr&GLw#Zlthg`6-n+z*kHPmFdnFcn50?^sm>mPdh5`X zXDvF&7~bI&9l31Nf7$#!JA*xO-%sjiQ+nQNOqhKWqWDuxl==&^Y}Mn8nv07nedtoG2=^xxF>Y+0d}5 zIQQ%5sUB#)H8tR`J#<1ICa z5`;v7z~~KehJk0_-#`yCXglHf5XF99EjykKO)0|If1cq1cX#NM_0%VqcimRbmRZ5a z42LSg#~*UPQeU0)Jerb-Mw`l4awpcgUmCB>Jvs!QJ5^NA+j*n?!)F%28Ut|5Uy(0k zy%grM-WT<|8Dkjv#VXlP3RgSfFcp4|$q}tA^#;sKcw}nMcDRl(xLu)cUr2U$19PPu zrNTxK4khv1K__nK-zGs*NIKUwzEp-yn7^(K9&Fw)K|1Pqc%P&)@crbHBf(N$zU>dc zS+VWpy({*SQg92+(o;XqEx}96y~8ORg?c^SDv#yj>8dn@C&ss5USjXDq4)*V#?sOx z<|GPEggFymm7cHp&$WFnTd*hkM*){UBKlXOJP=$P&z(uAV(T3l&C7ZQnL^|yUbgRW zN?H<;z)jKECgFP-<8n{G?dsh}G<-wNz73)&x?zpZ8#pzb)P6+NUuqj367FL_qJ%8`jc>&lKK>W%E<7?Ql zqTOujF5soW7GAJlc1owt=NaTSa$>HTc!aT4FYc-9m&bkIOV%TF{viyp`RC$z?V0GD7$1hA~@zSYL^S$6pN0+Ot;n5$NFaxYD<1=^GG*=r#*!*qqK@?2u7QGe6?h_ zN(`wzBnP8R4`qIs0cO-bqqrzLnEx6{<(H^y%!fmGId$w2p`W2 z39U$$)?wFk_l$Ou&l6CBizx)NNt0bkHE@4=s&~s@QCiyameSdh?N5T?+q{2KN5PFp zYk{^Vg5a7Ectj=v$-Q|M@9weBIZ0HlfO0N-F2yM#3|bqdcHoiV!Ar2;YxBRllK%;0 zT};P5^-uT=06HzMk?#((a%leFZ))80rZ%Woh1Kf^W`fhN%he2|c?CtSX4w82H~m5{ z&_b~L;*U>~=k(=OJh^x4*55eOJ-4FTiDdL}{Iyj~l#`jKi_(C+!nHaS9>J9X`V0yDDK-%|HOm zKraZbRnmI3{E-Eh!<7K=X-GoKBitd5#jha3qex}li~i68V?Ej{j$ z2{_7u?!jK%o-;y}qD=N77k*L$CNZUIKISz`{T=cpU-~EP8%(SyZb289{$`T<1KxS_ zdp+dnvI)5`iJ$y3Qn+)TThfl-tTT2DmGv622iuRb7Be=$a{oAU2ZF*5ei+Bf*biN@ z$(OXmht}ND37Zb8bn~^|&D$xf0%Hj)mSdaY2R^OAu2jZSof-Vo>`nXog~o3eIu8ZH z<6TFou|9e%S2ggKJ>eyeVPp(ZY3kgiGK1kr1bGbwBXgcpzg)AYm&Hp~b)@(qwcaR| zP7Ymv@Y-NrG@)dLSU-1Cx^>HRxBK*1wmKd}PUN3N5NHjQmsthm zGFCGgIuG!T`7XmAelbYkr}EDKTdMzm&^qXySqctbE}#Rz1W0+YiM;q<8Vv8JFpwE@ zpU13=H7KODIv;!7YXgjx=U7Te*Ybz09y=#FD8xo zJeJ(qcm*Y??Mi~_AEasX5^)ro9Pnh~?Bdi}k=8VYXk=vyWO76@wU5f4;4f1asvmBz zjGoq;C-|_opd|T){6vGyuX5#wsm(V2==m0hkYL8Rh`n5bDdb&GsZjo_dL#=k!16oW zn*SCiat5U{0Hys#6(!b>J9Xrd9MB#Gfv)fXcNMzg63lk%I=`}EekA_bsupCc03V=+ zaG$@I38z7fNEu?|H7ea65|SdsgDQ0v2eX9}jd!s?@A4hN4o6<+#FWgvbfoqpI?PG& zR7>Pe-m*nyK6+>9*~d@Q>avEBu$aBYBd(GYbFXF0*6q6uUSbSs=nW22%J=@bp11M@ zrG}SkGZHrAc+9iDCHyLHEIx)FA}l?O6yM-YvdTZWfSL>l6V&<@jB$o@zP^K7=5Tgz z_%7!fsB}LNhj$+F`I6)}YUU#odV|mQ>DyQ&&dKs(6 zdBv=7B4Q??U-TF^Aa|SmRy~&w{b*Be@vffu=)>nxv0iIgTOR^wX73p`N3iV|9JDnT z1^6?BGit>I2C#GvLe~X`&pT)nbsrMC2&f_A{X}hYWG;>+QnpqscM;hFSh=@W#mkRi z{u2&8N~+yuC5#CJLUmiu49#8!=^R3ck^T8S$C}ielYMMLb=;|q`{QoCh+ziau^E5= zJLS`dj(u!%T=Zn^UP{^D`yC8>@nlQ_mjbx~PD|vRtu-LEro6B&ixPV1}4`K)l5Q(tZlat90 zU#;lVaL~hg4H}URwgaLSoG!`63pnSr&MikGl*T;~lKJJ%$jNPN#DFI<-1W9j>UQo? z@{cpxrx>MJ&e>%02BSZA&5e{cqyCAZnk<_!>Ex3^Xc4XngJ={NcHn4*CO796w$h3f zYkchiOin>J)cM@A6tC}8jg_CVO%LfrfSm;cu*K0Sks*UYno&me=N9KmpL2%270zdTh~4Z3P4L0=E> z2y@VObkCZ{2qs0I_Pb&LhgvotyjSC|IKO6ZLfYB`bW0Y%VmXv_+p7p8fzZ%~6$5gG zF#sas8TE@b2TPj9lG}cz1OeIvlmZ|pky~VKvq42ME;V+-3pQ*pz?tz;CqqOh18m-B zmj=jm1klG#!k+^qEYGK_o87^BPI9!EVQj`qVuA%f*A2plzvj`y$MVpBS4AO3&|iH3 zskU*3_tw^O3QIvT2M2M48x?;y2_l3o3;D*hb0eMY+-*Fl2_J7f{>h~CdpKuSakG@@ zU}$n^4!QS4(m!%ldkpD{Z<+QfuJ#-*A8 za+33_<_KF`Z|VU`me7_SEumB@e$zyp=A&00EvGfC+NVukq?TunPsjOmQdzt*|nq+xCtkra_(?x9!5Z zk1h20WiVTjZY!j&-SHD1#@}qeIv6;1z=x=$v(=}tN65NK_uaSvgx46937W_3 zUeItG68AoL5qP_X_KtJM-Qo>MIkT37zDVLtY)qBA*7zfh&u}fv^!q&??n`TM1+u%(sCE;W zO{%DQ9O~lIIKyP&s*O`;1;PA{wwcGDXzc~}5$M92)=+45oO~9|#+HGgrr`kFrKQaB zYa8TUy+(s^EwR)nl8+VhI?cxi5()!E?xTTCUVA_x0;Tx#zbuz_3H!uzmP;G4t3c0Cc#+r$Nf*WLb)%obWT}ARyau%PriUl|yg?zzZnlo|;K; z6(PVua1hVhpY@D+<>&Df%d#tc4~*4h9)E+nZ#-Em?qEt*z&&&C#C%z;|Di%vpd>>D zo3)V&TW3Ukm?)g4H@uMP#rszuSAQZ^p)%tz^55^gWBwgQ=)Jz3D*iM{w=gH+&y*`q zkCQOr)JyVVEnH}rS-fy=VlKt`<6htgn?@bNf~5u;4?{m5&BV{GsJTc&zr)dwv2O6U zU_Kb+?;@mHa?E^v3_1UfSag*QGQ(E}B>!ta|% zG85ixdDA8|w;g3g11(|UQ>f$k?hOB+9C9A84G;kPSn9%OT2FrM`g*`I+L5k??A|*bY9sQ|_;wS8xM0^I+=J=&ttf?O z?wnsP%2UqpOS9dba!|AqL+iNiH;v#Uw4=qn;aKf5c3Dl^_P0X~!rn%n4g;;F4c>%- zaf8g3xl&3k4K8oWLDuqAgl?;Cy^4zs2%u?4zc*6X7lZ-fEUuifRAwofKF2gtOsJ$z&i4 zs42Tk@Q{0)w67rKc5QOgF^8G>#OWCaTE1#Uy_)^=qRnG)A3{EaPWHaue8Q*Hcgw$F zO}-e&0Lkvshjw7T#63GVgPUf7mG!lxMf<&7WY3ijI(D+>F)rl}qUL$~D;z%f3F3}Y zJPKo11Lqp+Zc*ie5WQ}{?UsxeJ1N-JLm4bXO-|U&#KD=;Z&ccSXdwH@g4B-BK;Tv% zkxh}H)u_@Ig~?&8N0mw1aCZl% z?GPbEe(h04+DD%w{PXThQT3pJlI~a*E0)bXW-h`@6mW;lMZVunRx*jJTY5#p7#ZXD zRfZpz8qE<~G?-soqn&ITS|6<@7K9v!#TrZ*E1e>V+80IREs-k?7;DRMg2;JU+h&!x zCbuHJqaJLHn2ei zmwc7jOlD1`;{}b+@=8)=4V-nu>Bztm(!U*36#SYznH~DEBm89{`2ADdbJlC2XXH8A zt)rdW#q*r$n0djL2cgN-ifr$i$`;~oIa2llV2Ddlp=&-60Gmw(v`uOtnsJrqIsjN6 z5uFExGa-m7Sn}IMN6Aix#m|A!XJ4PU4fBuW1txeVY9h!P0}zSizZ0+d?$~zv zK8gB+`|+a9o~Dz-8{tN?#zIs+A0)#*J6b7a$-oLp87$)nb6dg52N3@OH>Lk~R8SHs zyfU*{kFX8oUnKi}LE?SX7)(xbyLmw_YTCe!L0>yQM#Ydmg4NWv4Dlh3?4{;b{u8S6 z=M|r3slpEb*rdhj*9i>YFH*(3rkiq46Lm6K8YP`&I5AlgQ5A^V)2Z<8g4ve$h7@P# zpJYep91_T>O;u6?cuiDAoRNH=yMX)@Tw{1RXijwRSF~=Mqk~p`wd}OImSKb zoM|$2WQVhrC&RMPo~`^h_C&aWC}l?0;-E)S=F(Xv<_%54;B5^X%LL|UQo!B#Ml zOmADg-~XGB5>_m1>udPe84(;kk#YXF^IDSR5iPHa)KBrqPru$3%LFpoet*I-LlqMK zp3RmFQ?d3l#JuHSwJQ|AmLK$v&nL#P|biUDTbvNmI-mc8&_KBQ= z&#k1eJsP}Tm4B~~6kM>(E~WmeIWvx$dQBv_XbaoilqTT&@0S;KH{sG1UF;m8Rj7YO z6lRBoP!&3HsM}}%4evwNpJAnXRXzmMc%Z#I5+=!c*GayAx_~qSz(R#a(aut z(x?Nrx-<43iBchu-v*xI0jV_|Wj_Q2a@jh2U8<$lddhA_1|NO#iLl8f;oJ27>yIJ^ z!|YrLI<`9-E;jLru}&3vXtha0`htI!IQltHcQ(P4F-h0{Oi1FD-N)ZA)gD|GF!_Zj z?MJmL;=lvnSb?#-Mc}Q71w2Wg_C~K;cb)Y68;cDNLG3<|uL5y5R9yUnm^FIGTt%bj zx$-WR?9=V|%TEbp%%Uv?P%C8hos+}iO5ybAAf1MaEYG}3{d%n96fHOxrsl(_0E7Zd za{S#!qeIw5<)x+@ls{I9^`$ zuU=)hm)lW+tqZiJnuOCsQY%i|9i98S`hQoScE~u~o7J8*2Oz@n?OCTRxkgZ~FeHWZ-s4 z^B*ip2({w_OI-jj<^-lv`RVUdhji+>(n4!cxr3}TkVTzqS$x?{y?hn&zx2qMSRQQ~ zO`u$LnfZ*7-m~Rvgy>FyF~rVHtzpw>yr6f!-GOehz1T^{$x?3N&DP$R*7X78Wi#M4P{OoNeD;BZlgYy zSuPWdlr82F?;^KuC;t+@iZ9u_)3%r$`Rk_B(I4i6g|pXA&(PIe{+`ix-{z#;x6I?Ja zp4>bi>;OZMeAtWg{keS8Kj}SXUKJ3Vf*Wo2PMQ#uVrt7A+IZMIjxH9VbeHcD?hJkd z9w0s1{-x{ttCYR=*4X>DlrD+-EDRJ|oblCP>z5F)C+@3Ypz^sPqE+GeZr_kD3}-9N9okL(?J^_YJcCD{;Jf@Dj6B3KmubS5GZ_;o+^ zpb%EO&<@g)9zSP##|Qq|Lg95!VGuJ&@noI^B-BKe=R=*0M!AE-CHD7(P|u(mEMuYr zuQwX)iplt!$URY`O6Wfc|9pAKuK+s{h&vss2b0ChfqHkOGEe+rM=Bei|7_fskE*O+ zWl})9P>)LgnB;y6+r{sU_^DedI*+HMcAlea;8gyY{|k7$;i61u?DecYzp=%p-JJh} zAy%d=1obhCy0mr%Q?b1=TQF-}{) zoPJxT^xs2+l;SCFSJwXtn8i#}ar#q|fE zLIAM{;Yt7#-~ly^VqpH?1#iXLFASOC-Z$Y!Y5mU-Ni}63VMYPwOf0Lt3!!t#4ozNR z$NNmnsmK4Z90@>gsNzR@zVd@q5!<4ZrTJGR-G2;|DIUC+u<6&d=auODM$F7k7;*m! z0W|1{9RS0@UE0!Vlr1w~snxf^N$}`@N9#P7L$x#$m|s{@jSywBdF4PBJcYFTl*D`b za}sP_*R$yN0gsZVxnje7h2EWN-ZX?W=$u-IF;xk^&wPE1|M+sKk#RuVXP%K>@4>1A zk<$rD%+)kr0||)`q?a)OTN8#JnD!>J5QOiLwo)Hf%r8+S1bmAP4?=1qY6Btc;wWec~ZI2$;y1LPJfq$s{!kDua~U-jJ>DZ|rCYo#ByLn#wjIL~{$9jYb#Nux!2y zy@>$z5rjqbSTDF)1-|(KLqI1!z z*osJT>8gvzipZ%$q=ppcst-X6lKF(o#-P!wzE&>q5eFfVvAD|*r1_+HNlWpwsW|=H zvr#`2XUONV?SFkO!}@6Ec8j4@JKUai%82)~BperM!45-6t@@HTkr*fIEFkEHIri_; zM`4_LKQNmJZCAQ;pN8Dxl^jLX&3Vffxz%3piEGPn9_m!7**ZQG4>lXUXHfp!504`K z-VT?oG1rdKv;haQyvNrfj*vEixRi5&4dlzr%HPJukJWT5D}H9qX_EDJ2#127X}Whx zO)IXQ8w@Z_Fh>I`aI^K3jCt|~DJMrsAOAFed%#ktE2aaEB?il1py59T7`9|`x8Tz>=DFnRo@%IjBpCIeN z5-a{6y3SU39(S;M$GV~Y{N)bd$s^G`ffeQ_EcCBKN8{1i0o83OVtWEg z(7ZpEKa?jDdfkz?{Q;^kunp8!j`1#~n1mD?{Qkd!Yv26s7A6ej6fx&q;!iGs;cst$ zpX&~QoMQ?+D|ZO|pf1VhYw)fNVJ)7H?cdLJB?u)x))yNKtG`oO(!8xfwX9klrnh@E zY-n-Ji6BiUJ6hSkaBSStebd>I0D6T)dP;^_JAV<|d8(&hAD*mLy8qS_W{8-Q$QO|{ zuUhWK*G|l9g|d>l|4sI2eZx!cY##AdD_RkU$JRKuY9Q@sG~siGbs(IXyXhB9yHE3O z+Rq#3G7&bCx;wZ|R_w=tLt1>*X)|r!9u;=cbw9Zu(QJdf!cgnEi!bs@deErl4k{LWPzK~o7ekI=! z0n?5a>3n^F3g)Av8(zWWbN~-Dd1INu#SUxzUijdoDcx>#=R72d{=rvD4Be8yeds9} zZ&JbpFLlz0Do{rl&fjAXgA)1Vq?(s{`YPU2BFMtUe&Gy`Yvc88QR2v<5~+D6&J9$0XFQke2e&2Y1&}7^sHBV#78tx z5<(ML4Ee=*h?24ILiJ*vj$gKim+No;TR4%sO#c;i*M-yOA( zA2;N7!=zd<${8CpA*Y!%KPO@qbAUnKUv>P4<3tDqDfUcDjXBe1{{0x|898jdC8}=j zga=YEQiDs8JuUze*yiROknSVzFgx(t;r)_2=kFj7*z>_S(pW>E%5F1MIjecq?QVkC8w!;NS`(Y+!AT1SRV(3K+`4?2xy%3II*m38wY0l+nr zy_11YN5A#r_;hDsL^W)&#|+b1(}eCSSAugZZjL=jXC9HWlC4Sfs&E(L=`KEprc5C*Bm{8L+f!whN=H}5DJ3jQIzg}QAfihy=M-z_Cf?stz@ zK}LnPh8(dw2`bjYnkkiF`9BGb8jh54+8_>ridaHJ>uQ zxClrJD=b-}pEFO9;6#%dmz#<;8Nj@9`W~Ip)`l6!o^U7Y3#kuf4^r2oHH1us&%E>V z*M8gzgXQiTDYe5SAKhC2j>9`NrEf^EmOe8H?A_33iaZk2r_GX}Xkc9N31SGRTUKna z8aO@LG}VYDD}m5&{FR~mH1jK;?VFv$B4Jjrw*G1H_6yUb?4xd8J*B^viZQ!MOc?0( zMct8qMbga=IcEdg=YuO6J>znDtBen__2V1u?7Pc{8c)RE%=SC%wha+h-8#-%TgZ$; zx+1=c&0Yo^3Qkvrz%=MEwEXYU6+sao_$Q))=xE-tHvW1+wJJCzdgCG zF;i~xqwISMMY{ISp%V*(Y^eko4VcLk(M7E+(ru@Cpbfm(XpW)<{U?`gzvGG~VlO2B6gXN+|Re&e| zf`n#cu>^x#2GIiaHEM;?izpTOi%}@EPtn7ah)ionaW=NwlsQX!nCLB5CE3Z-;zrt` zmZW+UQB_DDtUi&| z8l*iEU-xo*@xz)*y2dK5g2t#Xed=wJ?NN)p$*8+~hIKQs?KiurQjhy#bme4YCyH-; zbXrvjT6*ZgVt-*ToQ1ZpNPr9%_JRMhMa10G6e1U^b=~A#wZ{psc|+~BGINX8zMH4+ zk2(}aMb0dj;nhpIBaOQT30ohnF{{eV3~@AeP==`C;5=e{b0yc#E+Pd|pcua=KTmZF zc^${tjwzU;;7IKMs<+u1|KUqg-VMwD;Y&)nly?7ZjUXc+ep-mGq_zK_xoZ$l6QSuI z&jVOMAt_miQFv3rkWy4OnZ4VBWHe1I9sqW-L7BaPl$!3u&){Rju*eBx^x;{|*0zNE z|6~~OkmXeu_<-oz62tBUrE*bQ5YtuY3Rp7m;Yi|n7m`wUE}4-%>@KyzmOcoTB&uH3)I7O{{yRg6r)&QY)17{pYwfQ2l!*Uu zKPs3o5F~viL><~^A8v`faWl|d;RC#^1gL{Agt4Ip&YX}>I%NH@7#PQzdVM2T(BlK& zEh7pz1vb8*KFL_^UD~*nUMxm(t0~E|QN{iF@c8uLl94L>$nN1_r~AWSQ&#^ji1e!c zj|4rYn*0|iK?hYG6R$nTM~&?3y3k)4M@WjH37{m9Sj7arl?zH33>tSfD4hg$Mv1;N zjpfvK->B=g75F6(|FMv5z*QOvq~$|eD~}FJjKbNmkV@1%pTKFWBcVDf#4r<=;6m(Xxr^_W;-o-w-(&n)s4D#gX!4d z?NE+Ctkq! z=~TMALAtwRL|SU-2BjOMoA1Ww{eH0+Si>yVefHV=s*P1Fk%wFdL2yQt+#Pd~?TrpZ zwCUwNmLPww;eL3B?iV^lb5y7murkIKTRoDxih@eoV8T>^8~;aW5m?Vi&}xLnF&{SH z3b_$JY)}~>X8np6`WtIak1lq4#zQ|^p))OTW+U3Qqs)s?qLrM>RlPh-vxSE2vcBf) zxPX%sPlaPOc&QPsvTB{=MJ+jr2IfD}G8jJ79Rs=|ASy^1 z|L0;6aE;;fddh;~qyi*h>D; zGGzREz_(X3?K1pKJQ!eWjfDZyHf?#TASxD1*<#of6dwiw$R54PR=!Ko!WA`uw-36GhlVx|!!#X9&>3?Ch+503ko`;Q7YjeavrFbR@+GHXy z+;R{)&;Nh(yn&*@9Q@ z!j;)q3eMcVqJE>GX)um>5_2-MzfG-D6e8rpbJOSdxQuoiG1oC+>iimHB?(uSH~<$q z?fjm?_4M;H^~CGKJN$1=Mmb2}N=U<$NZYkU<#HS%oH}#J<#%>rlchOyBQi$#@`yY} ztdElm!_Y^H8NIEc@{{y`FSL+jv8GUNvgB-uKd^{X(bwG~1-U@b_k zCgk+&8=kj>o!0+XvwixhuV8Q~^;~=Nk#25-#za%vgEw6_63i&h<5rEr)M(yNv9Ruu zvP0WRn188okk@q3ZJi=%|L(_+@MYIq;D`|BYxh%$0N-aQxpu!^NPK(1mK~s`=$%B>^L&2qE)LKPC?BHnf&0>ASit2v30fEe zG`qHez}XwqEoW-&Xg|+WdR4Axt0PDhJB0*DCDdjrx`7a!c6hlf_5UWx!#to*U6CMs zGI;qcL7!lqAEnO)(xeztO=^2Ssl3k#mmi9>K_hMb6<;g4BL7A5JvQc-vA8Hd8Z^zl=RnZd5>bsw{H+#l?_F#v%_j#G*LNg&-gn!!hr7>08V;C)2Ia!AlvEGBEH+ zfYPQ}a@2PEa1yXP}lKQj&%|AJq0zx^@!k}Xhlcziji zq%%us7|r!diU@MIy@3zJb~z)4GQz(=ds6xclAjF&&q^;mxIDvse+D zE!_HYq>OWgcqaaO6J>N(DS zRV0vO8Qe0qE11|=9&BnCB6*B5mv@=Lqmxj4WB%h4tefY4xxUeof#=<4nglX383ng~ zW}!A*x79))H%p6f+$oyy!L_l2Jk0=PIaUzelKFJUturT^wx5w)OQt=(M{CI6Xr1AEvKg(liab z;9b57_@OuL{^G3ntL;e?%24hrjQ0O`d;l0nu^Z4Z-X{c6d-<^pRA}o>vcdwJvc_IVX?3SCGFKJgFU9eqtkJty>QAn&KEyqx^&8PI2r6vP5B<;?(sJ z5bVOS3Mdq3lpyLW2jT!26+<^8TCg|#=1`M`D{U>*lRvVrf*>Mb6^x^8-g++ri{0jo zM8)SM^|K_+$$v19_^f6Y4Z~8|V>zK>Th8CtrC2Pn$z1fitsa6?qw_!*LkLUh7FIX<&HJfK#iTXw3)#~w#`awcoFG> zYnz`<2(}%Ws-`E2W00y*dECIXi7O|U2c~n=cz$Ur=M?AQC$JjX`W(s}qT^}xI@lnh zwm3wN03oV+`?3tXO+3GS*RMM4%?ABImf=w(ZCuqA+Zs)?^88gE<)SXVu@}#`EaoIA zE~l=&QCE@`T{UkYl${oGD5bGhuOzUrd2^FEG{Fo&9N=96W!1ULH4eSu&H;1;w)Ukx za5X<2JlmXDC4QbDsh&X)TEB;ZNI2dF7e-x;&|*i5Uwx|{{}g+(53AXT-K1x=9etn5@?)hrycB5Kku{|160uY{^+*bH+mOR&Nkx>E$dc4mfGeldo&K& zSriZH=eoW*FO%eInEcR=taHPB{aeJNN-c;yAal|=6M(^38#A}IcP^068vJ-5$y$cO z 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 literal 0 HcmV?d00001 diff --git a/docs-src/blog/bharatmlstack-history/post-two/index.md b/docs-src/blog/bharatmlstack-history/post-two/index.md new file mode 100644 index 00000000..5a1061a6 --- /dev/null +++ b/docs-src/blog/bharatmlstack-history/post-two/index.md @@ -0,0 +1,150 @@ +--- +slug: post-two +title: "Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)" +authors: [bhawani, jigar, adarsha] +date: 2023-4-10 +tags: [inferflow, interaction-store, mlplatform, meesho, bharatmlstack] +--- + +![BharatMLStack](./bms.png) +## Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2) + +By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Model Proxy for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS. + +### The Cost of Success +Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant: + +- Adding new DAG nodes in IOP +- Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category) +- Inferring intermediate features (e.g., extracting category from a product to fetch user × category data) +- Optimizing I/O and dealing with the inevitable bugs + +What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations. + +### Scaling Pains (and Cassandra’s Limits) +At some point, we were hitting: + +- 250–300K reads/sec +- 1M writes/sec (during lean hours) + +All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership. + +### Interaction Store Woes +Our interaction store was another ticking time bomb: + +- 🚨 Clusters kept growing in size and cost +- 🚨 Latency spikes became increasingly frequent +- 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance + +Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale. + +### Silver Linings +Despite the chaos, the system was live and delivering value: + +- Real-time infrastructure was in production +- Costs dropped by 60–70% compared to offline personalization +- New experiments rolled out faster and more successfully +- User engagement metrics improved + +It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot. + +### Round Two: Solving the Top 2 Bottlenecks +With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points: + +1. Coding feature retrieval logic for every new model was becoming unsustainable +2. ML scale was exploding—bringing rising infra costs with it +3. Real-time embedding search was the next big unlock + +We tackled them one by one—starting with the biggest pain point. + +#### Problem 1: No-Code Feature Retrieval for Model Inference +We noticed a pattern: for personalized ranking, models needed features from: + +- ✅ Product +- ✅ User +- ✅ User × Category +- ✅ Region, cohort, sub-category, etc. + +A key insight emerged: Entities that contribute features for a model always map back to the context entities. + +![MP Dag](./mp-dag.png) + +With this, we designed Model Proxy, a graph-driven feature retrieval system: + +- 1️⃣ Model Proxy takes a modelId and context IDs (e.g., userId, productIds) +- 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper +- 3️⃣ Executes the graph to resolve entity relationships dynamically +- 4️⃣ Outputs a 2D matrix of feature vectors + +💡 The impact? + +- 🚀 No more custom feature retrieval code—just graph updates in config +- 🚀 Feature consistency across experiments +- 🚀 Faster iteration cycles for ranking, fraud detection, and beyond + +Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +![MP matrix](./mp-matrix.png) +We built Model Proxy in GoLang, using gRPC and Proto3 serialization for efficiency. + +#### Problem 2: Scaling Without Breaking the Bank +With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on: + +- 🔹 Online Feature Store +- 🔹 Interaction Store + +#### Optimizing the Online Feature Store +Our costs were concentrated in: + +- 📌 Database (Cassandra) +- 📌 Cache (Redis) +- 📌 Running Pods (Java services) + +1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits: + +- Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency. +- Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization. +- Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes. + +2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity: + +- Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation. +- Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access. +- Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries. + +3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results? + +✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments + +#### Optimizing the Interaction Store +We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach: + +- 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events +- 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app + +Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes. + +![InteractionStore](./interaction-str.png) +#### Results + +- Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat +- Infra costs for Online Feature Store and Interaction Store dropped by ~60% + +#### The Catch: Our ML Hosting Hit a Hard Limit +While planning for 2023 MBS, we ran into a critical scalability bottleneck: + +- ❌ Insufficient compute availability in our region for ML instances +- ❌ Couldn’t provision enough nodes to handle real-time inference at scale + +This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads. + +### Conclusion: From Firefighting to Future-Proofing +What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Model Proxy, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3. diff --git a/docs-src/blog/bharatmlstack-history/post-two/interaction-str.png b/docs-src/blog/bharatmlstack-history/post-two/interaction-str.png new file mode 100644 index 0000000000000000000000000000000000000000..99ddd4e900ff2910ec33426ffa94279a71d72016 GIT binary patch literal 237747 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

v`w{s&-gB!x{O4!WVhbvsTw7 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�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 r1mm+HK){{m>A-7wy(biwk>< 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")) + ``` +- + ```go + t := template.Must(htmltemplate.New("x").Parse("
{{.UserInput}}
")) + ``` + +## 6. Log and Error Hygiene + +- Do not log secrets, tokens, personal data, or full request bodies. Redact sensitive fields. Return generic error messages to clients. Use a recover middleware to hide panics. +- + ```go + // Example redaction + logger.Info("login", "user", in.Email, "token", "[redacted]") + + // Recover middleware + func Recover(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer func() { + if rec := recover(); rec != nil { + http.Error(w, "internal error", http.StatusInternalServerError) + } + }() + next.ServeHTTP(w, r) + }) + } + ``` + +## 7. Concurrency and Race Safety + +- Avoid TOCTOU on files and permissions. Guard shared state. +- + ```go + f, err := os.OpenFile(p, os.O_CREATE|os.O_EXCL|os.O_WRONLY, 0600) + ``` + +## 8. Cookies and Sessions + +- Set `Secure`, `HttpOnly`, and an appropriate `SameSite`. Do not store secrets in client cookies unless encrypted and signed with a server key. +- + ```go + http.SetCookie(w, &http.Cookie{ + Name: "sid", + Value: token, + Secure: true, + HttpOnly: true, + SameSite: http.SameSiteLaxMode, + Path: "/", + }) + ``` + +## 9. CSRF and CORS + +- Use CSRF protections for state-changing requests in browser-based apps. For CORS, allow list origins and avoid `Access-Control-Allow-Origin: *` with credentials. +- : + ```go + // Pseudocode: only allow https://app.example.com + w.Header().Set("Access-Control-Allow-Origin", "https://app.example.com") + w.Header().Set("Vary", "Origin") + ``` + +## 10. Avoid Reflection, `unsafe`, and Cgo for Untrusted Data + +- Do not use `reflect`, `unsafe`, or Cgo to parse or transform untrusted inputs. Keep type boundaries strict. + +## 11. Operational Hardening + +- Run with least privilege. In containers, avoid root, drop capabilities, mount only what you need. Never expose debug endpoints publicly. +- + ```go + // Exposing pprof on 0.0.0.0 in prod + http.ListenAndServe(":6060", http.DefaultServeMux) + ``` +- + ```go + // Bind pprof to localhost only, or protect with auth and network policy + go func() { _ = http.ListenAndServe("127.0.0.1:6060", nil) }() + ``` +## 12. Parsing XML Securly: +- Use encoding/xml for parsing XML. It does not support DTDs or external entities, so it’s safe against XXE by default. Always limit input size and nesting depth to prevent denial-of-service. +- Never use third-party XML libraries that enable DTDs or external entities. Wrap input with io.LimitReader to cap size. Track nesting depth in custom decoders to prevent stack exhaustion. Validate parsed data against business rules (schemas, required fields, etc.). + +--- + +### Additional Guidance + +- Check inputs as early as possible: validate type, length, format, and restrict to safe values. +- Impose strict size limits on untrusted data such as HTTP requests, file uploads, or archives. +- Avoid reflecting user-controlled content in error messages, HTML, or logs. +- Use `context.Context` to manage timeouts and cancellations consistently across I/O operations. +- Clearly explain any deviations from these rules in the code, along with a follow-up task to remove them. diff --git a/flashring/.cursor/rules/global/security-golang/ssrf-prevention-rules.mdc b/flashring/.cursor/rules/global/security-golang/ssrf-prevention-rules.mdc new file mode 100644 index 00000000..fd8906b7 --- /dev/null +++ b/flashring/.cursor/rules/global/security-golang/ssrf-prevention-rules.mdc @@ -0,0 +1,30 @@ +--- +description: "Rules to prevent Server-Side Request Forgery (SSRF) vulnerabilities" +globs: +alwaysApply: true +--- +# SSRF Prevention + +These rules apply to all code that performs outbound network requests, regardless of language or framework, including generated code. + +All violations must include a clear explanation of which rule was triggered and why, to help developers understand and fix the issue effectively. +Generated code must not violate these rules. If a rule is violated, a comment must be added explaining the issue and suggesting a correction. + +## 1. Do Not Allow User Input to Control Target URLs +- **Rule:** Never use raw or unchecked user input as the destination for outbound HTTP requests. +- **Example (unsafe):** + ```python + requests.get(request.args["url"]) + ``` + +## 2. Block Access to Private/Internal IP Ranges +- **Rule:** Outbound requests must not be allowed to reach `localhost`, `127.0.0.1`, `169.254.0.0/16`, `192.168.0.0/16`, `10.0.0.0/8`, or other internal/reserved ranges. + +## 3. Resolve and Validate Hostnames Before Use +- **Rule:** Perform DNS resolution and validate that the resolved IP is in an allowed range before initiating a request. + +## 4. Restrict Allowed Protocols and Ports +- **Rule:** Only allow HTTP/HTTPS protocols and known-safe ports (e.g., 80, 443). Block access to file URLs, gopher, FTP, or custom handlers. + +## 5. Do Not Forward Authorization Headers Automatically +- **Rule:** Never pass internal tokens, cookies, or auth headers when proxying or forwarding outbound requests unless explicitly scoped and audited. From 7240cde5796e25fc5c392d6c5c6de8816eeac544 Mon Sep 17 00:00:00 2001 From: a0d00kc Date: Sat, 14 Feb 2026 18:52:39 +0530 Subject: [PATCH 02/11] remove --- asynclogger/blob-logger/ssdio/writer_bench_test.go | 1 - 1 file changed, 1 deletion(-) delete mode 100644 asynclogger/blob-logger/ssdio/writer_bench_test.go diff --git a/asynclogger/blob-logger/ssdio/writer_bench_test.go b/asynclogger/blob-logger/ssdio/writer_bench_test.go deleted file mode 100644 index d3899179..00000000 --- a/asynclogger/blob-logger/ssdio/writer_bench_test.go +++ /dev/null @@ -1 +0,0 @@ -package ssdio From dec1a08a4d42dea4da4e151db9f990ed7d5f415d Mon Sep 17 00:00:00 2001 From: a0d00kc Date: Sat, 14 Feb 2026 19:04:05 +0530 Subject: [PATCH 03/11] fix --- docs-src/src/pages/index.js | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/docs-src/src/pages/index.js b/docs-src/src/pages/index.js index d2d965fd..34aefde3 100644 --- a/docs-src/src/pages/index.js +++ b/docs-src/src/pages/index.js @@ -167,6 +167,43 @@ function SDKsAbout() { ); } +function NumerixAbout() { + return ( +
+
+
+
+ Numerix +

+ Numerix is a mathematical compute engine for BharatML Stack. It is used to perform mathematical operations on matrices and vectors. +

+ + Explore SDKs → + +
+
+
+

🛠️ Numerix Features

+
    +
  • ✅ Postfix expression evaluation
  • +
  • ✅ Vectorized math operations
  • +
  • ✅ Typed evaluation
  • +
  • ✅ Compiler-assisted SIMD
  • +
  • ✅ ARM & AMD support
  • +
  • ✅ Multi-arch builds
  • +
  • ✅ Deterministic runtime
  • + +
+
+
+
+
+
+ ); +} + export default function Home() { const {siteConfig} = useDocusaurusContext(); return ( @@ -181,6 +218,7 @@ export default function Home() { + ); From 328b644e940f09c668dbb2ff2f8f636cbf91fe09 Mon Sep 17 00:00:00 2001 From: ansh-meesho Date: Sat, 14 Feb 2026 19:08:27 +0530 Subject: [PATCH 04/11] Updated integrity check in yarn.lock --- docs-src/yarn.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-src/yarn.lock b/docs-src/yarn.lock index a0cac9b6..c1e7229f 100644 --- a/docs-src/yarn.lock +++ b/docs-src/yarn.lock @@ -6185,7 +6185,7 @@ mrmime@^2.0.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7numerixpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.3, ms@^2.1.3: version "2.1.3" @@ -6729,7 +6729,7 @@ postcss-gap-properties@^6.0.0: postcss-image-set-function@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz#538e94e16716be47f9df0573b56bbaca86e1da53" - integrity sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxnumerixZ5Tv7eiDB9U87znA== + integrity sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA== dependencies: "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" From d228ea38c68d9d8c5582ab02eb1983910468a91c Mon Sep 17 00:00:00 2001 From: ansh-meesho Date: Sat, 14 Feb 2026 20:31:03 +0530 Subject: [PATCH 05/11] Added scylla major version --- quick-start/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quick-start/docker-compose.yml b/quick-start/docker-compose.yml index d40b5856..5d5b1b8b 100644 --- a/quick-start/docker-compose.yml +++ b/quick-start/docker-compose.yml @@ -234,6 +234,7 @@ services: - STORAGE_SCYLLA_1_TIMEOUT_IN_MS=300000 - STORAGE_SCYLLA_1_USERNAME= - STORAGE_SCYLLA_1_PASSWORD= + - STORAGE_SCYLLA_1_MAJOR_VERSION=5 - STORAGE_SCYLLA_1_SCYLLA_VERSION=5 - STORAGE_SCYLLA_ACTIVE_CONFIG_IDS=1 - P2P_CACHE_5_ENABLED=true @@ -326,6 +327,7 @@ services: - STORAGE_SCYLLA_1_TIMEOUT_IN_MS=300000 - STORAGE_SCYLLA_1_USERNAME= - STORAGE_SCYLLA_1_PASSWORD= + - STORAGE_SCYLLA_1_MAJOR_VERSION=5 - STORAGE_SCYLLA_1_SCYLLA_VERSION=5 - STORAGE_SCYLLA_ACTIVE_CONFIG_IDS=1 # Etcd Configuration From 483c275112e1e08212dc5aaf6263e621dc4a8938 Mon Sep 17 00:00:00 2001 From: a0d00kc Date: Sat, 14 Feb 2026 21:11:27 +0530 Subject: [PATCH 06/11] blogs and docs --- .../bharatmlstack-history/post-five/index.md | 2 +- .../bharatmlstack-history/post-four/index.md | 2 +- .../bharatmlstack-history/post-three/index.md | 2 +- .../bharatmlstack-history/post-two/index.md | 10 +- docs-src/docs/inferflow/_category_.json | 8 + .../docs/inferflow/v1.0.0/_category_.json | 9 + .../docs/inferflow/v1.0.0/architecture.md | 267 +++++++ .../docs/inferflow/v1.0.0/configuration.md | 366 ++++++++++ .../docs/inferflow/v1.0.0/functionalities.md | 309 ++++++++ .../docs/inferflow/v1.0.0/release-notes.md | 208 ++++++ docs-src/src/pages/index.js | 2 +- docs-src/static/img/v1.0.0-inferflow-arch.png | Bin 0 -> 241092 bytes .../img/v1.0.0-inferflow-dag-matrix.png | Bin 0 -> 93222 bytes docs/404.html | 8 +- ...tyles.8dc7ce64.css => styles.14b2d0af.css} | 2 +- ...stack-72e1796337bfa224dee2a0f59ec4e2da.png | Bin 673533 -> 0 bytes .../bms-7399e8796d2cd24617c432518ce3f312.png | Bin 0 -> 197116 bytes ...n-str-d9e7aefea121aefb4e94c6c9f060d016.png | Bin 0 -> 237747 bytes ...-plat-9ac69c0ffd8c387d177e582611b8c775.png | Bin 0 -> 248772 bytes ...p-dag-976ff51caf25f09d977ccc10e70918f3.png | Bin 0 -> 148343 bytes ...atrix-43994f433f78905ccbd10cfe284f3c9f.png | Bin 0 -> 270388 bytes ...-arch-bce54b3b4f7d3be68fa22dc204529f53.png | Bin 0 -> 241092 bytes ...atrix-0f13b51422587e6099cf4ee783844db1.png | Bin 0 -> 93222 bytes .../vss-c482f6eac4c68b3219e4c562a6b717ec.png | Bin 0 -> 244203 bytes docs/assets/js/00b12b9c.ea8fba0b.js | 1 + docs/assets/js/01a85c17.5487421a.js | 1 - docs/assets/js/01a85c17.9618aedf.js | 1 + ...3d9af.cb9ba41f.js => 0413d9af.aecac3d5.js} | 2 +- docs/assets/js/08daf6b6.852abb6b.js | 1 + docs/assets/js/09dd5be9.9cd209bb.js | 1 - docs/assets/js/09dd5be9.be7fd2aa.js | 1 + docs/assets/js/0a89f5c9.190be82b.js | 1 + ...f8dc8.7a470540.js => 0fff8dc8.fcba975a.js} | 2 +- ...64408.be0f96be.js => 14064408.74c23df4.js} | 2 +- docs/assets/js/14eb3368.398ac934.js | 1 + docs/assets/js/14eb3368.e9006523.js | 1 - docs/assets/js/176d210f.21c450d1.js | 1 + docs/assets/js/176d210f.47d21595.js | 1 - docs/assets/js/17896441.4ff7d852.js | 1 + docs/assets/js/17896441.e023d99a.js | 1 - ...4de69.22893b6e.js => 1a64de69.844e372c.js} | 2 +- docs/assets/js/1f391b9e.4acd5995.js | 1 + docs/assets/js/1f391b9e.8e4379a0.js | 1 - docs/assets/js/252a9097.3acfe41e.js | 1 + docs/assets/js/2c62ead1.fc5c1b17.js | 1 + docs/assets/js/2d865531.3ec70534.js | 1 + docs/assets/js/2d865531.a5005531.js | 1 - docs/assets/js/3216e812.877aa30c.js | 1 + ...be207.81b456e5.js => 393be207.6e979fd2.js} | 2 +- ...0073a.4ab85476.js => 3980073a.43116f8b.js} | 2 +- docs/assets/js/3aeb33c7.b4a8c40f.js | 1 + docs/assets/js/4137b431.2e5cd4ca.js | 1 - docs/assets/js/4137b431.c6fedbd3.js | 1 + docs/assets/js/428aafcc.2c1db158.js | 1 + docs/assets/js/45a03d07.6212d749.js | 1 + ...eb034.0c88dc68.js => 479eb034.fc01692f.js} | 2 +- ...50aac.a113ce2d.js => 4af50aac.f9b29cbf.js} | 2 +- docs/assets/js/4caa95bf.2e5bda05.js | 1 - docs/assets/js/4caa95bf.ca3bb1d0.js | 1 + docs/assets/js/4df0e30b.00b3a0ff.js | 1 + docs/assets/js/50899a24.c0cfae29.js | 1 + ...5c892.a6c239e7.js => 5e95c892.7a2663a1.js} | 2 +- docs/assets/js/621db11d.1a835b77.js | 1 + docs/assets/js/621db11d.515621df.js | 1 - docs/assets/js/6479fb86.96631f8d.js | 1 + docs/assets/js/6479fb86.d4723af3.js | 1 - docs/assets/js/67d4782a.09ac845b.js | 1 - docs/assets/js/67d4782a.96733ef0.js | 1 + docs/assets/js/6870.25f53758.js | 1 + docs/assets/js/6870.6d10e1d8.js | 1 - docs/assets/js/6875c492.72d20027.js | 1 - docs/assets/js/6875c492.7e263e94.js | 1 + docs/assets/js/6bb91276.d5be09e8.js | 1 + docs/assets/js/72dc5b25.20421ae4.js | 1 + docs/assets/js/72dc5b25.e57720a7.js | 1 - docs/assets/js/7518.6ac3b679.js | 1 - docs/assets/js/7518.9525ffbe.js | 1 + docs/assets/js/79ae4ea7.1416ba4f.js | 1 + docs/assets/js/7fa80e1c.78f6a21e.js | 1 + docs/assets/js/7fa80e1c.b5f726bf.js | 1 - docs/assets/js/814f3328.b45803b6.js | 1 - docs/assets/js/814f3328.bfb123e8.js | 1 + docs/assets/js/8dd2df60.f10b075c.js | 1 + docs/assets/js/8ea48c46.e52cd527.js | 1 + docs/assets/js/93f344c7.7cebeb9e.js | 1 + docs/assets/js/99009a21.1a57fa22.js | 1 + docs/assets/js/9aed321e.0ede45c0.js | 1 + docs/assets/js/9d13045e.3f255bd8.js | 1 + docs/assets/js/9e4087bc.342bf9bc.js | 1 + docs/assets/js/9e4087bc.b154716b.js | 1 - docs/assets/js/a6aa9e1f.a34fe105.js | 1 - docs/assets/js/a6aa9e1f.e531d6c8.js | 1 + docs/assets/js/a94703ab.3a38a667.js | 1 + docs/assets/js/a94703ab.50a268a2.js | 1 - docs/assets/js/a97f18d9.ce4ddba2.js | 1 + docs/assets/js/aaabe254.ba3e9f5f.js | 1 + docs/assets/js/ac51638e.cd23cca0.js | 1 - docs/assets/js/ac51638e.ef64a004.js | 1 + docs/assets/js/adb039a4.c0c263a3.js | 1 + docs/assets/js/be9e6e2d.944ea2f0.js | 1 + ...22c4f.9fe3ec4e.js => c4822c4f.c80625fe.js} | 2 +- docs/assets/js/c4f5d8e4.41d5b3c8.js | 1 + docs/assets/js/c4f5d8e4.f5d4db47.js | 1 - docs/assets/js/ccc49370.1c88001f.js | 1 + docs/assets/js/ccc49370.8f9e0351.js | 1 - docs/assets/js/d152284c.0800e671.js | 1 + docs/assets/js/d152284c.8adb699d.js | 1 - ...382f6.aaa6c9c6.js => e66382f6.ad26fd04.js} | 2 +- docs/assets/js/e8202a51.49541ad2.js | 1 + ...141e4.e3b70339.js => f2c141e4.7dc49a6b.js} | 2 +- docs/assets/js/f9755c6e.8811662b.js | 1 + ...4c8da.90063f83.js => f994c8da.256af20d.js} | 2 +- docs/assets/js/fa31f022.968b3373.js | 1 + docs/assets/js/fa31f022.c62034f4.js | 1 - docs/assets/js/fccc4c42.4690f84a.js | 1 + docs/assets/js/main.3e15e71d.js | 2 + ...CENSE.txt => main.3e15e71d.js.LICENSE.txt} | 0 docs/assets/js/main.7cb3cce5.js | 2 - docs/assets/js/runtime~main.ac134f18.js | 1 - docs/assets/js/runtime~main.d5e46064.js | 1 + docs/blog/archive/index.html | 8 +- docs/blog/atom.xml | 659 +++++++++++++++++- docs/blog/authors/index.html | 8 +- docs/blog/index.html | 355 +++++++++- docs/blog/post-five/index.html | 81 +++ docs/blog/post-one/index.html | 12 +- docs/blog/post-three/index.html | 206 ++++++ docs/blog/post-two/index.html | 144 ++++ docs/blog/rss.xml | 627 ++++++++++++++++- docs/blog/tags/bharatmlstack/index.html | 360 ++++++++++ docs/blog/tags/embedding-search/index.html | 93 +++ docs/blog/tags/index.html | 8 +- docs/blog/tags/inferflow/index.html | 144 ++++ docs/blog/tags/interaction-store/index.html | 139 +++- docs/blog/tags/llm/index.html | 157 +++++ docs/blog/tags/meesho/index.html | 355 +++++++++- docs/blog/tags/mlplatform/index.html | 355 +++++++++- docs/blog/tags/model-inference/index.html | 93 +++ .../blog/tags/online-feature-store/index.html | 10 +- docs/blog/tags/tensorrt-llm/index.html | 157 +++++ docs/blog/tags/vllm/index.html | 157 +++++ docs/category/go-sdk/index.html | 8 +- docs/category/inferflow/index.html | 17 + docs/category/numerix/index.html | 17 + docs/category/online-feature-store/index.html | 8 +- docs/category/python-sdk/index.html | 8 +- docs/category/quick-start/index.html | 8 +- docs/category/sdks/index.html | 8 +- docs/category/trufflebox-ui/index.html | 8 +- docs/category/v100/index.html | 10 +- docs/img/v1.0.0-inferflow-arch.png | Bin 0 -> 241092 bytes docs/img/v1.0.0-inferflow-dag-matrix.png | Bin 0 -> 93222 bytes docs/index.html | 10 +- docs/inferflow/v1.0.0/architecture/index.html | 171 +++++ .../inferflow/v1.0.0/configuration/index.html | 108 +++ .../v1.0.0/functionalities/index.html | 210 ++++++ docs/inferflow/v1.0.0/index.html | 17 + .../inferflow/v1.0.0/release-notes/index.html | 160 +++++ docs/markdown-page/index.html | 8 +- docs/numerix/v1.0.0/architecture/index.html | 143 ++++ docs/numerix/v1.0.0/benchmarks/index.html | 48 ++ .../numerix/v1.0.0/functionalities/index.html | 85 +++ docs/numerix/v1.0.0/index.html | 17 + docs/numerix/v1.0.0/release-notes/index.html | 89 +++ .../v1.0.0/architecture/index.html | 10 +- .../v1.0.0/benchmarks/index.html | 10 +- .../v1.0.0/data-formats/index.html | 10 +- .../v1.0.0/functionalities/index.html | 10 +- docs/online-feature-store/v1.0.0/index.html | 10 +- .../v1.0.0/release-notes/index.html | 10 +- .../quick-start/v1.0.0/quick-start/index.html | 10 +- docs/sdks/go/v1.0.0/feature_client/index.html | 10 +- .../v1.0.0/grpc_feature_client/index.html | 12 +- .../spark_feature_push_client/index.html | 10 +- docs/sitemap.xml | 2 +- .../trufflebox-ui/v1.0.0/userguide/index.html | 10 +- 176 files changed, 6503 insertions(+), 202 deletions(-) create mode 100644 docs-src/docs/inferflow/_category_.json create mode 100644 docs-src/docs/inferflow/v1.0.0/_category_.json create mode 100644 docs-src/docs/inferflow/v1.0.0/architecture.md create mode 100644 docs-src/docs/inferflow/v1.0.0/configuration.md create mode 100644 docs-src/docs/inferflow/v1.0.0/functionalities.md create mode 100644 docs-src/docs/inferflow/v1.0.0/release-notes.md create mode 100644 docs-src/static/img/v1.0.0-inferflow-arch.png create mode 100644 docs-src/static/img/v1.0.0-inferflow-dag-matrix.png rename docs/assets/css/{styles.8dc7ce64.css => styles.14b2d0af.css} (92%) delete mode 100644 docs/assets/images/bharatmlstack-72e1796337bfa224dee2a0f59ec4e2da.png create mode 100644 docs/assets/images/bms-7399e8796d2cd24617c432518ce3f312.png create mode 100644 docs/assets/images/interaction-str-d9e7aefea121aefb4e94c6c9f060d016.png create mode 100644 docs/assets/images/llm-plat-9ac69c0ffd8c387d177e582611b8c775.png create mode 100644 docs/assets/images/mp-dag-976ff51caf25f09d977ccc10e70918f3.png create mode 100644 docs/assets/images/mp-matrix-43994f433f78905ccbd10cfe284f3c9f.png create mode 100644 docs/assets/images/v1.0.0-inferflow-arch-bce54b3b4f7d3be68fa22dc204529f53.png create mode 100644 docs/assets/images/v1.0.0-inferflow-dag-matrix-0f13b51422587e6099cf4ee783844db1.png create mode 100644 docs/assets/images/vss-c482f6eac4c68b3219e4c562a6b717ec.png create mode 100644 docs/assets/js/00b12b9c.ea8fba0b.js delete mode 100644 docs/assets/js/01a85c17.5487421a.js create mode 100644 docs/assets/js/01a85c17.9618aedf.js rename docs/assets/js/{0413d9af.cb9ba41f.js => 0413d9af.aecac3d5.js} (56%) create mode 100644 docs/assets/js/08daf6b6.852abb6b.js delete mode 100644 docs/assets/js/09dd5be9.9cd209bb.js create mode 100644 docs/assets/js/09dd5be9.be7fd2aa.js create mode 100644 docs/assets/js/0a89f5c9.190be82b.js rename docs/assets/js/{0fff8dc8.7a470540.js => 0fff8dc8.fcba975a.js} (98%) rename docs/assets/js/{14064408.be0f96be.js => 14064408.74c23df4.js} (75%) create mode 100644 docs/assets/js/14eb3368.398ac934.js delete mode 100644 docs/assets/js/14eb3368.e9006523.js create mode 100644 docs/assets/js/176d210f.21c450d1.js delete mode 100644 docs/assets/js/176d210f.47d21595.js create mode 100644 docs/assets/js/17896441.4ff7d852.js delete mode 100644 docs/assets/js/17896441.e023d99a.js rename docs/assets/js/{1a64de69.22893b6e.js => 1a64de69.844e372c.js} (69%) create mode 100644 docs/assets/js/1f391b9e.4acd5995.js delete mode 100644 docs/assets/js/1f391b9e.8e4379a0.js create mode 100644 docs/assets/js/252a9097.3acfe41e.js create mode 100644 docs/assets/js/2c62ead1.fc5c1b17.js create mode 100644 docs/assets/js/2d865531.3ec70534.js delete mode 100644 docs/assets/js/2d865531.a5005531.js create mode 100644 docs/assets/js/3216e812.877aa30c.js rename docs/assets/js/{393be207.81b456e5.js => 393be207.6e979fd2.js} (80%) rename docs/assets/js/{3980073a.4ab85476.js => 3980073a.43116f8b.js} (71%) create mode 100644 docs/assets/js/3aeb33c7.b4a8c40f.js delete mode 100644 docs/assets/js/4137b431.2e5cd4ca.js create mode 100644 docs/assets/js/4137b431.c6fedbd3.js create mode 100644 docs/assets/js/428aafcc.2c1db158.js create mode 100644 docs/assets/js/45a03d07.6212d749.js rename docs/assets/js/{479eb034.0c88dc68.js => 479eb034.fc01692f.js} (70%) rename docs/assets/js/{4af50aac.a113ce2d.js => 4af50aac.f9b29cbf.js} (97%) delete mode 100644 docs/assets/js/4caa95bf.2e5bda05.js create mode 100644 docs/assets/js/4caa95bf.ca3bb1d0.js create mode 100644 docs/assets/js/4df0e30b.00b3a0ff.js create mode 100644 docs/assets/js/50899a24.c0cfae29.js rename docs/assets/js/{5e95c892.a6c239e7.js => 5e95c892.7a2663a1.js} (62%) create mode 100644 docs/assets/js/621db11d.1a835b77.js delete mode 100644 docs/assets/js/621db11d.515621df.js create mode 100644 docs/assets/js/6479fb86.96631f8d.js delete mode 100644 docs/assets/js/6479fb86.d4723af3.js delete mode 100644 docs/assets/js/67d4782a.09ac845b.js create mode 100644 docs/assets/js/67d4782a.96733ef0.js create mode 100644 docs/assets/js/6870.25f53758.js delete mode 100644 docs/assets/js/6870.6d10e1d8.js delete mode 100644 docs/assets/js/6875c492.72d20027.js create mode 100644 docs/assets/js/6875c492.7e263e94.js create mode 100644 docs/assets/js/6bb91276.d5be09e8.js create mode 100644 docs/assets/js/72dc5b25.20421ae4.js delete mode 100644 docs/assets/js/72dc5b25.e57720a7.js delete mode 100644 docs/assets/js/7518.6ac3b679.js create mode 100644 docs/assets/js/7518.9525ffbe.js create mode 100644 docs/assets/js/79ae4ea7.1416ba4f.js create mode 100644 docs/assets/js/7fa80e1c.78f6a21e.js delete mode 100644 docs/assets/js/7fa80e1c.b5f726bf.js delete mode 100644 docs/assets/js/814f3328.b45803b6.js create mode 100644 docs/assets/js/814f3328.bfb123e8.js create mode 100644 docs/assets/js/8dd2df60.f10b075c.js create mode 100644 docs/assets/js/8ea48c46.e52cd527.js create mode 100644 docs/assets/js/93f344c7.7cebeb9e.js create mode 100644 docs/assets/js/99009a21.1a57fa22.js create mode 100644 docs/assets/js/9aed321e.0ede45c0.js create mode 100644 docs/assets/js/9d13045e.3f255bd8.js create mode 100644 docs/assets/js/9e4087bc.342bf9bc.js delete mode 100644 docs/assets/js/9e4087bc.b154716b.js delete mode 100644 docs/assets/js/a6aa9e1f.a34fe105.js create mode 100644 docs/assets/js/a6aa9e1f.e531d6c8.js create mode 100644 docs/assets/js/a94703ab.3a38a667.js delete mode 100644 docs/assets/js/a94703ab.50a268a2.js create mode 100644 docs/assets/js/a97f18d9.ce4ddba2.js create mode 100644 docs/assets/js/aaabe254.ba3e9f5f.js delete mode 100644 docs/assets/js/ac51638e.cd23cca0.js create mode 100644 docs/assets/js/ac51638e.ef64a004.js create mode 100644 docs/assets/js/adb039a4.c0c263a3.js create mode 100644 docs/assets/js/be9e6e2d.944ea2f0.js rename docs/assets/js/{c4822c4f.9fe3ec4e.js => c4822c4f.c80625fe.js} (98%) create mode 100644 docs/assets/js/c4f5d8e4.41d5b3c8.js delete mode 100644 docs/assets/js/c4f5d8e4.f5d4db47.js create mode 100644 docs/assets/js/ccc49370.1c88001f.js delete mode 100644 docs/assets/js/ccc49370.8f9e0351.js create mode 100644 docs/assets/js/d152284c.0800e671.js delete mode 100644 docs/assets/js/d152284c.8adb699d.js rename docs/assets/js/{e66382f6.aaa6c9c6.js => e66382f6.ad26fd04.js} (69%) create mode 100644 docs/assets/js/e8202a51.49541ad2.js rename docs/assets/js/{f2c141e4.e3b70339.js => f2c141e4.7dc49a6b.js} (68%) create mode 100644 docs/assets/js/f9755c6e.8811662b.js rename docs/assets/js/{f994c8da.90063f83.js => f994c8da.256af20d.js} (75%) create mode 100644 docs/assets/js/fa31f022.968b3373.js delete mode 100644 docs/assets/js/fa31f022.c62034f4.js create mode 100644 docs/assets/js/fccc4c42.4690f84a.js create mode 100644 docs/assets/js/main.3e15e71d.js rename docs/assets/js/{main.7cb3cce5.js.LICENSE.txt => main.3e15e71d.js.LICENSE.txt} (100%) delete mode 100644 docs/assets/js/main.7cb3cce5.js delete mode 100644 docs/assets/js/runtime~main.ac134f18.js create mode 100644 docs/assets/js/runtime~main.d5e46064.js create mode 100644 docs/blog/post-five/index.html create mode 100644 docs/blog/post-three/index.html create mode 100644 docs/blog/post-two/index.html create mode 100644 docs/blog/tags/bharatmlstack/index.html create mode 100644 docs/blog/tags/embedding-search/index.html create mode 100644 docs/blog/tags/inferflow/index.html create mode 100644 docs/blog/tags/llm/index.html create mode 100644 docs/blog/tags/model-inference/index.html create mode 100644 docs/blog/tags/tensorrt-llm/index.html create mode 100644 docs/blog/tags/vllm/index.html create mode 100644 docs/category/inferflow/index.html create mode 100644 docs/category/numerix/index.html create mode 100644 docs/img/v1.0.0-inferflow-arch.png create mode 100644 docs/img/v1.0.0-inferflow-dag-matrix.png create mode 100644 docs/inferflow/v1.0.0/architecture/index.html create mode 100644 docs/inferflow/v1.0.0/configuration/index.html create mode 100644 docs/inferflow/v1.0.0/functionalities/index.html create mode 100644 docs/inferflow/v1.0.0/index.html create mode 100644 docs/inferflow/v1.0.0/release-notes/index.html create mode 100644 docs/numerix/v1.0.0/architecture/index.html create mode 100644 docs/numerix/v1.0.0/benchmarks/index.html create mode 100644 docs/numerix/v1.0.0/functionalities/index.html create mode 100644 docs/numerix/v1.0.0/index.html create mode 100644 docs/numerix/v1.0.0/release-notes/index.html diff --git a/docs-src/blog/bharatmlstack-history/post-five/index.md b/docs-src/blog/bharatmlstack-history/post-five/index.md index cad916a0..6f488eec 100644 --- a/docs-src/blog/bharatmlstack-history/post-five/index.md +++ b/docs-src/blog/bharatmlstack-history/post-five/index.md @@ -2,7 +2,7 @@ slug: post-five title: "LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale" authors: [jaya] -date: 2023-10-21 +date: 2025-6-2 tags: [llm, vllm, tensorrt-llm, mlplatform, meesho, bharatmlstack] --- diff --git a/docs-src/blog/bharatmlstack-history/post-four/index.md b/docs-src/blog/bharatmlstack-history/post-four/index.md index fc57c10d..b9428b85 100644 --- a/docs-src/blog/bharatmlstack-history/post-four/index.md +++ b/docs-src/blog/bharatmlstack-history/post-four/index.md @@ -2,7 +2,7 @@ slug: post-three title: "Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving" authors: [jaya] -date: 2023-10-21 +date: 2025-3-29 tags: [llm, vllm, tensorrt-llm, mlplatform, meesho, bharatmlstack] --- diff --git a/docs-src/blog/bharatmlstack-history/post-three/index.md b/docs-src/blog/bharatmlstack-history/post-three/index.md index ccf9fff5..96598905 100644 --- a/docs-src/blog/bharatmlstack-history/post-three/index.md +++ b/docs-src/blog/bharatmlstack-history/post-three/index.md @@ -2,7 +2,7 @@ slug: post-three title: "Cracking the Code: Scaling Model Inference & Real-Time Embedding Search" authors: [aditya, jaya, adarsha] -date: 2023-10-21 +date: 2024-05-21 tags: [model-inference, embedding-search, mlplatform, meesho, bharatmlstack] --- diff --git a/docs-src/blog/bharatmlstack-history/post-two/index.md b/docs-src/blog/bharatmlstack-history/post-two/index.md index 5a1061a6..9c33346d 100644 --- a/docs-src/blog/bharatmlstack-history/post-two/index.md +++ b/docs-src/blog/bharatmlstack-history/post-two/index.md @@ -12,7 +12,7 @@ tags: [inferflow, interaction-store, mlplatform, meesho, bharatmlstack] By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. And it worked. Mostly. But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. -This is the story of how we tackled these challenges—building Model Proxy for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS. ### The Cost of Success Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant: @@ -72,9 +72,9 @@ A key insight emerged: Entities that contribute features for a model always map ![MP Dag](./mp-dag.png) -With this, we designed Model Proxy, a graph-driven feature retrieval system: +With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system: -- 1️⃣ Model Proxy takes a modelId and context IDs (e.g., userId, productIds) +- 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds) - 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper - 3️⃣ Executes the graph to resolve entity relationships dynamically - 4️⃣ Outputs a 2D matrix of feature vectors @@ -87,7 +87,7 @@ With this, we designed Model Proxy, a graph-driven feature retrieval system: Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: ![MP matrix](./mp-matrix.png) -We built Model Proxy in GoLang, using gRPC and Proto3 serialization for efficiency. +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency. #### Problem 2: Scaling Without Breaking the Bank With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on: @@ -146,5 +146,5 @@ While planning for 2023 MBS, we ran into a critical scalability bottleneck: This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads. ### Conclusion: From Firefighting to Future-Proofing -What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Model Proxy, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3. diff --git a/docs-src/docs/inferflow/_category_.json b/docs-src/docs/inferflow/_category_.json new file mode 100644 index 00000000..384c93bd --- /dev/null +++ b/docs-src/docs/inferflow/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Inferflow", + "position": 2, + "link": { + "type": "generated-index", + "description": "Inferflow is a graph-driven feature retrieval and model inference orchestration engine. It dynamically resolves entity relationships via configurable DAGs, retrieves features from the Online Feature Store, and orchestrates model scoring — all without custom code." + } +} diff --git a/docs-src/docs/inferflow/v1.0.0/_category_.json b/docs-src/docs/inferflow/v1.0.0/_category_.json new file mode 100644 index 00000000..0641455e --- /dev/null +++ b/docs-src/docs/inferflow/v1.0.0/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "v1.0.0", + "position": 1, + "link": { + "type": "generated-index", + "description": "Inferflow v1.0.0", + "slug": "/inferflow/v1.0.0" + } +} diff --git a/docs-src/docs/inferflow/v1.0.0/architecture.md b/docs-src/docs/inferflow/v1.0.0/architecture.md new file mode 100644 index 00000000..06860e46 --- /dev/null +++ b/docs-src/docs/inferflow/v1.0.0/architecture.md @@ -0,0 +1,267 @@ +--- +title: Architecture +sidebar_position: 1 +--- + +# BharatMLStack - Inferflow + +Inferflow is part of **BharatMLStack**, a graph-driven feature retrieval and model inference orchestration engine built in **Go**. It eliminates the need for custom feature retrieval code by using configurable DAG topologies to dynamically resolve entity relationships, fetch features from the Online Feature Store, and orchestrate model scoring — all driven by configuration stored in **etcd**. + +--- + +## Overview + +In a typical ML serving pipeline, every new model requires bespoke code to: +- Fetch features from multiple entities (user, product, user x category, etc.) +- Infer intermediate entity relationships (e.g., extract category from product to fetch user x category data) +- Orchestrate one or more model inference calls +- Handle I/O, batching, and error propagation + +Inferflow abstracts all of this behind a **config-driven DAG executor**. Given a `model_config_id` and context entities (e.g., `userId`, `productIds`), it: + +1. Loads a pre-defined feature retrieval and inference graph from etcd +2. Executes the graph to resolve entity relationships dynamically +3. Retrieves features from the Online Feature Store (OnFS) in parallel +4. Calls model serving endpoints (Predator) and compute services (Numerix) +5. Returns scored results as a structured response + +--- + +## High-Level Architecture + +![Inferflow Architecture - DAG Topology Executor](../../../static/img/v1.0.0-inferflow-arch.png) + +The diagram shows the internal DAG structure of Inferflow's topology executor. gRPC APIs (Pair, Point, Slate) feed into the DAG, where **Feature Init** bootstraps the ComponentMatrix. Feature components (FS User, FS Product, FS Region, FS User Cat, FS Region Scat) fetch features from **OnFS** in parallel and populate columns in the shared **2D Result Matrix**. Model components (Model A, Model B) call **Predator** for inference, and compute components call **Numerix** for operations like reranking. The entire DAG topology is driven by config loaded from **etcd**. + +--- + +## Core Components + +### 1. gRPC Server + +Inferflow exposes its APIs via a gRPC server, with HTTP health endpoints multiplexed on the same port using **cmux**. The server provides: + +- **Inferflow API** — `RetrieveModelScore`: entity-based feature retrieval and scoring +- **Predict API** — `InferPointWise`, `InferPairWise`, `InferSlateWise`: structured inference with targets, pairs, and slates + +### 2. DAG Topology Executor + +The heart of Inferflow. Each model configuration defines a `component_dependency` map that describes a Directed Acyclic Graph (DAG) of components. + +**Execution model:** +- Uses **Kahn's algorithm** for topological ordering +- Components at the same level run **concurrently** in goroutines +- All components share a mutable `ComponentMatrix` (rows = entity IDs, columns = features/scores) +- DAG topologies are **cached** using Murmur3 hashing with Ristretto cache + +**Validation:** +- Cycle detection via in-degree analysis +- Component existence verification against the `ComponentProvider` + +### 3. Component Types + +Inferflow defines four types of DAG components: + +| Component | Role | External Dependency | +|-----------|------|---------------------| +| **FeatureInitComponent** | Root node — initializes the `ComponentMatrix` with entity IDs and schema | None | +| **FeatureComponent** | Fetches features from the Online Feature Store for a specific entity type | OnFS (gRPC) | +| **PredatorComponent** | Calls model serving endpoints for inference scoring | Predator / Helix (gRPC) | +| **NumerixComponent** | Calls compute engine for operations like reranking | Numerix (gRPC) | + +### 4. ComponentMatrix — The 2D Result Matrix + +The ComponentMatrix is a shared, mutable 2D data structure that flows through the entire DAG. Every component reads from and writes to this matrix, progressively building a complete feature + score row for each entity. + +![DAG Execution & 2D Matrix Flow](../../../static/img/v1.0.0-inferflow-dag-matrix.png) + +#### How the matrix evolves through the DAG + +The diagram above illustrates the three execution phases and how the 2D matrix grows at each stage: + +**Phase 1 — Feature Retrieval** + +The **init** node creates an empty matrix with one row per target entity ID. Feature components then execute — first the top-level entities (entity A, entity B) fetch their features from OnFS and populate their columns (shown as colored blocks). Derived entities (entity C, D, E) resolve their keys from the already-populated columns and add more feature columns. At this point the matrix contains all feature data, with each color representing features from a different entity. + +The right side of the diagram shows the matrix being **decomposed** — feature columns from different entities are separated into per-model input groups, selecting only the features each model needs. + +**Phase 2 — Model Invocation** + +Model X and Model Y each receive their decomposed feature slices, call **Predator** for inference, and write score columns back into the matrix (shown as new colored columns appended to the right). Multiple models can run in parallel if they don't depend on each other's outputs. + +The scores are then decomposed again to prepare inputs for the compute stage. + +**Phase 3 — Numerix Compute** + +The **Score Comb** node takes score columns from both models, calls **Numerix** for a final compute operation (e.g., score combination, reranking), and writes the final score column (shown in dark red) into the matrix. The result is a complete row per entity with all features and all scores. + +#### Matrix structure + +| Property | Description | +|----------|-------------| +| **Rows** | One per target entity ID (e.g., each product being scored) | +| **String columns** | Human-readable values used in responses | +| **Byte columns** | Binary-encoded feature values used for model inputs | +| **Column naming** | `entity_label:feature_group:feature_name` | + +Each component only reads the columns it needs and writes to its own columns, enabling safe concurrent execution across independent branches of the DAG. + +For slate-based APIs, a companion `SlateData` structure holds per-slate matrices and scores, with `slate_target_indices` mapping slates to rows in the main matrix. + +### 5. Configuration Management (etcd) + +Model configurations are stored in etcd and hot-reloaded via watchers: + +- **Config paths**: `/config/inferflow/services/`, `/model-config` +- **Watch mechanism**: etcd watchers trigger `ReloadModelConfigMapAndRegisterComponents` on any change +- **On reload**: Updates `ConfigMap`, re-initializes feature schemas, and re-registers DAG components + +This means new models or configuration changes go live **without redeployment**. + +### 6. External Integrations + +#### Online Feature Store (OnFS) +- gRPC client calling `FeatureService.RetrieveFeatures` +- Batched retrieval with configurable batch size and deadline +- Auth via `CALLER_ID` and `CALLER_TOKEN` metadata + +#### Predator (Model Serving) +- Uses `helix-client` for model inference +- Supports **percentage-based traffic routing** across multiple model endpoints +- Configurable calibration and batch sizing + +#### Numerix (Compute Engine) +- Uses `helix-client` Numerix client +- RPC: `NumerixService.Compute` with entity score data +- Used for compute operations like reranking + +#### Kafka (Inference Logging) +- Async inference log publishing using `segmentio/kafka-go` +- Supports **Proto**, **Arrow**, and **Parquet** serialization formats +- Configurable sampling via `LoggingPerc` and user-based daily sampling + +--- + +## Request Flow + +``` +1. Client sends gRPC request with model_config_id + entity IDs + │ +2. Load ModelConfig from etcd-backed ConfigMap + │ +3. Adapt proto request → ComponentRequest + (build ComponentMatrix with entity schema) + │ +4. Resolve DAG topology from component_dependency config + │ +5. Execute DAG (Kahn's algorithm, concurrent): + │ + ├─ FeatureInitComponent: populate matrix with entity IDs + schema + │ + ├─ FeatureComponents (parallel): fetch features from OnFS → fill matrix columns + │ + ├─ PredatorComponent: build feature payloads from matrix → call model → write scores + │ + └─ NumerixComponent: read scores from matrix → call compute → write final scores + │ +6. Build response from matrix columns per ResponseConfig + │ +7. (Optional) Async Kafka logging of inference features and scores + │ +8. Return gRPC response to client +``` + +--- + +## Observability + +### Metrics (StatsD / Telegraf) + +| Metric | Description | +|--------|-------------| +| `inferflow.retrievemodelscore.request.total` | Total RetrieveModelScore requests | +| `inferflow.retrievemodelscore.latency` | End-to-end latency | +| `inferflow.retrievemodelscore.batch.size` | Batch size per request | +| `predict.infer.request.total` | Total Predict API requests | +| `predict.infer.latency` | Predict API latency | +| `inferflow.component.execution.total` | Per-component execution count | +| `inferflow.component.execution.latency` | Per-component latency | +| `inferflow.component.execution.error` | Component-level errors | +| `inferflow.component.feature.count` | Feature count per component | +| `inferflow.external.api.request.total` | External API call count | +| `inferflow.external.api.latency` | External API latency | +| `inferflow.component.inmemorycache.request.total` | Cache hit/miss total | +| `inferflow.component.inmemorycache.miss` | Cache misses | +| `inferflow.logging.kafka_sent` | Kafka log messages sent | + +### Logging +- Structured JSON logging via **zerolog** +- Configurable log levels + +--- + +## Deployment + +### Docker + +Inferflow ships as a multi-stage Docker image: + +- **Builder**: Go 1.19 Alpine with optional Kafka support (librdkafka) +- **Runtime**: Debian 10 slim +- **Build command**: `go build -tags musl -ldflags "-extldflags -static" -o server cmd/${module}/main.go` + +### Supported Environments +- Kubernetes (K8s) +- Google Kubernetes Engine (GKE) +- Amazon EKS + +### Configuration +All configuration is driven via environment variables (loaded by Viper) and etcd. No config files are required at deployment time. + +--- + +## Target Users + +| User | Role | +|------|------| +| Data Scientists | Define model configs and feature retrieval graphs via config — no code needed | +| ML Engineers | Onboard new models by updating etcd config; manage DAG topologies | +| Backend Developers | Integrate via gRPC SDKs for real-time scoring in application services | +| Platform Engineers | Deploy, scale, and monitor Inferflow clusters | + +--- + +## Benefits + +- **No-code feature retrieval** — new models need only a config change, not custom code +- **Feature consistency** — same graph-driven retrieval ensures identical features across experiments +- **Faster iteration** — experiment with new models in minutes, not days +- **Concurrent execution** — DAG components run in parallel for minimal latency +- **Hot reloading** — model config changes via etcd go live without redeployment +- **Multi-API support** — PointWise, PairWise, and SlateWise inference patterns out of the box +- **Production-grade** — built in Go with gRPC, designed for millions of QPS + +--- + +## Contributing + +We welcome contributions from the community! Please see our [Contributing Guide](https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md) for details on how to get started. + +## Community & Support + +- **Discord**: Join our [community chat](https://discord.gg/XkT7XsV2AU) +- **Issues**: Report bugs and request features on [GitHub Issues](https://github.com/Meesho/BharatMLStack/issues) +- **Email**: Contact us at [ml-oss@meesho.com](mailto:ml-oss@meesho.com) + +## License + +BharatMLStack is open-source software licensed under the [BharatMLStack Business Source License 1.1](https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md). + +--- + +
+ Built with ❤️ for the ML community from Meesho +
+
+ If you find this useful, ⭐️ the repo — your support means the world to us! +
diff --git a/docs-src/docs/inferflow/v1.0.0/configuration.md b/docs-src/docs/inferflow/v1.0.0/configuration.md new file mode 100644 index 00000000..35b9b1bd --- /dev/null +++ b/docs-src/docs/inferflow/v1.0.0/configuration.md @@ -0,0 +1,366 @@ +--- +title: Configuration Guide +sidebar_position: 3 +--- + +# Inferflow - Configuration Guide + +Inferflow is fully config-driven. All model onboarding, feature retrieval logic, DAG topology, and inference behavior are controlled through configuration stored in **etcd** — with zero code changes required. + +--- + +## Configuration Overview + +Inferflow configuration is organized into two layers: + +1. **Static config** — Environment variables loaded at startup (via Viper) +2. **Dynamic config** — Model configurations stored in etcd, hot-reloaded on change + +--- + +## Static Configuration (Environment Variables) + +These are set at deployment time and require a restart to change. + +### Server + +| Variable | Description | Example | +|----------|-------------|---------| +| `APP_PORT` | gRPC/HTTP server port | `50051` | +| `APP_ENV` | Environment name | `production` | + +### etcd + +| Variable | Description | Example | +|----------|-------------|---------| +| `ETCD_ENDPOINTS` | Comma-separated etcd endpoints | `etcd-0:2379,etcd-1:2379` | +| `ETCD_DIAL_TIMEOUT` | Connection timeout | `5s` | + +### Online Feature Store (OnFS) + +| Variable | Description | Example | +|----------|-------------|---------| +| `externalServiceOnFs_host` | OnFS gRPC host | `onfs-api:50051` | +| `externalServiceOnFs_callerId` | Caller ID for auth | `inferflow` | +| `externalServiceOnFs_callerToken` | Caller token for auth | `` | +| `externalServiceOnFs_batchSize` | Batch size for feature retrieval | `100` | +| `externalServiceOnFs_deadline` | Request deadline | `200ms` | + +### Predator (Model Serving) + +| Variable | Description | Example | +|----------|-------------|---------| +| `externalServicePredator_defaultDeadline` | Default inference deadline | `100ms` | + +### Numerix (Compute Engine) + +| Variable | Description | Example | +|----------|-------------|---------| +| `numerixClientV1_host` | Numerix gRPC host | `numerix:50052` | +| `numerixClientV1_deadline` | Request deadline | `100ms` | + +### Kafka (Inference Logging) + +| Variable | Description | Example | +|----------|-------------|---------| +| `KafkaBootstrapServers` | Kafka broker addresses | `kafka-0:9092,kafka-1:9092` | +| `KafkaLoggingTopic` | Topic for inference logs | `inferflow-logs` | + +### Metrics (StatsD / Telegraf) + +| Variable | Description | Example | +|----------|-------------|---------| +| `TELEGRAF_HOST` | StatsD host | `telegraf` | +| `TELEGRAF_PORT` | StatsD port | `8125` | + +### In-Memory Cache + +| Variable | Description | Example | +|----------|-------------|---------| +| `CACHE_SIZE_MB` | Cache size in MB | `512` | +| `CACHE_TYPE` | Cache implementation | `freecache` | + +--- + +## Dynamic Configuration (etcd Model Config) + +Model configurations are stored in etcd and hot-reloaded. Each model is identified by a `model_config_id`. + +### Config Structure + +```json +{ + "model_config_id_example": { + "dag_execution_config": { + "component_dependency": { + "feature_initializer": ["fs_user", "fs_product"], + "fs_user": ["ranker_model"], + "fs_product": ["ranker_model"], + "ranker_model": [] + } + }, + "component_config": { + "feature_component_config": { + "fs_user": { ... }, + "fs_product": { ... } + }, + "predator_component_config": { + "ranker_model": { ... } + }, + "numerix_component_config": {}, + "cache_enabled": true, + "cache_version": "v1", + "cache_ttl": 300, + "error_logging_percent": 10 + }, + "response_config": { + "features": ["ranker_model:score"], + "model_schema_perc": 100, + "logging_perc": 5, + "log_features": ["fs_user:profile:age", "ranker_model:score"], + "log_batch_size": 100 + } + } +} +``` + +--- + +### DAG Execution Config + +Defines the component dependency graph. + +```json +{ + "component_dependency": { + "": ["", ""], + "": [""], + "": [""], + "": [] + } +} +``` + +**Rules:** +- The graph must be a valid DAG (no cycles) +- Components with no parents (zero in-degree) execute first +- Components with empty dependency arrays `[]` are leaf nodes +- All component names must match registered components in the `ComponentConfig` + +--- + +### Feature Component Config + +Configures how features are fetched from the Online Feature Store. + +```json +{ + "fs_user": { + "fs_keys": { + "schema": ["user_id"], + "col": "context:user:user_id" + }, + "fs_request": { + "entity_label": "user", + "feature_groups": [ + { + "label": "demographics", + "feature_labels": ["age", "location", "income_bracket"] + }, + { + "label": "behavior", + "feature_labels": ["click_rate", "purchase_freq"] + } + ] + }, + "fs_flatten_resp_keys": ["user_id"], + "col_name_prefix": "user", + "comp_cache_enabled": true, + "comp_cache_ttl": 600, + "composite_id": false + } +} +``` + +| Field | Description | +|-------|-------------| +| `fs_keys` | How to extract lookup keys from the matrix. `schema` defines key column names; `col` references a matrix column | +| `fs_request` | OnFS query: entity label + feature groups with specific features | +| `fs_flatten_resp_keys` | Keys to flatten in response mapping | +| `col_name_prefix` | Prefix for matrix column names (e.g., `user:demographics:age`) | +| `comp_cache_enabled` | Enable in-memory caching for this component | +| `comp_cache_ttl` | Cache TTL in seconds | +| `composite_id` | Whether entity keys are composite | + +--- + +### Predator Component Config + +Configures model inference endpoints. + +```json +{ + "ranker_model": { + "model_name": "product_ranker_v3", + "model_endpoint": "predator-ranker:8080", + "model_end_points": { + "predator-ranker-v3:8080": 80, + "predator-ranker-v4:8080": 20 + }, + "deadline": 100, + "batch_size": 50, + "calibration": { + "enabled": false + }, + "inputs": { + "feature_map": { + "user:demographics:age": "INT32", + "user:behavior:click_rate": "FP32", + "product:attributes:category_id": "INT32" + } + }, + "outputs": { + "score_columns": ["score", "confidence"] + }, + "slate_component": false + } +} +``` + +| Field | Description | +|-------|-------------| +| `model_name` | Model identifier on the serving platform | +| `model_endpoint` | Primary model serving endpoint | +| `model_end_points` | Multiple endpoints with percentage-based traffic routing | +| `deadline` | Inference timeout in milliseconds | +| `batch_size` | Max items per inference batch | +| `calibration` | Score calibration settings | +| `inputs.feature_map` | Map of matrix column → data type for model input | +| `outputs.score_columns` | Column names for model output scores | +| `slate_component` | If true, runs per-slate inference | + +--- + +### Numerix Component Config + +Configures compute operations (e.g., reranking). + +```json +{ + "reranker": { + "score_column": "final_score", + "data_type": "FP32", + "score_mapping": { + "ranker_model:score": "FP32", + "user:behavior:click_rate": "FP32" + }, + "compute_id": "diversity_rerank_v1", + "slate_component": false + } +} +``` + +| Field | Description | +|-------|-------------| +| `score_column` | Output column name for the computed score | +| `data_type` | Output data type | +| `score_mapping` | Map of matrix columns to include as compute inputs | +| `compute_id` | Identifies the compute operation on Numerix | +| `slate_component` | If true, runs per-slate compute | + +--- + +### Response Config + +Controls what data is returned to the client and what is logged. + +```json +{ + "features": ["ranker_model:score", "reranker:final_score"], + "model_schema_perc": 100, + "logging_perc": 5, + "log_features": [ + "user:demographics:age", + "ranker_model:score", + "reranker:final_score" + ], + "log_batch_size": 100 +} +``` + +| Field | Description | +|-------|-------------| +| `features` | Matrix columns to include in the gRPC response | +| `model_schema_perc` | Percentage of requests that include full schema in response | +| `logging_perc` | Percentage of requests to send to Kafka for logging | +| `log_features` | Specific features to include in log messages | +| `log_batch_size` | Batch size for grouped log messages | + +--- + +### Service-Level Config + +Global settings that apply across all models. + +```json +{ + "v2_logging_type": "proto", + "compression_enabled": false +} +``` + +| Field | Values | Description | +|-------|--------|-------------| +| `v2_logging_type` | `proto`, `arrow`, `parquet` | Serialization format for Kafka inference logs | +| `compression_enabled` | `true`, `false` | Enable compression for log messages | + +--- + +## Example: Onboarding a New Model + +To onboard a new ranking model, update the etcd config: + +**Step 1:** Define the feature retrieval graph + +```json +"component_dependency": { + "feature_initializer": ["fs_user", "fs_product", "fs_user_x_category"], + "fs_product": ["fs_user_x_category"], + "fs_user": ["new_ranker"], + "fs_user_x_category": ["new_ranker"], + "new_ranker": [] +} +``` + +Here `fs_user_x_category` depends on `fs_product` because it needs the category ID extracted from the product entity to resolve the user x category key. + +**Step 2:** Configure each component (feature groups, model endpoints, etc.) + +**Step 3:** Push the config to etcd — Inferflow picks it up automatically via watchers. + +No code changes. No redeployment. The new model is live. + +--- + +## Contributing + +We welcome contributions from the community! Please see our [Contributing Guide](https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md) for details on how to get started. + +## Community & Support + +- **Discord**: Join our [community chat](https://discord.gg/XkT7XsV2AU) +- **Issues**: Report bugs and request features on [GitHub Issues](https://github.com/Meesho/BharatMLStack/issues) +- **Email**: Contact us at [ml-oss@meesho.com](mailto:ml-oss@meesho.com) + +## License + +BharatMLStack is open-source software licensed under the [BharatMLStack Business Source License 1.1](https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md). + +--- + +
+ Built with ❤️ for the ML community from Meesho +
+
+ If you find this useful, ⭐️ the repo — your support means the world to us! +
diff --git a/docs-src/docs/inferflow/v1.0.0/functionalities.md b/docs-src/docs/inferflow/v1.0.0/functionalities.md new file mode 100644 index 00000000..cb944b1b --- /dev/null +++ b/docs-src/docs/inferflow/v1.0.0/functionalities.md @@ -0,0 +1,309 @@ +--- +title: Key Functionalities +sidebar_position: 2 +--- + +# Inferflow - Key Functionalities + +## Overview + +Inferflow is a high-performance, config-driven ML inference orchestration engine built in **Go**. It provides **no-code feature retrieval**, **DAG-based execution**, and **multi-pattern model inference** — enabling ML teams to onboard new models through configuration changes alone. + +--- + +## Core Capabilities + +### Graph-Driven Feature Retrieval + +Inferflow's defining feature is its ability to resolve entity relationships and retrieve features through configurable DAG topologies — no custom code required. + +**How it works:** + +1. A `model_config_id` maps to a pre-defined DAG of components +2. Context entity IDs (e.g., `userId`, `productIds`) are provided at request time +3. The DAG resolves intermediate entity relationships (e.g., extracting `category` from `product` to fetch `user x category` features) +4. Features are fetched in parallel from the Online Feature Store +5. A 2D feature matrix is assembled and passed to model scoring + +**Impact:** +- New models require only a config update — no code changes +- Feature consistency is guaranteed across experiments +- Iteration cycles drop from days to minutes + +### DAG Topology Executor + +The execution engine uses **Kahn's algorithm** for topological ordering with **concurrent goroutine execution** at each level: + +``` +component_dependency: { + "feature_initializer": ["fs_user", "fs_product"], + "fs_user": ["ranker"], + "fs_product": ["ranker"], + "ranker": ["reranker"], + "reranker": [] +} +``` + +This config defines: +- `feature_initializer` runs first (zero in-degree) +- `fs_user` and `fs_product` run **in parallel** after init +- `ranker` runs after both feature components complete +- `reranker` runs after the ranker + +**Key properties:** +- Cycle detection via in-degree analysis +- DAG topologies cached using Murmur3 hashing (Ristretto cache) +- Components are registered and resolved via a `ComponentProvider` + +--- + +## Multi-Pattern Inference APIs + +Inferflow supports three inference patterns via the **Predict API**, each designed for different ML use cases: + +### PointWise Inference + +Score each target independently against context features. + +```protobuf +rpc InferPointWise(PredictRequest) returns (PredictResponse); +``` + +**Use cases:** Click-through rate prediction, fraud scoring, relevance ranking + +**Input:** Context features + list of targets (e.g., products) +**Output:** Per-target scores + +### PairWise Inference + +Score pairs of targets relative to each other. + +```protobuf +rpc InferPairWise(PredictRequest) returns (PredictResponse); +``` + +**Use cases:** Preference learning, comparison-based ranking + +**Input:** Context features + targets + pair indices (first/second) +**Output:** Per-pair scores + optional per-target scores + +### SlateWise Inference + +Score groups (slates) of targets together, capturing inter-item effects. + +```protobuf +rpc InferSlateWise(PredictRequest) returns (PredictResponse); +``` + +**Use cases:** Whole-page optimization, slate-level reranking, diversity-aware scoring + +**Input:** Context features + targets + slate definitions (target indices per slate) +**Output:** Per-slate scores + optional per-target scores + +--- + +## Entity & Legacy API + +### RetrieveModelScore + +The original Inferflow API for entity-based feature retrieval and scoring: + +```protobuf +service Inferflow { + rpc RetrieveModelScore(InferflowRequestProto) returns (InferflowResponseProto); +} +``` + +**Request structure:** + +| Field | Description | +|-------|-------------| +| `entities` | List of entity types with their IDs and optional inline features | +| `model_config_id` | Identifies the model configuration (DAG, components, response format) | +| `tracking_id` | Request-level tracing identifier | + +**Entity structure:** +- `entity`: Entity type label (e.g., `"user"`, `"product"`) +- `ids`: List of entity IDs +- `features`: Optional inline features (name + per-ID values) + +--- + +## Component Types + +### FeatureInitComponent + +**Role:** Root DAG node — initializes the shared `ComponentMatrix`. + +- Sets up rows from entity IDs +- Populates schema columns (string + byte) for all downstream components +- For slate APIs: initializes `SlateData` with `slate_target_indices` + +### FeatureComponent + +**Role:** Fetches features from the Online Feature Store (OnFS) for a specific entity type. + +- Reads `FSKeys` from config to extract lookup keys from the matrix +- Batches unique entities and calls OnFS via gRPC +- Optional **in-memory caching** keyed by `model_id:version:component:entity` +- Writes binary feature values into matrix byte columns + +**Column naming convention:** `entity_label:feature_group:feature_name` + +### PredatorComponent + +**Role:** Calls model serving endpoints for inference. + +- Builds feature payloads from matrix columns with type conversion +- Supports **percentage-based traffic routing** across multiple model endpoints +- Handles **slate-level inference**: per-slate matrix → separate inference → scores to `SlateData` +- Configurable **calibration** and **batch sizing** + +### NumerixComponent + +**Role:** Calls the Numerix compute engine for operations like reranking. + +- Uses `ScoreMapping` config to map matrix columns to compute inputs +- Writes a single score column back to the matrix +- Supports slate mode for per-slate compute operations + +--- + +## Feature Retrieval Pipeline + +### Key Resolution + +Feature components use `FSKeys` configuration to dynamically resolve entity keys: + +```json +{ + "FSKeys": { + "schema": ["user_id"], + "col": "user:profile:user_id" + } +} +``` + +The component reads key values from the existing matrix columns, enabling **chained entity resolution** — e.g., fetch product entity first, extract category, then fetch user x category features. + +### Batched Retrieval + +- Features are fetched via `FeatureService.RetrieveFeatures` gRPC call +- Requests are batched by unique entity keys +- Configurable batch size and deadline per component +- Auth via `CALLER_ID` and `CALLER_TOKEN` metadata + +### In-Memory Caching + +Optional per-component caching reduces OnFS load: + +- Cache key: `model_id:cache_version:component_name:entity_key` +- Configurable TTL per component +- Zero-GC-overhead cache implementation available +- Cache hit/miss metrics tracked via StatsD + +--- + +## Data Types + +Inferflow supports comprehensive ML data types for feature encoding and model input/output: + +| Data Type | Variants | Usage | +|-----------|----------|-------| +| **Integers** | int8, int16, int32, int64 | Categorical encodings, counts, IDs | +| **Floats** | float8 (e4m3, e5m2), float16, float32, float64 | Continuous features, embeddings, scores | +| **Strings** | Variable length | Categories, metadata | +| **Booleans** | Bit-packed | Binary indicators | +| **Vectors** | All scalar types | Embeddings, feature arrays | + +Type conversion is handled by the `datatypeconverter` package with optimized float8 implementations. + +--- + +## Inference Logging + +Inferflow supports async inference logging to Kafka for model monitoring and debugging: + +### Serialization Formats + +| Format | Use Case | +|--------|----------| +| **Proto** | Default, compact | +| **Arrow** | Columnar analytics | +| **Parquet** | Long-term storage, query-friendly | + +### Sampling Controls + +| Config | Description | +|--------|-------------| +| `LoggingPerc` | Percentage of requests to log (0-100) | +| `LogBatchSize` | Batch size for log message grouping | +| `LogFeatures` | Specific features to include in logs | + +### Log Content + +Each `InferflowLog` message includes: +- `user_id`, `tracking_id`, `model_config_id` +- Entity IDs and feature values +- Model scores and metadata + +--- + +## Configuration Hot-Reload + +Model configurations are stored in **etcd** and support **live updates without redeployment**: + +1. Inferflow registers watchers on etcd config paths +2. On config change, watchers trigger `ReloadModelConfigMapAndRegisterComponents` +3. `ConfigMap` is updated in memory +4. Feature schemas are re-initialized +5. DAG components are re-registered + +This enables: +- Adding new models in production without restarts +- A/B testing with different model configurations +- Instant rollback by reverting etcd config + +--- + +## Performance Characteristics + +### Concurrency Model +- DAG components at the same level execute concurrently in goroutines +- Feature retrieval is parallelized across entity types +- External gRPC calls use connection pooling + +### Memory Efficiency +- Built in Go — significantly lower memory footprint than Java equivalents (~80% reduction) +- Object pooling for `ComponentMatrix` and serialization buffers +- In-memory cache with zero-GC-overhead option (freecache) + +### Serialization +- gRPC with Proto3 for all external communication +- Binary feature encoding in the `ComponentMatrix` for minimal overhead +- Configurable compression for Kafka logging + +--- + +## Contributing + +We welcome contributions from the community! Please see our [Contributing Guide](https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md) for details on how to get started. + +## Community & Support + +- **Discord**: Join our [community chat](https://discord.gg/XkT7XsV2AU) +- **Issues**: Report bugs and request features on [GitHub Issues](https://github.com/Meesho/BharatMLStack/issues) +- **Email**: Contact us at [ml-oss@meesho.com](mailto:ml-oss@meesho.com) + +## License + +BharatMLStack is open-source software licensed under the [BharatMLStack Business Source License 1.1](https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md). + +--- + +
+ Built with ❤️ for the ML community from Meesho +
+
+ If you find this useful, ⭐️ the repo — your support means the world to us! +
diff --git a/docs-src/docs/inferflow/v1.0.0/release-notes.md b/docs-src/docs/inferflow/v1.0.0/release-notes.md new file mode 100644 index 00000000..2a73c843 --- /dev/null +++ b/docs-src/docs/inferflow/v1.0.0/release-notes.md @@ -0,0 +1,208 @@ +--- +title: Release Notes +sidebar_position: 4 +--- + +# Inferflow - Release Notes + +## Version 1.0.0 +**Release Date**: June 2025 +**Status**: General Availability (GA) + +We're excited to announce the first stable release of **Inferflow** — a graph-driven feature retrieval and model inference orchestration engine, part of BharatMLStack. + +--- + +## What's New + +### Config-Driven DAG Executor +- **No-code feature retrieval**: Onboard new models with config changes only — no custom code required +- **DAG topology execution**: Define component dependency graphs that are executed concurrently using Kahn's algorithm +- **Hot reload**: Model configurations stored in etcd are watched and reloaded live — no redeployment needed +- **DAG caching**: Topologies are cached using Murmur3 hashing with Ristretto for minimal overhead + +### Multi-Pattern Inference APIs +Three structured inference patterns via the Predict API: + +| API | Pattern | Use Case | +|-----|---------|----------| +| `InferPointWise` | Score each target independently | CTR prediction, fraud scoring | +| `InferPairWise` | Score pairs of targets | Preference learning, comparison ranking | +| `InferSlateWise` | Score groups of targets together | Whole-page optimization, diversity-aware ranking | + +Plus the entity-based `RetrieveModelScore` API for direct feature retrieval and scoring. + +### Component System +Four built-in component types: +- **FeatureInitComponent** — Initializes the shared ComponentMatrix +- **FeatureComponent** — Fetches features from the Online Feature Store (OnFS) +- **PredatorComponent** — Calls model serving endpoints with percentage-based traffic routing +- **NumerixComponent** — Calls compute engine for operations like reranking + +### Online Feature Store Integration +- gRPC-based feature retrieval via `FeatureService.RetrieveFeatures` +- Batched retrieval with configurable batch size and deadline +- Token-based authentication +- Dynamic key resolution from the ComponentMatrix + +### In-Memory Feature Caching +- Optional per-component caching to reduce OnFS load +- Configurable TTL per component +- Zero-GC-overhead cache option (freecache) +- Cache hit/miss metrics + +### Inference Logging +- Async logging to Kafka for model monitoring and debugging +- Three serialization formats: **Proto**, **Arrow**, **Parquet** +- Configurable sampling rate and feature selection +- Batched log message grouping + +--- + +## Performance + +### Built in Go +Inferflow is written entirely in Go, delivering: +- ~80% lower memory usage compared to equivalent Java services +- Lower CPU utilization +- Faster, more efficient deployments + +### Concurrency +- DAG components at the same level execute concurrently in goroutines +- Feature retrieval parallelized across entity types +- Connection pooling for all external gRPC calls + +### Serialization +- gRPC with Proto3 for all APIs +- Binary feature encoding in the ComponentMatrix +- Configurable compression for Kafka logging (ZSTD support) + +--- + +## APIs & Protocols + +### gRPC API + +**Inferflow Service:** +```protobuf +service Inferflow { + rpc RetrieveModelScore(InferflowRequestProto) returns (InferflowResponseProto); +} +``` + +**Predict Service:** +```protobuf +service PredictService { + rpc InferPointWise(PredictRequest) returns (PredictResponse); + rpc InferPairWise(PredictRequest) returns (PredictResponse); + rpc InferSlateWise(PredictRequest) returns (PredictResponse); +} +``` + +### Data Types Supported + +| Type | Variants | +|------|----------| +| Integers | int8, int16, int32, int64 | +| Floats | float8 (e4m3, e5m2), float16, float32, float64 | +| Strings | Variable length | +| Booleans | Bit-packed | +| Vectors | All scalar types | + +--- + +## Enterprise Features + +### Production Readiness +- **Health checks**: HTTP health endpoints via cmux +- **Graceful shutdown**: Clean resource cleanup +- **Structured logging**: JSON-formatted logs via zerolog +- **Signal handling**: SIGTERM/SIGINT support for container environments + +### Monitoring & Observability +- **StatsD / Telegraf integration**: Request rates, latencies, error rates +- **Per-component metrics**: Execution time, feature counts, cache hit rates +- **External API metrics**: OnFS, Predator, Numerix call tracking +- **Kafka logging metrics**: Messages sent, errors + +### Configuration Management +- **etcd-based**: All model configs stored in etcd +- **Watch & reload**: Live config updates without restart +- **Multi-model support**: Multiple `model_config_id` entries served concurrently + +--- + +## Deployment + +### Container Support +- **Docker image**: Multi-stage build (Go Alpine builder + Debian runtime) +- **Optional Kafka**: librdkafka support via build flag +- **Static binary**: Single binary deployment + +### Supported Environments +- Kubernetes (K8s) +- Google Kubernetes Engine (GKE) +- Amazon EKS + +--- + +## Compatibility + +### Supported Go Versions +- **Minimum**: Go 1.19 +- **Recommended**: Go 1.24+ + +### External Dependencies + +| Service | Version | Protocol | +|---------|---------|----------| +| etcd | 3.5+ | gRPC | +| Online Feature Store (OnFS) | 1.0+ | gRPC | +| Predator (Helix) | 1.0+ | gRPC | +| Numerix | 1.0+ | gRPC | +| Kafka | 2.0+ | TCP | + +--- + +## Download & Installation + +### Source Code +```bash +git clone https://github.com/Meesho/BharatMLStack.git +cd BharatMLStack/inferflow +``` + +### Build +```bash +go build -o inferflow-server cmd/inferflow/main.go +``` + +### Docker +```bash +docker build -t inferflow:latest . +``` + +--- + +## Contributing + +We welcome contributions from the community! Please see our [Contributing Guide](https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md) for details on how to get started. + +## Community & Support + +- **Discord**: Join our [community chat](https://discord.gg/XkT7XsV2AU) +- **Issues**: Report bugs and request features on [GitHub Issues](https://github.com/Meesho/BharatMLStack/issues) +- **Email**: Contact us at [ml-oss@meesho.com](mailto:ml-oss@meesho.com) + +## License + +BharatMLStack is open-source software licensed under the [BharatMLStack Business Source License 1.1](https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md). + +--- + +
+ Built with ❤️ for the ML community from Meesho +
+
+ If you find this useful, ⭐️ the repo — your support means the world to us! +
diff --git a/docs-src/src/pages/index.js b/docs-src/src/pages/index.js index 34aefde3..c58e5f55 100644 --- a/docs-src/src/pages/index.js +++ b/docs-src/src/pages/index.js @@ -180,7 +180,7 @@ function NumerixAbout() { - Explore SDKs → + Explore Numerix →
diff --git a/docs-src/static/img/v1.0.0-inferflow-arch.png b/docs-src/static/img/v1.0.0-inferflow-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..acad4888cdc3e82a607039764b2283fa826daba9 GIT binary patch literal 241092 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�>JrhJPH=NbB|dPMD1LlzPiD8`~?aQSSXb_nuDX` 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 ` zfTAa6toF@zKN4)r@1Lv8g4QI>6&X9lvpufRQ*% z9MBic5y-$bEUnWmO?nqoE!^`H41QGc2FQ*zfhj$EPEIp3#fGK*BG&Mg-?=HiII?ff z4jAOeaB__|c${~RSAW!TPFA)3(W=?C+WF``u2GRz3Hg5L$t=mRf0nmja0{nOzI*`s zp@1YdoB(=*KDZq)Nt)!{FwWLTWWd$ReRVpqY#mdgq!L1b<+k!XjoJIcp0h@d4wGt6P9~zOixwrPn*que`G6xteq* zU^}wdsrwC~62$B=y&U=2R&OG=Ae*xeByFL6;@XRBTR$O<~lNXQa;4OsIP z=X$!2vZzVi6u?LbR`ZAcfCoJ&W^h%33dTMwa^-w7B=fT%| zgM55Ub#C3g>YyH>?R5ZJRWwM4R2!q*qw13P5^Lw)#T3C1%#8fmViF=Il|gYkypRCt z&1if89q=sUnY8wwsUYv@s1|((x-Ow%N7qwg+`?()L2-6e8R)ND=FGFXwZ&<9d0SY! zA<*Arf046IHa7hLn@m7020$2`eEj_S1K$m6uo<(ai?)K4_Q|@c6wm4ET{c9+*WyVb zm%!q{peM5PR!__VzfJWWNc{0^F>2Ek-r15GQ1clmpOA+NZ1dZ$2V=AA)_D$(X*?t4 zIqlhOAnoHBi8=+VJ3>N^xK2IW(8#fwGN_O=aKJQf0)6eL!$} z+AGIE;&htk={jM%m%8LSKmR>k!A(C#JVf$r9Mb}Ul5uFK0Bxx8T8E-N)VQmvI)Hbz zaDqWUd>LXoP0Iam7%IarRxDeS&OK<{Dbbq`*V~{~+N!b`d9V^jUG&sX7o;7qQ0g}u z(X7Q*^R9%<&(JAj3a@Gge_&<=yg)wd^$)n;!4zZ5=%|V;WGCoNV|nxYC6832Ad}tQ zy4;u@r?Y(@5qi_*lrglRtZ0-_=vhpHmMEFKv@jX(YhRL~tnc+u`DfTJbP~R$3BRy${dW4!*9^*EuTl0~faeqnC5^#Ek8FOR z`&pTSHXY?l;#5^A?Q1S9bF{pFTk4*~xd(=W91Y2xv79$_>Rlg;a1%Rb30!T*G|c4S zwnWZDKm>DnpjU#2GW)UBZ^SNumF3ODwk9OEkr<R7I#HS5R31Goc)s(d)N%sVuGAct5cJN&su^W~zAB?_u;|`I3vqqyi;IO6qQ3v8*~_QceB&mIMmfHR-KJTmtp4=x3?1w~ zAOkW|zz%GMV+kcgNQg5pdVaw^{+J-om3_W5lSZs^S)sAQ7Ai^wK!>0W&Um$lk%k9{ zb*N6DU?2ur>zB_MFOQ(HiYhcZv0x{fLV&NqM?m0&2(VX}OUl2)f(^oeoGqKmaAA@#RXA*hGDOGPRPg-D>~GI|lq$9-oZ7+Ls?H)D}D{1hIV8 zxHau0J`-ap!|NHux

cAw&>y6pnUyo4&r3J3wx14@8CAa{>a6$(@ELb4l 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 BharatMLStack - - - + + + -

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.

+

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/docs/assets/css/styles.8dc7ce64.css b/docs/assets/css/styles.14b2d0af.css similarity index 92% rename from docs/assets/css/styles.8dc7ce64.css rename to docs/assets/css/styles.14b2d0af.css index 088734c6..8bc1333c 100644 --- a/docs/assets/css/styles.8dc7ce64.css +++ b/docs/assets/css/styles.14b2d0af.css @@ -1 +1 @@ -@layer docusaurus.infima,docusaurus.theme-common,docusaurus.theme-classic,docusaurus.core,docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;@layer docusaurus.infima{.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.dropdown__link--active,.dropdown__link:hover,.menu__link:hover,.navbar__brand:hover,.navbar__link--active,.navbar__link:hover,.pagination-nav__link:hover,.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color)}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color)}.menu__caret:before,.menu__link--sublist-caret:after{content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;left:0;opacity:0;position:fixed;top:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color)}.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color)}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:1rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover)}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}}.bharatml-hero .bharatml-button:hover,.bharatml-hero .button--outline:hover,[data-theme=dark] .bharatml-hero .bharatml-button:hover,[data-theme=dark] .bharatml-hero .button--outline:hover{background-color:#fff!important;border-color:#fff!important;color:var(--bharatml-primary)!important}.bharatml-hero .bharatml-button,.bharatml-hero .button--outline{border:2px solid #fff!important;color:#fff!important;transition:.3s}:root{--ifm-color-primary:#450839;--ifm-color-primary-dark:#3d0732;--ifm-color-primary-darker:#39062f;--ifm-color-primary-darkest:#2f0527;--ifm-color-primary-light:#4d0940;--ifm-color-primary-lighter:#510a43;--ifm-color-primary-lightest:#5d0c4d;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--bharatml-primary:#450839;--bharatml-primary-hover:#6a0c59;--bharatml-secondary:#f9f9f9;--bharatml-text:#1c1e21;--bharatml-text-light:#606770}[data-theme=dark]{--ifm-color-primary:#8b4582;--ifm-color-primary-dark:#7d3f75;--ifm-color-primary-darker:#763c6e;--ifm-color-primary-darkest:#62315a;--ifm-color-primary-light:#994b8f;--ifm-color-primary-lighter:#a04e96;--ifm-color-primary-lightest:#b657a9;--docusaurus-highlighted-code-line-bg:#0000004d;--bharatml-primary:#8b4582;--bharatml-primary-hover:#a04e96;--bharatml-secondary:#1e1e1e;--bharatml-text:#e3e3e3;--bharatml-text-light:#b4b4b4}.bharatml-hero{background:linear-gradient(135deg,var(--bharatml-primary) 0,var(--bharatml-primary-hover) 100%);color:#fff}.bharatml-hero .bharatml-button{background-color:var(--bharatml-primary)}.bharatml-hero .button--outline{background-color:initial!important}[data-theme=dark] .bharatml-hero .bharatml-button{background-color:var(--bharatml-primary);border:2px solid #fff!important;color:#fff!important}[data-theme=dark] .bharatml-hero .button--outline{background-color:initial!important;border:2px solid #fff!important;color:#fff!important}.bharatml-button{background-color:var(--bharatml-primary);border-color:var(--bharatml-primary);transition:.3s}.bharatml-button:hover{background-color:var(--bharatml-primary-hover);border-color:var(--bharatml-primary-hover);color:#fff}.bharatml-card{background:#fff;border:1px solid #4508391a;border-radius:8px;padding:2rem;transition:.3s}.bharatml-card:hover{border-color:var(--bharatml-primary);box-shadow:0 4px 20px #4508391a;transform:translateY(-2px)}.bharatml-icon{align-items:center;background:linear-gradient(135deg,var(--bharatml-primary),var(--bharatml-primary-hover));border-radius:12px;color:#fff;display:flex;font-size:1.5rem;height:64px;justify-content:center;margin:0 auto 1rem;width:64px}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}.aboutSection_udvw,.features_t9lD{background-color:var(--ifm-background-surface-color)}.featuresHeader_qR2i,.features_t9lD h3{color:var(--bharatml-primary);margin-bottom:1rem}.features_t9lD{display:block;padding:4rem 0;text-align:center;width:100%}.featureSvg_GfXr{height:200px;width:200px}.featuresHeader_qR2i{font-size:2.5rem;font-weight:700;text-align:center}.featuresSubtitle_VdGe{color:var(--ifm-font-color-base);font-size:1.2rem;opacity:1;text-align:center}.features_t9lD .bharatml-card_xZ6l{height:100%;margin-top:1rem}.features_t9lD .bharatml-icon_XBoJ{margin-bottom:1.5rem}.features_t9lD h3{font-size:1.25rem;font-weight:600}.features_t9lD p{color:var(--ifm-font-color-base)!important;font-size:.95rem;font-weight:400;line-height:1.6;margin:0}.featureDescription_sP1D{color:#1c1e21!important;font-size:.95rem!important;font-weight:400!important;line-height:1.6!important;margin:0!important}[data-theme=dark] .bharatml-card_xZ6l{background:#2a2a2a!important;border-color:#8b45824d;color:#fff}[data-theme=dark] .bharatml-card_xZ6l:hover{background:#333!important;border-color:var(--bharatml-primary);box-shadow:0 4px 20px #8b45824d}[data-theme=dark] .featureDescription_sP1D,[data-theme=dark] .featuresHeader_qR2i,[data-theme=dark] .features_t9lD h3,[data-theme=dark] .features_t9lD p{color:#a04e96!important}[data-theme=dark] .featuresSubtitle_VdGe{color:#e0e0e0!important}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.logoContainer_xdaK{align-items:center;display:flex;justify-content:center;margin-bottom:2rem}.heroLogo_U6bI{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));height:180px;transition:transform .3s;width:180px}.heroLogo_U6bI:hover{transform:scale(1.05)}.buttons_AeoN{align-items:center;gap:1rem;margin-bottom:2rem}.buttons_AeoN,.statsContainer_KpvY{display:flex;justify-content:center}.statsContainer_KpvY{gap:3rem;margin-top:2rem;opacity:.9}.statItem_bwiZ{align-items:center;color:#fff;display:flex;flex-direction:column;text-align:center}.statItem_bwiZ strong{display:block;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.statItem_bwiZ span{font-size:.875rem;letter-spacing:.5px;opacity:.8;text-transform:uppercase}.aboutSection_udvw{padding:4rem 0}.highlightBox_Uhe8{background:linear-gradient(135deg,#f8f9ff,#e8f0ff);border:1px solid #4508391a;border-radius:12px;height:100%;padding:2rem}.highlightBox_Uhe8 h3{color:var(--bharatml-primary);font-size:1.25rem;margin-bottom:1rem}.highlightBox_Uhe8 li,[data-theme=dark] .highlightBox_Uhe8 li{color:var(--bharatml-text)}.highlightBox_Uhe8 ul{list-style:none;margin:0;padding:0}.highlightBox_Uhe8 li{font-size:.95rem;padding:.5rem 0}.highlightBox_Uhe8 li:not(:last-child){border-bottom:1px solid #4508390d}[data-theme=dark] .highlightBox_Uhe8{background:linear-gradient(135deg,#1a1a2e,#16213e);border-color:#8b458233}@layer docusaurus.theme-common{.themedComponent_mlkZ{display:none}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before{transform:rotate(90deg)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-blog-social-icon-size:1rem;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.toggleIcon_g3eP,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.announcementBarContent_xLdY{flex:1 1 auto}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{-webkit-tap-highlight-color:transparent;align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}[data-theme-choice=dark] .darkToggleIcon_wfgR,[data-theme-choice=light] .lightToggleIcon_pyhR,[data-theme-choice=system] .systemToggleIcon_QzmC{display:initial}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.menuExternalLink_NmtK{align-items:center}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.dropdownNavbarItemMobile_J0Sd{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.authorSocialIcon_XYv3,.authorSocialLink_owbf{width:var(--docusaurus-blog-social-icon-size)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.docCardListItem_W1sv>*,body,html{height:100%}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.authorSocials_rSDt,.authorTitle_nd0D{overflow:hidden;-webkit-box-orient:vertical}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLink_mo7H:hover{-webkit-text-decoration:none;text-decoration:none}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.yearGroupHeading_rMGB{margin-bottom:.4rem;margin-top:1.6rem}.yearGroupHeading_QT03{margin:1rem .75rem .5rem}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child{margin-bottom:0}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.docCardListItem_W1sv{margin-bottom:2rem}.title_f1Hy{font-size:3rem}[data-theme=dark] .githubSvg_Uu4N,[data-theme=dark] .instagramSvg_YC40,[data-theme=dark] .threadsSvg_PTXY,[data-theme=dark] .xSvg_y3PF{fill:var(--light)}[data-theme=light] .githubSvg_Uu4N,[data-theme=light] .instagramSvg_YC40,[data-theme=light] .threadsSvg_PTXY,[data-theme=light] .xSvg_y3PF{fill:var(--dark)}.authorSocials_rSDt{align-items:center;display:flex;flex-wrap:wrap;line-clamp:1;-webkit-line-clamp:1}.authorSocialLink_owbf,.authorSocials_rSDt{height:var(--docusaurus-blog-social-icon-size);line-height:0}.authorSocialLink_owbf{margin-right:.4rem}.authorSocialIcon_XYv3{height:var(--docusaurus-blog-social-icon-size)}.authorImage_XqGP{--ifm-avatar-photo-size:3.6rem}.author-as-h1_n9oJ .authorImage_XqGP{--ifm-avatar-photo-size:7rem}.author-as-h2_gXvM .authorImage_XqGP{--ifm-avatar-photo-size:5.4rem}.authorDetails_lV9A{align-items:flex-start;display:flex;flex-direction:column;justify-content:space-around}.authorName_yefp{display:flex;flex-direction:row;font-size:1.1rem;line-height:1.1rem}.author-as-h1_n9oJ .authorName_yefp{display:inline;font-size:2.4rem;line-height:2.4rem}.author-as-h2_gXvM .authorName_yefp{display:inline;font-size:1.4rem;line-height:1.4rem}.authorTitle_nd0D{display:-webkit-box;font-size:.8rem;line-height:1rem;line-clamp:1;-webkit-line-clamp:1}.author-as-h1_n9oJ .authorTitle_nd0D{font-size:1.2rem;line-height:1.6rem}.author-as-h2_gXvM .authorTitle_nd0D{font-size:1rem;line-height:1.3rem}.authorBlogPostCount_iiJ5{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.8rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.authorListItem_n3yI{list-style-type:none;margin-bottom:2rem}.authorCol_Hf19{max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{background:var(--prism-background-color);border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);color:var(--prism-color);margin-bottom:var(--ifm-leading)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_MEMb{padding:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_Vdqa{opacity:1!important}.copyButtonIcons_IEyt{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_TrPX,.copyButtonSuccessIcon_cVMy{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_cVMy{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_Vdqa .copyButtonIcon_TrPX{opacity:0;transform:scale(.33)}.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_b1P5{height:1.2rem;width:1.2rem}.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5{color:var(--ifm-color-primary)}.buttonGroup_M5ko{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_M5ko button{align-items:center;background:var(--prism-background-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);color:var(--prism-color);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup_M5ko button:focus-visible,.buttonGroup_M5ko button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_M5ko button{opacity:.4}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.codeBlockContent_QJqH{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_OeMC{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockTitle_OeMC+.codeBlockContent_QJqH .codeBlock_a8dz{border-top-left-radius:0;border-top-right-radius:0}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*{margin-top:0}.mdxPageWrapper_j9I6{justify-content:center}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);-webkit-text-decoration:none!important;text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block;width:max-content}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:996px){.features_t9lD .bharatml-card_xZ6l{margin-bottom:2rem}.featuresHeader_qR2i{font-size:2rem}.featuresSubtitle_VdGe{font-size:1rem}.heroBanner_qdFl{padding:2rem}}@media screen and (max-width:768px){.heroLogo_U6bI{height:120px;width:120px}.logoContainer_xdaK{margin-bottom:1.5rem}.buttons_AeoN{flex-direction:column;gap:.5rem}.statsContainer_KpvY{align-items:center;flex-direction:column;gap:1rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file +@layer docusaurus.infima,docusaurus.theme-common,docusaurus.theme-classic,docusaurus.core,docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;@layer docusaurus.infima{.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.dropdown__link--active,.dropdown__link:hover,.menu__link:hover,.navbar__brand:hover,.navbar__link--active,.navbar__link:hover,.pagination-nav__link:hover,.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color)}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color)}.menu__caret:before,.menu__link--sublist-caret:after{content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;left:0;opacity:0;position:fixed;top:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color)}.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color)}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:1rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover)}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}}.bharatml-hero .bharatml-button:hover,.bharatml-hero .button--outline:hover,[data-theme=dark] .bharatml-hero .bharatml-button:hover,[data-theme=dark] .bharatml-hero .button--outline:hover{background-color:#fff!important;border-color:#fff!important;color:var(--bharatml-primary)!important}.bharatml-hero .bharatml-button,.bharatml-hero .button--outline{border:2px solid #fff!important;color:#fff!important;transition:.3s}:root{--ifm-color-primary:#450839;--ifm-color-primary-dark:#3d0732;--ifm-color-primary-darker:#39062f;--ifm-color-primary-darkest:#2f0527;--ifm-color-primary-light:#4d0940;--ifm-color-primary-lighter:#510a43;--ifm-color-primary-lightest:#5d0c4d;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--bharatml-primary:#450839;--bharatml-primary-hover:#6a0c59;--bharatml-secondary:#f9f9f9;--bharatml-text:#1c1e21;--bharatml-text-light:#606770}[data-theme=dark]{--ifm-color-primary:#8b4582;--ifm-color-primary-dark:#7d3f75;--ifm-color-primary-darker:#763c6e;--ifm-color-primary-darkest:#62315a;--ifm-color-primary-light:#994b8f;--ifm-color-primary-lighter:#a04e96;--ifm-color-primary-lightest:#b657a9;--docusaurus-highlighted-code-line-bg:#0000004d;--bharatml-primary:#8b4582;--bharatml-primary-hover:#a04e96;--bharatml-secondary:#1e1e1e;--bharatml-text:#e3e3e3;--bharatml-text-light:#b4b4b4}.bharatml-hero{background:linear-gradient(135deg,var(--bharatml-primary) 0,var(--bharatml-primary-hover) 100%);color:#fff}.bharatml-hero .bharatml-button{background-color:var(--bharatml-primary)}.bharatml-hero .button--outline{background-color:initial!important}[data-theme=dark] .bharatml-hero .bharatml-button{background-color:var(--bharatml-primary);border:2px solid #fff!important;color:#fff!important}[data-theme=dark] .bharatml-hero .button--outline{background-color:initial!important;border:2px solid #fff!important;color:#fff!important}.bharatml-button{background-color:var(--bharatml-primary);border-color:var(--bharatml-primary);transition:.3s}.bharatml-button:hover{background-color:var(--bharatml-primary-hover);border-color:var(--bharatml-primary-hover);color:#fff}.bharatml-card{background:#fff;border:1px solid #4508391a;border-radius:8px;padding:2rem;transition:.3s}.bharatml-card:hover{border-color:var(--bharatml-primary);box-shadow:0 4px 20px #4508391a;transform:translateY(-2px)}.bharatml-icon{align-items:center;background:linear-gradient(135deg,var(--bharatml-primary),var(--bharatml-primary-hover));border-radius:12px;color:#fff;display:flex;font-size:1.5rem;height:64px;justify-content:center;margin:0 auto 1rem;width:64px}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}.aboutSection_udvw,.features_t9lD{background-color:var(--ifm-background-surface-color)}.featuresHeader_qR2i,.features_t9lD h3{color:var(--bharatml-primary);margin-bottom:1rem}.features_t9lD{display:block;padding:4rem 0;text-align:center;width:100%}.featureSvg_GfXr{height:200px;width:200px}.featuresHeader_qR2i{font-size:2.5rem;font-weight:700;text-align:center}.featuresSubtitle_VdGe{color:var(--ifm-font-color-base);font-size:1.2rem;opacity:1;text-align:center}.features_t9lD .bharatml-card_xZ6l{height:100%;margin-top:1rem}.features_t9lD .bharatml-icon_XBoJ{margin-bottom:1.5rem}.features_t9lD h3{font-size:1.25rem;font-weight:600}.features_t9lD p{color:var(--ifm-font-color-base)!important;font-size:.95rem;font-weight:400;line-height:1.6;margin:0}.featureDescription_sP1D{color:#1c1e21!important;font-size:.95rem!important;font-weight:400!important;line-height:1.6!important;margin:0!important}[data-theme=dark] .bharatml-card_xZ6l{background:#2a2a2a!important;border-color:#8b45824d;color:#fff}[data-theme=dark] .bharatml-card_xZ6l:hover{background:#333!important;border-color:var(--bharatml-primary);box-shadow:0 4px 20px #8b45824d}[data-theme=dark] .featureDescription_sP1D,[data-theme=dark] .featuresHeader_qR2i,[data-theme=dark] .features_t9lD h3,[data-theme=dark] .features_t9lD p{color:#a04e96!important}[data-theme=dark] .featuresSubtitle_VdGe{color:#e0e0e0!important}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.logoContainer_xdaK{align-items:center;display:flex;justify-content:center;margin-bottom:2rem}.heroLogo_U6bI{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));height:180px;transition:transform .3s;width:180px}.heroLogo_U6bI:hover{transform:scale(1.05)}.buttons_AeoN{align-items:center;gap:1rem;margin-bottom:2rem}.buttons_AeoN,.statsContainer_KpvY{display:flex;justify-content:center}.statsContainer_KpvY{gap:3rem;margin-top:2rem;opacity:.9}.statItem_bwiZ{align-items:center;color:#fff;display:flex;flex-direction:column;text-align:center}.statItem_bwiZ strong{display:block;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.statItem_bwiZ span{font-size:.875rem;letter-spacing:.5px;opacity:.8;text-transform:uppercase}.aboutSection_udvw{padding:4rem 0}.highlightBox_Uhe8{background:linear-gradient(135deg,#f8f9ff,#e8f0ff);border:1px solid #4508391a;border-radius:12px;height:100%;padding:2rem}.highlightBox_Uhe8 h3{color:var(--bharatml-primary);font-size:1.25rem;margin-bottom:1rem}.highlightBox_Uhe8 li,[data-theme=dark] .highlightBox_Uhe8 li{color:var(--bharatml-text)}.highlightBox_Uhe8 ul{list-style:none;margin:0;padding:0}.highlightBox_Uhe8 li{font-size:.95rem;padding:.5rem 0}.highlightBox_Uhe8 li:not(:last-child){border-bottom:1px solid #4508390d}[data-theme=dark] .highlightBox_Uhe8{background:linear-gradient(135deg,#1a1a2e,#16213e);border-color:#8b458233}@layer docusaurus.theme-common{body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.themedComponent_mlkZ{display:none}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before{transform:rotate(90deg)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-blog-social-icon-size:1rem;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.toggleIcon_g3eP,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.announcementBarContent_xLdY{flex:1 1 auto}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{-webkit-tap-highlight-color:transparent;align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}[data-theme-choice=dark] .darkToggleIcon_wfgR,[data-theme-choice=light] .lightToggleIcon_pyhR,[data-theme-choice=system] .systemToggleIcon_QzmC{display:initial}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_J0Sd{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.menuExternalLink_NmtK{align-items:center}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.authorSocialIcon_XYv3,.authorSocialLink_owbf{width:var(--docusaurus-blog-social-icon-size)}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.docCardListItem_W1sv>*,body,html{height:100%}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.authorSocials_rSDt,.authorTitle_nd0D{overflow:hidden;-webkit-box-orient:vertical}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLink_mo7H:hover{-webkit-text-decoration:none;text-decoration:none}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.yearGroupHeading_rMGB{margin-bottom:.4rem;margin-top:1.6rem}.yearGroupHeading_QT03{margin:1rem .75rem .5rem}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child{margin-bottom:0}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.docCardListItem_W1sv{margin-bottom:2rem}.title_f1Hy{font-size:3rem}[data-theme=dark] .githubSvg_Uu4N,[data-theme=dark] .instagramSvg_YC40,[data-theme=dark] .threadsSvg_PTXY,[data-theme=dark] .xSvg_y3PF{fill:var(--light)}[data-theme=light] .githubSvg_Uu4N,[data-theme=light] .instagramSvg_YC40,[data-theme=light] .threadsSvg_PTXY,[data-theme=light] .xSvg_y3PF{fill:var(--dark)}.authorSocials_rSDt{align-items:center;display:flex;flex-wrap:wrap;line-clamp:1;-webkit-line-clamp:1}.authorSocialLink_owbf,.authorSocials_rSDt{height:var(--docusaurus-blog-social-icon-size);line-height:0}.authorSocialLink_owbf{margin-right:.4rem}.authorSocialIcon_XYv3{height:var(--docusaurus-blog-social-icon-size)}.authorImage_XqGP{--ifm-avatar-photo-size:3.6rem}.author-as-h1_n9oJ .authorImage_XqGP{--ifm-avatar-photo-size:7rem}.author-as-h2_gXvM .authorImage_XqGP{--ifm-avatar-photo-size:5.4rem}.authorDetails_lV9A{align-items:flex-start;display:flex;flex-direction:column;justify-content:space-around}.authorName_yefp{display:flex;flex-direction:row;font-size:1.1rem;line-height:1.1rem}.author-as-h1_n9oJ .authorName_yefp{display:inline;font-size:2.4rem;line-height:2.4rem}.author-as-h2_gXvM .authorName_yefp{display:inline;font-size:1.4rem;line-height:1.4rem}.authorTitle_nd0D{display:-webkit-box;font-size:.8rem;line-height:1rem;line-clamp:1;-webkit-line-clamp:1}.author-as-h1_n9oJ .authorTitle_nd0D{font-size:1.2rem;line-height:1.6rem}.author-as-h2_gXvM .authorTitle_nd0D{font-size:1rem;line-height:1.3rem}.authorBlogPostCount_iiJ5{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.8rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.authorListItem_n3yI{list-style-type:none;margin-bottom:2rem}.authorCol_Hf19{max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{background:var(--prism-background-color);border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);color:var(--prism-color);margin-bottom:var(--ifm-leading)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_MEMb{padding:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_Vdqa{opacity:1!important}.copyButtonIcons_IEyt{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_TrPX,.copyButtonSuccessIcon_cVMy{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_cVMy{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_Vdqa .copyButtonIcon_TrPX{opacity:0;transform:scale(.33)}.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_b1P5{height:1.2rem;width:1.2rem}.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5{color:var(--ifm-color-primary)}.buttonGroup_M5ko{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_M5ko button{align-items:center;background:var(--prism-background-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);color:var(--prism-color);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup_M5ko button:focus-visible,.buttonGroup_M5ko button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_M5ko button{opacity:.4}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.codeBlockContent_QJqH{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_OeMC{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockTitle_OeMC+.codeBlockContent_QJqH .codeBlock_a8dz{border-top-left-radius:0;border-top-right-radius:0}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*{margin-top:0}.mdxPageWrapper_j9I6{justify-content:center}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);-webkit-text-decoration:none!important;text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block;width:max-content}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:996px){.features_t9lD .bharatml-card_xZ6l{margin-bottom:2rem}.featuresHeader_qR2i{font-size:2rem}.featuresSubtitle_VdGe{font-size:1rem}.heroBanner_qdFl{padding:2rem}}@media screen and (max-width:768px){.heroLogo_U6bI{height:120px;width:120px}.logoContainer_xdaK{margin-bottom:1.5rem}.buttons_AeoN{flex-direction:column;gap:.5rem}.statsContainer_KpvY{align-items:center;flex-direction:column;gap:1rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/docs/assets/images/bharatmlstack-72e1796337bfa224dee2a0f59ec4e2da.png b/docs/assets/images/bharatmlstack-72e1796337bfa224dee2a0f59ec4e2da.png deleted file mode 100644 index 3559779faac58898b36c8aa435f4f5bb042b2b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673533 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 z z%)ouxg{J~6P23i@Cg633QOr!2yx^Q}~aH3@t!j@MUIDig80WSwM(*NPUdu89bd(LaEjRO0Hjm>=_3Q z0SnqX9%^?ZT;ACt=_*Qm`KaoTr8#~lle$2CokKBfr4%ZP35Lz)qmS$@+iIkOp&il| zDINh69MLmL+obu)BOjImumz-ML|&$3VLeX|XNz5COJ=$tswO^qz>1r7yexHl#5X!( zQb)}b2l`4hCEMXT+gmtb$B~C=K~~pcwJjx*Oz77M!bkFO!Cw#dHuzw*7}my(0`_Ob-r6l%+&UXk?;lb*50YLl zZx!Ob=+gQ95-Qb62Vq!@T9e)9dw@CEVEBs@Y74LbW&tQqpIBACAEKTEXVnY!8hxK6hIP_{K#^qq){Bm-}<7goR{bW7a-S(d% z4t3+y{syZs60u_Wm4o7yz!vqNc_<|p48!OeX6cNuOT5|xQ&&sWf(t=A>^aruBE&pg@84pP__*x}YKTd_qH zy=ouEE1O*uv6yw%U@%B=GjT#xlKhxY|Xug*I!Sj6jZW}%5pKkF81dff@* zT4It6L;>;oa`t1HRK0pbh(;dX}jZRuwolnD+{tSh}2Tt9Fvt-aRvU z&?Qq9MpvLr@z<{cW&-vCP!4py%s?7<_xn#x_*4W;9x!2aMv-A)sugs?N)*E>N1Ju7 z=4<`_iU*tw0zf^OjT&Tn;ot#YB198bGWZ^9|Gc}UJPkbcOL&}Mq9IrH2pJ5{L`FU} z8J#%O)8u~BhVjWQLv2IpF{={Ef)V+=hgt%spCZRD&VG3dk$yeHc#UqbTgIPkl#+M= z)7)A5g(2;I|6O;!%L*91EhQ?Qh`K)Z-+!v*viO9O6Z9rxJpJb+>-71h{pxjk zG@Re}jdZ~L@5Eg02^>G!fz5!b;=d5~8Qdd0rETsD2G^M9KD}Irfh6apCZQ8vluIXQ zZ>e)5LIk?I`ghWHMZNrX&GS%hk~x@_im<>~HY&SxfSYa@_C3x7C&nq((PakJgWg6f zp2#G<1E=h9!bp;KwwtkNmwk62UZ)JEV55+1(v*zwa6WAW`M6sh+fhp|&pfw3%!f*& zpRlT169%jwc|XDOnJom&UYj4boXnJO@Me)et#=`?(Km6?FDSI&*kQlQXvO>^+`x>R z`@>wi!3*=nH~+(kX+Q*Om1>{U znm&_Uo?h8Vw(<1Who;`^ekH1Ifk_+)!_K5_0`YoRz+fW?$~D|qc=QMxX~!PYqG0y` zzN<&~nt@*4H0UIev)YI?N(FdG=J8^`D^gcMk3YCY_a}U2-DhTIj8`w{Xe)W|BEArbJ#ZMGDuS zZ#)j3Lc%{#Zq*OTB7n|S;X5zpiR%5kZWs~Cmz*J=oBtY0vn%d5hTbfWx?}5>A=7}_9hvW;7pi< z(R&ofIU}XhfHSuiZ!;52pkrQt;P*J6KsE;NEiB#)3Z zs(qEX1wq!2vuXUl(f*4^rTDuR;-GriijTJA?0~f{`#bLW-~}ICOYWs3zfEiogI-;43mezfo=7m~_G_*!i@7&FxM5!anHGf&GG|_T#u*Ci^ zecro=f_(KZ3k9ScAs8sdR9W_AKA~mtee9RyMb`QS3h$Pd)1(4H4yM^A;s&;ziy1r3 z^&Se=5u69B_GR>?q%IEpH;p>7KQw}A5%TsCjsQK6fvP+2;oj^79#6J6+|Vu%Y?MHW zN@b2&mLZl+gfR|E*aLa7HuH8esYVNN4WOV(AA4!*{R0IFKne!}U%Ntocd+;3Tq#3A zd>8pb3;BGjQ-LH7v!S7*2T*}YGw7%=M03Dz9jaH>%ve9;AW2)2X*`@DT~5`O&1lXz z$Zs6y4qb|2*q^Cz`_B0c%)h&kAB4lvjt2dspQW1Ab{H~Zl+*Ik0U@c^P!%*#ol&Rn z$5pT>pWmIMH7wz%@8ICD+lN*js^g%|t_P}CuZMwHXrsV&`JVp$9wZnV)>gv?mhj2& zVS7HZ5DCA&Z}(AS2j1ZSSdI45MB12y51ZlaQ;W40RIz#~f#rIQU~RxZT4@QH+Dq@( zA>F#aaG^*aO?sx^jSj!}l_kI5gF*{jNH`Zm?JrYFbv|f5v;b-aIi4t1P(r#$kw8Le z8|iJWDKRkOfqR;X6U|-rjSSZAHpH3?J^9Mq)YpE*TXoGGh-`$%#qIUV;1!Xl(VkG} z)3|Yaa<%l&XR0Fo-^RW91|(E|_L9YTfeYFwNin9DsAU;i>!^J5Oa?P6 zso{PNPI;Wk4z`yX0e&C+Zq#O+vQLxfa&`0X3RCha>Zso)SjFa(O8vt{#BP05gTo9mk4l6C>t~! zm!F~g<3%d%#F`oP?V8_P%r2#>A;K?eZ+=;QtupbN8sAmBZ_nI9U=d8t5oq?6WAyt1 zIE<$%#bSldL-1x!nusqPZ$r;Jr{rm3_JebVOnF_Y(vk+ohR1w~QjYoZXBUK+j;AEA zoRY{1v0$TYfIp+vlbP(JcO(-0IQF>@W4eF`2_-3zJ_IMg{}2sl%}B>x*Fpr)>;CR) zIa0pSDMPQ&Zp4iLmQD9gdpRbg#m#Lf%XH0Xt&(&p&QVqX(K29jBjj0Gzz7}DT0mtk zlKf3E{B}QCiSfU>(K{$_TvJGGv_%$ij0Aj+cuNU5CQ2@+dE@XWm4jnw3?~Hm zH_eJypMpKUe?}SSIJ;Nhu|drp_u2T9NjR-_Jm7^N^TUt!^TM3wlY~&T#e~gY8O|~d z_+w%sV=JqFW|*yHe(3p?Q5i~^0q2VRH)A2L$Nh-S(eyiCNF}w%iwp?Ues4AlW5sjT zb}?3VYajFg&%`u6TO&38c&9L zJI+2NdMR5u6)Ep;F}vxgC`U2a3JSN~o+n>p(Uz`$|KDr7prX)Pt9)ayChKHPjK*qr zloo-3v~UIq%4nt(a6ku~yGq zzJ7-6XqZTgeCgpu-aSqyiNH)(?@kH$O<^8+j*J}@H+KRF8KxmQ`4=h%t~zQ0z0#g~ zk@fb=n}I@F-%l@tu!B}ULo9;+iusAho4|>V#!ICrfnt@wf+$FJH#d1`0uA};2)Bjh zk2eJk+@;f8Srde!kW3ThxX>BQpb8B$OwR2NAjdbD_j5EyE;2nxUWO28I-M6?Zrg@A ztCJCdBDaGbcC5Zzp6cAof#yg+-6Wxq&l+*@^l*}JFDJweU%%k0KGKWsB73TE8{Gs3 zJVy(d)LURT=n=3LjuigMW48E{pZ#w>TeK-occ_rNh_VJ%iinss^Z}#?@=5a? zwbY6fN~ZqfvPu<0aL4|}QRa|RuMrn0&U&GBeEy>xkh12rS7;?P*)oNR82@W7hfU=5 zsrKsS@s!@Hd%n_0xy56uwan*Mm}2sG5T4R5V|u9IU#Vl{2K{z#*7T1)JY?{KuUFH` z(@vK952sfM09zBSHZ5xyWG^qC5IiQ+eE0PeMU|yi4mM|I+5LUZknHt|KOj)=l3_9X zy}F8(s&I?+Wh=MT>-*5Z0)P%gPm)>yOljsnKQ?w{zxeVyI$A8XA*m3oyNheA-U#JjlB$F_Wg4kg`wp3SQp)oez^amKn1qw(v9)f(=*>Y8M z^yv;CSDI_FK*D{dKUnKd(f8d+5o=DSv=G0c@DqdVx2raao&Oo>FxEfd&Hl7=iiGiX zvj6*A-je^MoIW3YjyqBjnv$te?<+_T7#>rmZ@dHeHavj!6M5<`gY%sq{_kz#`OA$& zbx0&qKa7w9S8sew8bO@?DfaRLy9(-yRv29x{#33=is9Oo-ftxuOYL!RoKE70M>;US z7k(Kj=5y}Z=TT1>`a0dI^ZP#uwwP4F!s`*Iw8*v)zauS^@F#7}GOSk4@d)=Wp4a`9 zz&8gN=GyI=DAhQ2?pWk+e@1!1=hr>^nl|HpBcCn>S>~O3-Jgm8hJqdaMqoN@ZY!=1 znb`}q4E;hHZoe*xt)E_J|9l`v_Zh)Ch3%10h<>`BAIRpoKRsA>P|jmbZOoI93_E?x zvoq{-fB0MR!qZQ{Djh|p{0g(?fN=lB(Jwq|>4f0;{r=Eg@znZ=x;-jpLU$E;uY+mH z{FzUAn`qp284_H2GkvFcC4QG5T*MjIxUqC1v)ouF$KKJzNygul#4g={iMH0o86s>> z%#RB_gFiY-L16Q8{>zMZrv%fnHP_KQI}{O|7%Hswatm)tL2d2#vui{aUW30SwCQBS zhWx>@vp;$JKB3?q85DpA>(Q5RCNZ32UE7!SYxateWIFcXf;;M%CZ<@1$rz z0Rs7Kmx~>S759D- zT%}D^e~XBJrQR!QnOOJ@3)n=lKaWlHb2`g*jOxA(=xv&mjhc+KOvqHTc4pnXzxQ}% z$#95Te7T*Y@$szt?!#XGbIa$tjx-xNAfTJcu;q=BnmAB?*TQDNtSoGH;6718tIJbU zqIVa1@MGXFOj6GGzMH^Mg62C^z(`W;))0L;KKq_(3!6kNW+$_|VNFV|7LF*vS|3d> z$=QqU1M>?uTY1Sy+^+JIJ&0&MZCLw#S;JVQmehCUPvqwu&);mYS>3AXD>+z;$u_A0 z!8cLf(-7lRq3X)nSKU8et{Yv!r+1e$@bZOC+EShbhci++Uln3}pfva1X};q5aXON~ zNG4qY%p*Z_%lB~L&n zN2tWZXLIz7@RuIJe{`|=w8}6tC;^%Sn!|{r1AuivAx0V406+O2q90Dc%k04>A}O8e z75*>E{wgXCXzLP%t0>$FZo%E%p$G(b3Bd`F-~obr0f8XF-Q6t&x1w;D;O_43ayh5F zNB`eH?#q4OPy1nwxz;p}e8oPM{KKNr0(Eg+d%&5E3?f5^4fjGqGwK1A<2X=>Si3j_ z%=SB%fHoqsy0GsoV*yGCKT-rF@yf|-1Yx)NijnO=aFRm#3Dx+lXXSUd9={i|HaQD$ z$K(J)YT;zQplX!||GHbwYD3F9KHLu?yeT*yFDloqp{LJ}D+B`+C>2Z$9WJ*9aMgIc zQ^jBIHl42yt0pnrN7#z+&qVG#N?sXb{`r#FZ@ri*B4!gPXp7=6S)POW$D^2RNZzU`8NAqHqdOGX{%sn^A+`GKZ+BnMsqe zRg4Un{G8?T=!FLK*uew=Ek9w3knJo*d@3-UHd zm!`|AV1o;M^F~RmKppcH5;g9=0sPz2b-nm#8j2tPEl=adtd(UOjK4hS$A4UYN|nUc zUu|*R6pk~@jH)muA;Mt2J2pwk&bFK3etrP^o53mD?yQBeq|6Xp<+E)H&UT=k$d_qd zi3oAUPQ?v-s4~+2Ju`KLo)zeQoBK|1rVnVP0^8@tMm&8R0W^X*-=t(k#NAR4(PB`A zFR^NpXY_#HPl(IuM>T2w`E|>NcbE+V>KxO9Gj$5>Fd{M*AD|C0MQ(oGVMG3jHmOw+ z2D<1n{CLp2?Km3gz%2i)SN>-@a(y(DN=n-1NLjbNZn&$0aSdgR`LRZ|vI-O$N3z8} zd|BPNmBR1P7Ca%J+rcNEdWnUUKnnA6wxa#2VNHtpn%yPPnQa8I7;Y6|i3kRk0acuwv{EVJ8A1-t=&+LS`F@Fy0oVie6937yBoy}f_wqv> zxH=f0_s(E^nPO5UEj2)+GroP8f5sKvBjDDp0OQaS3!l1!;S`((pMZu%{78|d&*cXn zNR|MA?c-+GTA6HL;tdx?IVw>Ik3tsu1=VMlW}Ct+5Y13QU2fdUsNBO!4@>)03rj+b zsaBdw>_f9ET~ZAmGHN=^BoOC{v45Hcl$ZDKde);S%J1s518+8L@GW;HgA@bzyQ20F zB}5WNGuje@Wr=S#Z4wE<9%5NC15Up?zcDoRfp=NYx#DKr2h;~p~C~ezyBGWO+xHq&mfJ;yJm6l&FQno+w5E){L%cOu{kI! zq}f|*Dw70@mE*IoLp{#nX^(E`C_pkw)L|M|AtpyWF@&CY~3JE7!z2)8> zEq-AZI+@9cf23MJCaF^fPuI_%5B8sx^lw@LVcY$ghiki#M1Y+QKcOvJrD4an7nBL) zRQ!tNVz5MF!#af`!N@fC0%izafwZb-7Nwk z0z}D-wgH^K3%|mU?T6!SzxkPSZ=*mFr=;n-p|R(C!}j}~G|3$53dlc4!%2DrLG-~F=iwcxwIf!eJOyw;;^)Em*2IZZOmTLzV%*1*!|4I65sO-Esyze z{RZ(*>L||OgWX*UNCL6~>$D9$;onH2@u?{2LGG6aI{+PW`G^6IY8FczWMKY`&!Z?@ zBF*ru>s~Sv+3WqZ#aMSTTSYHb55G4OvOc$m1#N6bS*WU;+L|i*)HFLa-?!_26l$B_ zvz*F%DUUc@vhOW_sYx|*I}3_iSCnLsrh*&4;3Op$w<7I%(RdehO66xEO9(=;*$fYG zv6)3gYIO!{Y#RvrVZI6`eTRdjWz`Z@pj$T)IWC=;mrA#Mi?sJ)7$Tmvx%kO%OUOEy z>Q_U*k#Avr@k=r+&eleIME{WZ)=TR6&36=hWZ1L)2g5ZHl}@nT#+k1J2{S@Eb4!C_ zlLZ~3=1C5a`{JNq#7Xn~fdy6;&oG|hJh>vgAD#*%d;Z&vZ1^;mFdFSC{zPwzm|H>+gk`Rl9igo}NE7T|c86%`d!edsdaqD&adZgKu z6EJGh)J*Z|F!q(@L~STkM{Lz)Z5UK%_>DY!><%bF53?^|I{^zfQNE5Baam7-&qrf^ zGHD{PwZ+oCB6!6jB7h5ax9^~Tl873|^E#HF+-ckGd%ztRqG~1FcPwC}+gX7EmP>_0 z6|U97*uM=XS+Tt`8E<=&KdQ}m$GFb=yzEF9WZgCE#pKT!`szA2VV2A@@D{m3!DEZP zQ$=ysx!?zcT|<+#@aeQNZ}|z%LmleCsSXa)!pZuIG9tC5w3YjToLaXrPiQ>g?Aw`( zr|Fxy9j!!xY_oKnqfrK4aE$A{$yT`S6;P#f37uSpC-8f(ttuxrgHNcLr6zhM(K7q8 zTEgBbysDVgz*gMlpRQcl4}^EPFA0xQTOTFlqN3I*rer<2O594-lC>;|f4K z5*l;OUEIqf8o@*Nw^Oq*Z4SGFCr;*0E}aHDOtLQVrAFtYI=(1?v&;2;I$wgOD@r59 zgT-Fw6V1j2o}$Bt^!k6A{*_EhP=EgRHR6T-Vx$NS%%!5s5mv`OmUvIXc%^Q;YwY#& zIW=;3aYMwFQvVp=?g1yveM&zbg~NAhk>b%OD07gpcm@4UCP2)+oFMx>(k;VtDiGgz zR<>d;uCdBlWY6KNkRg@9n^XM*jrhxF0uCMt;v|j<9>5co3sE7{P@i=@J5S56@=+{) zkG9bG|8>wb@1V2(9zaf-4I7ORlMyGD@OpFx{-% z{_!`a3Ky$fb$Uwh86#o+w#;P|xAo)updow?=sH@fpVRUWgErdlV(@BgYs;N!VpS8; z;CEtZK{7#m6PURV&7rnN?Ow8;C~Ns8Ex6)Ss5sWRO4I|pyFdRDqcA#%DevX0Pf?Qw ztbj-4I>J$cwB7&dyx*6BU;pM2dfP*36ndDsLAb4PMkrFrP-qYMu@(i< zW>Cpg3Y0eC=OWIhv{xNF2tgH@78fw&(EV;o#VT9#a9lp1mSx9<2NEuLHuu)CtQC!PB{gxr1_>bYDzggz&c7~j_l@HqytEqq7$!$T z9Ft^}dWyIA_csbqT9QLjhh6wfR{Cna@jdL(vc}LbW1l2mNb0TKVjb&3TvZ5|Z!FJQ zJV6E$kC#oL#lo>er~Hk6-E*JY8|sm(Z~0wF_vqfrNm)*bK1SKm*kG;i;qSxOKoF_S zJCXBmfIm}1lJ9};?fGhM#9O=XFS!0L`&WKiXbWV;g{08XfRw@%o`WCm-{ql=y3?1^ zR(QY2G(3I`$+i)Q8Bj?T{DQ}6U6Y}U#1Nd$ueY=Ud7P@|Rh8M}=Ss2mX3GvvkB{D4 zl%WnlIxo_1_%(rK?3?z|MvS5KJzVm>b)3S}BSo8%`@wnN8uG z9SCWoKYPB3T2W}f>*1IHLQizbd1-4TfBo1UJ5F67qd=f4H{yC11NO zi7U$W(YlN67u(Ci19^Ku95!H$oILc+o_S=K2J zHYZ~VivA_kKlE~RE%mbF)>#7IsBKglCI!fvBj;Ov!>|j4@&OUwsvSpotF;e#t^KoU*Y(^ty0V(5D!GB4 zbjsDs{`N26lTXR91U04F1^wrlUFmBr4B=aTxr?2MJ+5E)erB<1yM6qGme27tQoq*D z&}42uHnzi{d!jLv`g#k~IBha+Za&B=4?ATTbsM8G(an9^?0p+zqShDAQK+lX+~b7$YqI_pD#p4!V_}t82voYxf1Mk9kt~4%Sm?ML zGukOS4`oD;my@~OHEmuvZ=1v@-}?%&|3OllLbv>)l^&O%tPIDDj2L1Lw^UnotlWZ0 zu5{=osV-^m&XUy%GCT7Sgyon3IkszX2r_}J)dN=4`}s^L>x@M)Pg{h=e@U3wys1u4 zc!Of4@^Q~B1ERE-oD=sPBr+O~9gt%70p?d;6D76CuCetWXl?OLZhK2=_IKvd_IH}l zfWE4Ljedj`6firbx%urC9-w?p2S$vivlsbP^J1;<(kqlSp5>|KmeXFYS{3?;oQQ8V zAA0rDNT}-&=jZ&D1p9Quqyxb-84$Ib%NYUi!|)84HTDvFlWGevBDT7quhHeQR!8XX zBdKJGCy2j3g~h%31+LkAh<6ob`{Mym{Q>DNYPLK= zpQ9jJHsNeEhXaGZ(u{Ah#P<#?@sQEq@DwB|3Wj1nfbFs~H202_euvahbkg-DJNrY) zZ<9;Gn;!7qsFZJ#Rq{R)1ab53qFNB~5s09x5$>N0U}?cYCGC)q7<=f)53BG0QVyUF zx4vhweSBktiYrm^=9xp2nYBC+%?@{a96*G;I`H~CCuP10g4DGHP}|?0iC8ORtqRZ> zsG}gKj{>Dx-hgmF!bud<7QYetUog8A9u#2fdYrNMHt9aEN0HH z*OtJzBm?QQdSFJ9Ig-dPb;!sdr_;M7FcHRC(+a6>s72Jv!I17m8bNptox%%#j#TbM zBIlLU6}*0zZO2cvy)H2LfwY>um~aSh+}89%w<|qA9-w}x6&ZYg-Bh+8PBX6M{e-`C zAV9pO&d$p$;ciB#5KZ6xj}lS2U;j*`ab=yh%H&tr70Z?H1QYT65g-a$I94LTjpnDZ z`@Xd1tZGA4f71N%kF416YDeUH4iGVk|1A^chAa9e@2+$U=Ks7tS%?Em$du+>6qhzM zfKd0{BdnN3!tIhYc0tlW68P<@*%gak%sP-UxN)-XcEOZudYCfmrzF#~sIXPh=&ych zV)WEWE;3_##!H_JYG8WDLZOG&W9a7I!hVX|=z1OBvn;@&c$)<(Qw<&bSK8zbH^ zPqsxr^XioRz#xv`Ty^H6{^qLjB(P4PWlZ3%QzKm@jz8#^N zyHnK}zgl~jzSP^zq@jcKX|Ke#pa1&5eo5mHc|iYst$!G88nmET8Ab^lphcnwTi29 z|1Y_xME<`{^1%zPA@+f2EZqnS?+ecw))4}8tx`umTf@Qa{l)SPx^MrlgK+*l@kdt; zFIL(Ao`ci`5U_Y@+otLM8;oGbGyG`*+;^88E}EaYJ%0yegqT*_bci#M@O+iNjj48K zjLR3mY=Jv#@ECL2_n?0Oon>Le+g2Sld~HJo^_P2*P(onHS2mL-1_L$s8m& z_vS5S{IzJ(Bj{ZN1io@x^8hVXRj|wi>}=ud)gSnn-vK24 zOr4Pn%{byhu7F2;(!?~7U?#iediu8WUSKidii%g(V(KS8kVeF+e4G-xFyhxxSW(Pt z!0L#!Flw%HB&k0;cEWWSV|*FZaQPC@rXIs@p2#d~jqTqn1J?A@5>|mQG7O z%jGX!OZVBY+0h1GAsoo4`E7D%q-FBv*b4xcVS@P(uWoJz>z2RyePZh`p%)avS#5$& ztLA-f%JP}Gbw0jK<=GKegT;bZts&hRGxfL11{n0B~%vY<4`2H`g7j=$9r2d z6Of?-2d%_k-(8nJ@e3WK_f!<>T^i3Je#G~}exdK=6Ky&YeGcE*x%zf`JnkHrKDS96 z;og4y?#NbIO#110q}DgVq@Z;T(N>0Brl5uqs5t%**9)>M=*K)H03su z%1*C({M7_mW9NYLHjWTPI06|ue4K&3wnmEo@)!LiZUp$&iRY4_)7PJ?)) zE0lgZ%bB6Y)sA7|vFGY$(Y~l*#gpaO_q$tui}Sw5RG&ZB@i?%!%9ujLllS?iq5UmX zzdG+6Aw-Me_&8&3lF^5SoZNDcnS{D1nsUoQHRVa7Vas!vd{+$UFe_(Iv9J8y22yF_ zXe7F8bk$j1(NLsUf(g3EALsSS^*sh)Rdx~b4cEX3;V^rzo$K?LMP`b!p0BR29?FJm z{uBsQ9Q
^Sv>Qtw6i$Dv}q-zBhghEbCcx=PX?Z@@@tIw70h$KABWzFfG*{%bll z>Vej76Jv9P8RC8{K4<^_T~)naZaRCJ1as)z zDF6Y`L72Rai1+oCi0AJqmIBOse%{K3EQ|2<>A|9nsr9##CG38}AA>p3_w-j}|F z&~WtOB@TG{6cBw&lXQlWO$jL^fJhlt1F@c!+JI|CICz?8T)7>gXPK0PT6*!W;3*er zi2Y(*Q-_ZI{NC_StJs&2HC=GX058z8c##jNzz_WV_*d+s`8h4P2q)zS=Hm}`6Wr7F zTquO#oCFlh48i>Y$BPoF0~|_=E+EFM!uV5g2V zoYr2Nd*U-#A3U@-ybGu@^4Sg%P#|TA|Mc;_q#m$)QH{g^?(Su~ z{UwZXlp|D042jU*4+A@`&@u{X>xYhnJ2((Q*qvclEX_{nBEb5fWgvxsD?u zYKiJMIcG-bHa&3p*)tn~0)2si%#^_B{o$9zQi(J`4t#FFEini|jx2bC?3Q<+i&gN~ zvl$GePLJSzZpHwO{{e z(GsoWYCFH-#?gKfSFlX~^zMTj_qRFhh8x~v1&z-q)gtJ8@b$YKq`z7AoGzFfT`l^a z8C4#3*u(#Q5WxBso(?Sueyc92Ikm@_{+t|%U*-9W>;L{{dAynlYX5P)WS z06h?Ab5rUp39FFDqB7r1$=d6B5Tml8AVWmpOU-Wed}8faMXbP&ONY*F=u>OelJ;Lf z_&d&Y?5S0Tdui~ndxkYKb!L~e|2uL zTG%B!S~zKev{yvbUxIzkc8oG5qLX0QkvDc)kxA)cLm<|AwR0oAC6 z!QFz?(%+^08LEfK?Qd7fCmfRkhlQShbSX5I6QkMS66qGgst(^xoww03Eo17{Ne{_< zazXR6x7Pc!7VCWbMv1Gn+)5Cis3k_}D#-`8ws))UCj3vlNZe8GzRvt#O1z}a>!jdD zQhN&ZtM30&7hy49&DY6J0}4GS*cbveo;r*h<$a0-b9%y`JJYPQ_3l2L2>dmU#=3o^ zJ}sKY0H|unxqHPZK;-_&J@~seLXm>kHR%r;foJB^i5OOkFFsa%{)DmM#-}wI+SMkE zc4qq*xIH+%1G(tQVy!&Uf=%q~G|C4aMpb}WKm)-a$;|!a-&n+{AsZP#XY1g$Hgl9dG(t|gTogGK z!ArWlZ0MK;u63rB$-1f7S9}u>VP$k=6}heYFhCq#+-{EMv(dRyHDOBwJV?Z}f*u#< z$XLq$xo6hoXMa-BmlvVs&KKWCdFU+*q~~ zVi*a4CoRU$8t#vkDYlRZ&BTSQJ%z$!4*6WG2mVuM#MS_;=lF0uK(&y+!*$R$aHaF& zIt4|rk%6dx9EfmJ_bW9MM9G5;j~etH4WmR|5<-Z4d9%n-QWa$DRM+di9$XXU}f_RpVcA=ZFc_H{QRMp+j< zIPpl8h%17|7N9i ziEWD9=e^x32T`tgaldtG7x50y_$f)mjH`wgBV*xSloC-K=7x@@cg47bV5A?|MpF6? zJ)VG&eOaEu*BKu3Sasr`SrVw!)=Hmzt*DkDVC`b+aeA0G5VFuAyjb}GaXYoB!4{>m z+I{6F`)C688+3$;jy{!J*D@L9d*%AD*#6vdHQFK}DPg#W*G^mED>`a{wNmqS=#x{f zyMI!a=`bIHlp+H z_D*&GRL>2jF`R<85yTU&e=lRxH!Jhm2eD{EQ>W{EdATNdGtoK2KV4PgmHzppjU##Q z!l2nT&^M@lZf0IKtA`MTVJE6dR-DJW75OsPf%YN<5EufOfpCtglnfDaU<>NiQKAcU z@!?qAGd6W~f|!8x&LhR7wrIDz4^&-$c?^Ca21&5r2N#Kd`4VW_;t;gEaN0Rb@xaF53-%ORbIQ>v3ePA!7v5}>ID_2M|KV|16c>ZshvE;2 z0WZ<0=x&TdeXK3CQsU-(zGnl6BY%1IqyLYor^vo$BkK15phOV5eyyus4y&TcXS+0V z`+u=nbnfsNCZ!C^KQ`JD-XarlqW)fnrmj+|ott{;xE!%`5}T58i2d{1qk-hK+M$VS zTLT&?L)C+z5K`?!wDvM}N4Oo_){rP*yb^ZL+}~yqJMZrn3oZ_R3(dDpQ_BsB?t-~? zp*QdMDO7NkJ}~|<<4tp>$B_O;%E3TM11Tm_-eU4jHa@%mnU!>oI)yZ1cjk?Yz&tm_ z2~5VgqZ_+T*kqWj;Mtw*uMjB-MQ(KkIMYxSC;^&c0|X!;CB)+DMVNZ>CVx5@R{*ff zCN-R|gr2`=ib_Aj9ik<8d@%G68TX0CDCr3vfePGV zoNhTDvWY^?Y5`y&9Y5ByWV#Vk?Y^a=o;LRJmuDBqKVhf#DB9j?lOmTPmIKDqFK7#s zO_#nL;xrxoDkC^xdcw=X{>?kc4f{e()rFZEPDTO*=Cp8n;zHE3{|&H6^Gc|4mn>xs6n=sm6eoa&3B2`*D+C@d93!FL>f9YeE|<4KGNm(C_ZQq zEG#Uz#Hiq`{T7w(JwhZPZ;-uZ$ywo?XMB}9LxxR9L2)tR?x~aF)N{+OT^4W!?!A60 zxZuLwi-w=;!}8(tGrDvThl9TtJgnjubXi*8K9_Bwu*gy$wfOzBv7F>&NRQdjzoH$E zu-y_t!^K-hs7%hr{R_3gMa61XUYMA=7ad|l>c-m;zGk7f^xS+A_ei!Jzz6{;=uRmyKJdN_Crg@(84ZrKc_ zgumGCG5{{~o8;-tKK}CL>Y3Kit4X-EblU)d5*%^&6HI3Mj>J1=xHB&jlVu{OSw!l{ zGH-k?ej|iAG9}q|p(Lo72a}J-7OhLu8@E5P5kA6}u_bFR2>EMLbcy`gZ;=_P7`utl z*hf|(76DT?`W-P~H1wuk_0Osk%;s`O`3lARYsV~=J@lI1IP562qm)#@9zL3-s2yij z17p5-j639RfWg71{nmGwTl?*m-biIF#&crr4$p`jwz91Mub8SlGht!}*s zCgwQPXR2%zIVculUN**zmF=M&l;5#n9z7fyfI&l#dM$=(P&{L=_oN;y)aM(Qr9YOS z!)6UGR)_6E>$aJlv6GjB9zm3=uybauHuDAD5q!2OsrF!$`{9Z_WR*TzR8e2dQAC?%KZXtBh z6J0!kUYyBZes#ZVNpk9YbD+>l>%)Sj|tH_x3bM1!bw)TM~@SOij~+ZE6k#Bj-z+I_lj3|juf|^P4yHU&>eM1qhm{nJOgzn zsk^twNF{EBZhp2k2*%h^YlTedO$5$v3YQyR7MbK1Z&>~7X8cw%6(|bO{KYVNM@cp| zVGu0~a%QYyb0~_9S!?Di0lTTM_dws_ksP5t0el5&f&2jBI^cxzha|_tr)}rstrX|S zr2<~h<4@Lv5Fi4|5@dpERC5PjUUhO+f?s*D(H7RNsmd?(>nQbigV^_ z1-CV5!jChj=71dS=30+5?f-90;`M%P(jSC05sYz2li>}WFz)wfw`jhNj8e|OBxKLW zl6YdI7H=1GgwqR618$TDPz8Tj6v>vyNxn?Qb&l*PvFUaqEsF>7IGC$O zV&$Ek*Os>MRp?H~+_eAUdA>W=nF#lC%fGg1356mcPlP5reBRXt6?TAPI4*4-##n?32Nh8k;~a&IozI`touzK-fA;SLl z`r1@8*EN*2Ue$&21LwStk8Tro%BJn@-l@=zAFC7I$2#0=WwDRX!%rDP*sX$PKkwiB z(2=nbX5mu)gfg6o!OOP3>%I#LKtNW3cTUH3rbBXOA5o|BD5gHy=&QKxFB@tNJ8OD zI-kXQenu_*Y~_2V`dn+Yg=*+2&Yr_#UZ27A7laUT#T5{XSsJ85e3x8!8Y`@DAMuT_ zzY-ii(S6PeK05aQ=X^eRe6{jMX=nMID>tLBKGmh2#cKw~{o!x8QQQ4=fo8);+LkBrIm>~J<&fkS&ou=7P+(u#DTUd=#%k1po8K3hu_EZ;aDWb}F!3&YY^^zX{MS(`Nm1{!bPF z3$$`IE0K_+>HiwXTity!&BOk?ar?>T1&PFOnith(KY%$ zb^?t;%ml98st;q`^Nu`(w&O{+5W<^8dC4|thZTblc=e4hBxOzElo*J~7^tfgW|qFaY4xIP ztz1=RP3BVRZ9iQW=n2tf>>-MDpes#xiNMaNDZrQ7IQ3Sa<&P^pgu%8XlT9plD|CjJ zf<}erUD}(OA16aKV=?EE6ZNSe39~@z7iJ;3h%0=M|F+^XrO&UJtO=6ju>ss704y?} zM(sVB#EtU!`|J zCm;^nU#e~_fUU^nt-tmzNb2k8zUXlr;A#-D@|?{(Z0_7xCKgj>rarSgUF{6fQ#a6> z8&mv39`QeUmc7A^Y#AxE$Ek+un7xHU6+nq=u0vnQ12i6b7b{F5hL!Cp20K;2Rqs~o z;e~?=>z37uU=s9KiAd5u@{$d4@)x-PLP>!{w2sAATk@_6m64N_WQ`7QKg#HFc zWfU9k>xyAA#|Bq#eF?iK^{xh$&r7diC_8~`>V88PLB?4hkz^bXc@oL(rd<)wgy16r zNi>XTx)8MGqkV8BMzM7xZ?5|bpd-IrQqYVeCz03r8^{~(1>emc$1a9G%S^Qjj?HlA z-*Nq|qyG4Atr~DUlIBK~54;k03AUU^Q_^@7)%WgsF=t$%z@oHZ#rjE>G+PyZs=|!^ z7+%eK6FV5ock4S>3oKqlKj+iy?T&*^;A}=C3)S7v(#ZSsszPswZvJNV&kTZtW^<9f z`>QY-WfnDii7cyQ{vyvT+K<2m2!rWNPwafxC(xgx16h1gctpiBR5IFPBeNQ#Rnnoc zP;p;z!{&|dvO7CdKw&31f^7ZE(84T+I-DN0>UDXA-LLu>-3QR4Y)Rzrhm|qPku>|Z z7^5$~kZUCcTM0(PSYu|v&-n3zcfFi(pe(b>pLw!T9k)J$J|0Asr)9Hwm0SaK=OYWu z50p;>zS-)4bYawbn~`FR{%;>`_}z3Ce=O7aq9OFAY!nr0P0s!5EoJYD6O@+-!#oP? zta_`(di)zKwj-Xwu3$CPYOLwir(+ncKkMUMO=J~J3w#%QV<~v|gc~~TINUFz z@2J?%R^-|zuw#}q+(z*To35^q)_;0#$w4pLA^E5W^Hs3_s!RrLi(V>-U%qB5bk+Qy6 z$rLE@h$0h(?M$CW6y4Xb|7~xi4f0kERrtU5#?`pk6HVLy#uBZ{w%>}7{})Zlybaez~_{gF#PZ zG|V0v08F(4>d(ya05GQ*m0*`xn~mn`s91@8-%YK{m{W=UWbf3(G%@VHfA6!yAZn>v zIEh0n4Fy7u@LhciF1x|mG_U*Rr)K5uAFnBsRzHuAMFcco)%+kCY>p+`N0 zWXl{({0>ilOaL|&n$I0W^Pq;N{ z(r?)rX>F^dW{18OUk=GBm6;$F*9mW_$Xpx*@JvSjYC8=2Gfh^TOd(VEj2}V}v(y_jNir zrpm?nQ*G_s7&iu_x5@fuyS`PVQ6v`{cL{%n$jK^L*5zMpv8T+*4&hBG#zH#*2wST% zVSK(6qIL=mw$(=fFAT1s#w44WVeBtlb5XOa7OlPz{5iFGvILlvxVVszrTE*s;XeXa zq_01b7LN@x&T|1K!#Je4I59rY`9liG7IKY!PQu+D0z%SYH>nex((?$Ubq$VbmTQ&z%!tY!~ z$^CA#`TVIZOa`|mXxOfWs16gQ_>cUcyrisDoG++(Wx$P|AS~%Y5 zP5WSZNUjvZ#202a2jo`%<2V`YO#1##U%(#Dn?kkyart!e@$}W71C-6$$&p3`;q)|& zc83#D;zIVHy5oN?blH(>532%~Q(dD^{t)NLSNqsQrC;%0U{oYYWV#9W!5E+YhN$u4 z1n}LCGX4-c#(le)dfQaQ>zS(`e`4LfFH}GJycQEkpwTM$r=SZ-8^g*hz#>xwvy(4- z@;eetP9hXaPZZHFK9yW=HxDmx=eYx%LodK|g5&&WtwTB{i`ZKz^ESi$BTh&@_uc7z zAeKeNsjZh!x4zbX>SqWnQt9W3iq&r7Mg^dA)h^oT|TM?ERWx4SvEx0@V+w?7b-DkY)j3mYWLRRHC3HmaL*~a zOJ})CY!exMJPM!ax1J9VN)7!XHea9=eLkS@(x~uX`kLLMDyY?n?OU!Qx#vpa87$!;l zDx1*GZF48Ml*@bT$J&{YY_*(UaF0Sf&BLZRe!=}T34#rAA5GY)0nD)KeRY3KD@e9J zb>6LMyiHDN43kQRSB-3S1Q7i6pl&atLmIS4YgYq7!G&;)0N8#c^lrsMRH32`aJB&sAVigX-x4Ljr-hjc#kAWu zEhH8>0C_debLIwUshyJSh^@x2O39cS3&aPz4er6GA5(HWBd(lXu4c+vKp%t+UvCz* z5W21CQ>&ZEJ8=P%^0{IR*%H`f-?>QMW%K7=0bDI2lBI&zD)C#t;Q#qs@UUI3R(rs-QOtp2u}b6R$TEFJf`51bPpDO@nd`U?i#m?c0^w@0WMStpNESevMBw6F{t$t<7?q93jvz407GJ^rqZfl8VoUjxLv)GRI`@{ACS5t`(%0+0qqZ(PF$hZ*ZeM@eaH`MHa zq=F}qC}fNR?4PgKORu0SwL|^Y>Ln6Eeua{keSJxGJ#vQWYa;HLX}1FqsCda&3RsW- z#KD>^*F9du_V+C`8D*{)VS9+1K);mOW2RwcR1z?-wfpWk!f>AmPA;qFNUfue=)?D4T-(A*5A+M(Gs(>IM+Rfb>K=V`dXq6G( zlsJBgqp;6Z2f{YLaN2vit?v%wsu@m|L0%>nn2%_KEu(9=aBHp@_}D`-hg^Be^?h*?1o&gMP^uOT2QvKuA=t{J8mg zmGu&J_2%wL=D;N~`I&0*)4y=CNR@l-pK%oW>Yp!WOMYAZv-?TyPudSjes8|s+~jiCwA18 zONx}wa|OBptqro!de2&SXt~`;x7^TIl!4=d78PvB83vnS?Qy z1>BnUDJv%7zDJjZGG%IG-teCH035`g+3c{9&YGr6v*Nxd4(JyVsil9hNiF03D-N(qiDA!z8lo&RH8nV~&U5!NdsKWHe)u1<+dh_`}Z|v$t z`_8B`zM%HQ-Na#20D?hIZiN!SJ9IEiwR6*Il*0JhYpIH2>SY)eN=-*U*j8=6N z&}CZ@V@qN9B6S*T5zAFY-^_^m5o_kOlx5W?qY@8s>2p6+c}KePyKbA*JP^-Z0-YM_ zcE7$4>+q;5zeKx%>#9zW9Lb|2n#B)tZwvxU&gKy)A7^m7-IC3gJ4E86QH*xQaAQHL z41ib$K)MhrR|&Ax0YE-gtVX-GB4=H&R268yIqc}d)I+<@{tbRz2Fd9GLr6B35_pOx z?{Uv~vxMSgPSNGwMK` z^(h|Xh?T*J^}q#P%G>Zig~?=7~6A|Dgf1O=Z{qepjU8AcQ_A=i;Jt^vZ$?sy25Mi-+6S!_@+})qBOgcdh`i4&b9KunlQk zkp^eOr=+MTeDe^8>E-pg{WbQbugVwY^~x$3tBqgCvnQ3%xraIL zC>ghZhP}}%fz0b_4+B}x$k2T$NQlD*2zGs$&^i8=6sJ=VX7%wq!yuX2#uyWzHv1Wp zNOk8CLq+fR^99!LcYJ6P2(y6c@%arwxHtN$jZ~YX4co^x@1~g=H%z^-A-7AEkYW?P z(Xq0nk-E=f<|%ydZYwR9j@$<07=D!}Q0FSDu#KA*3nB4biFDi~5=~`iN_VSj%%Zwp z+kg(g{%kPDs;zSaS>JY4EP*YbVXmxhY`WNbUk7HI9_re?ZS4pSPSl^dZ zBUQ0RkgbsPYh(e+N!&^Exbq#%radz^p=^BLn^6}wdu7_9f)3yyU zObe=JQXV6WlOY<@G}d6ZocNZG`pW#=_j=bpnJB>N&;_Oy=i}xEOe;&c(3L{%T>xtb z2S@Ya`|VFjuPla8Z!zf2p2ftX)s7zL!AgjId#3}ndeXSd(UzH{2GU13)`-g|_(qb5 z9v)VMsuBqbjvM{0jLCf|HO65L$|2*KSUxVyUtmteu&-QBsIQ{PwrU-!PeZ`P zcTP9KM>lJIz-0ZFVVCVA+S-}!U$zJ-mX7B~i77L^bXl`(twR!W3txQnG%05K z2%To@DK2`?!6dPe4$00B*HIQ49NX1IOD;cpgO44BnJ)7NI}S9y+MXJtg&$?ys(g0z zv~QTL9L*=~oWh|uHZ|GRNVU_bI}fP2^t!xJX&3lpn0^1*&s(wl+YJ%s>=;9hhGC7E zgZuqR;2@gs-iqry)b_3S-GhVxolI2=Al>xS1ffG?ywC|RiF8dVmh}CgCqZ}4K(URc(Gi~NoNH%g0*8wvXrF{iPP z#emj7HI0VwW9h$TZDZEOY8NT%TRj#(iKaU}xS$wIeD99t_&Y}_FFB)XoEl}_I~;kz zjAC`3-i~8Ydk)(B%gZx`_Dp>Fd7;=DN>;dIoE3+I9BT|pEBQ}3Q7k$kGHqw^$!oP` zyFUQ+;r7WkM|piNbC}(Sp=Y1T$n0oZkA8=hACrqPFaWTJYRRZLF>d9Y`%?PC=& zdnm5??tJ#DrC&Xb)?(v6gBWvH*6fOlJXGogoLZ_24+VdNxsQhZ8r@5oBOhX(5J^U5 zE-T9H%9R%&3xEG;>6@tQy<@%4s|(UT3TVZlndAXmjG@bQ7T}_{)^ZR%J=#5PUPb+D z9Ei&Qq(}U14LycemZGui?APD)gPl2-{F9|@sD)O3DU_<>%J=Wisut3gPV84nRIv`* z^_S|EOk?mkZpnOHw)NBeumI$UJ8GiG@LI918j_A-4z>HW08=n(K>Da66`1K$l? zgK83OfE>q8AncxxX)ruVCNYQ`rfen%bQ4B%W6+@=Ep7n!`n*^g^j+^;8drr3!CX0L zlzJ-8527eE6mo%44i*a6$yT>_Xk9k0&y5$^C)W8}^QVp22}?N1Unkt|ui_GMm3%uC zywMsz^$9z<`&fk3K#r~1L^zaCZMPqY(|v+$F1~f4dIg&!vwO`H|AseSq~n4Ex<%;? z23YM9@(&<=^drrV6FCep-An>?w}%@q7EcXQ_{?)EXLfbV#=Cm*#pbkVLZItZ=f_gRUh?)WWlqO` zeX|Bchwk9c`8hd%MpEURAo{4&ZV~EH5Wa3+U0)0YW%E72ACfeUKY)AhQg9xXmPBM- zMyfGwd4jW1W|H3ThjyD$p|vNix$)+~eS;>9nV;dr)TZGTu8b@c_G z6nbZ0EKu}3sq5;9)Vcd|G3b3geENBW-=2Vw_OR0G*TBzvgzw5p%>!o!#fF_C^K4I< z%A>D=W$}*n!-_Bm%|`n?LlSYo?V#lA;_<-*;>oc8?bg7bL8)^q;88BZCV zL1Lu6^L?{Dp;(FWt%dZvNdPwe?Sn(6N`9v95WxKr50HTZxke>Q^s3oBuDOFBeMe9tcSS3v<0iqIwT{G&mtD!n z=UTLs=<}uI>q}sATkz$;QuK%`f9BlFwL!!?pbf>&bQ}y(-|6pL1s7I)^&hr@F2h&@ z|EPvBN721$vO4Pi11_^7Xs%=t`fejp0Fc!G{IP?YXNu<}h@LqPR zk!0B=C@yvka;o6`m9oI=6n!$e>s;+x6#s+t zDjlcqbk6>sYYwTm^ia=tR#32_B)<#v9tV}#1X;Eu4cbzb7=b4g@8{B0lskSR_TFA% z61bOor@PI<+X;(};#f|m8J{oZ;=7f1{u<9g+SY~#=HPO~ZTPdwJfPi9@biCmdaTqj zqKc31yVi5YfXF!JEb01j zg45+S40nfZ&l7(%?62gq82AeWr{!MAcQyfU~q_m(&>K%2V!cXJ`aL-nU0Toi_4n_b4~-wMmsgxB5KdKG7nFBo^!=RZh*OO(oux{=1d4oEozxn6hL#k++;<4i>IC z;%kf~{i^)bQnLx}o<-N>H6cKluT? z+X{G(J@43e%EVjD4wmsTg%Fn{?s=v29r_eImp4B2!L;3Zdy_pJH7{Gg2FCgb?x9zG zo|LY%45>*dU!FSBY=D^Ts+U?7`zWcIQqEqziwCQQwTB`VYpi5c<*;~3fJV=mg{wd} zys)<2_Gt!=v#0!0)%v!KXCD~;Lw9Ix>Gvp5zm^FSDWr5ym1>`lcg4;5=C-u;w0!yV zj5`_4?DAjlTsL4H#RQk=MWC7{+nLBsj9b4G)8hfIbgXj-LSHw95eR?w1Ltgh08dtX z-{OR@&t!fN^kehGEK@Ok^)DrRQHl!pFehX(kt|hO}|Y4KK%K9Ij2lnA@kbFIWK*Qt1v(|{$Xn5>E9|p?8&-h#eV~NknsOvO6N|iKxg3PL?sPBA^4~OS%R&7Uj;QQ+0(SWq^&n%3UdBK zgEt*#5X%p+4V$VC#ntRveoJv=Aw&9XKH`jTy zLE+xNjNX%CK1M3oo@Vohi#TSt4$d@ZX%m4@uScvya#7-L$j3bl$su z{XhHjSVCNJ6_=Hzr33<=R9+_F2{yCwf+&GU3h&DUGvxRGlzOG`Mt7Eqt2~@bPJ16D zOy~>1|ITxX*M(G-T7QN5)uv(Ui^RX{?JK7s&+htIytGA+ia*Z|Wx7&#G?~4G%pG~5 zI&5sQ7njFT%4@#Ho4l08?{xOF9G6K~e$M9WOAjDrDWPX!<@X2n+|z;Qj-xkZ3wzW* zbS2{y<}H}6LRJuAa$jp$E5j?TNsoy5u2ruDXA|VEqmpU6 z@c%z_c%Hn>g7f0z_CnCGCHDB4LYj%)RW(>4VnrjrJ16m~zFE*<} zkWP5qZ)mp^c>S33&#MIMc!1p4M03Y54#ZSP z5WGOs{N-X5f3RYc7{%$c09{zx)5q5E96dBhd{{;;2`*6QGg;V^#>c}tVw`j|FPd^iCMRsX7e15>1jcmihsrfxYW7bk(j1Zi6OaV@zvAc%VCeA8rNP`th z*!)BRg|3R98{Uo+_hO&JXi|NKfMbFRXnUI3Uui^1#ewWx27RRf?gxaDAk9IhqpV%! zVdZ}ziv1CTJTUi6^VXtm+AG+(6){55?x_uHpaJK*lGTZ)dP}Z<>JpKKpUTX}b;%vv zf0|q6v=&a#I}tKi+qppDb56+1<_u)1P6n0#bO%F_8nj$=53zUcY}OihdR_`JuTiCO zjE_+?$@Bi6?M7zs$RyFnck zKGbxFI1_}-+s3~A24N-ati$}Ko%XCVh5O{)t_IcJ!_7@5APALQAwK{eVJF0!VWx0f z=T4^hNyx1)_`KkjJ>2H;Y2cpKh_(DwC)4G`Bc`S$rOufZCF)-FtAvI1nellR0!InD3Dyc=R`vUrV8=9z-8QW%#V@&@pavt#t2s$OFh|9PpWq(D;ejqIX{_>sPY?Q2(l-Q7crk}uMM zWwv8rMdny}s#fT2qSDhJ<i`vKS2kK?5MFOKf_^p2!MJ!?sg=yT8?(?|SIF+%Y1%d}H zz}m8cw#(W3w*838!R^Y(D(tM2lVVw0kgL`{*Kz-IcMxHPnb^XQqaNc#hZ)=UUky-RXH$@`>poeYj)RpT$inB2 zd%aQ5%o|6`4D!)OW=;^s0@}xHF5?c8+*nOta2ME-o8HmEj!nTdi% z0e#Mo4e@LyT%Oyetq)qBARcGM%K)nHk10s+*fBPAWDT1Upd=KcCn!K6)LA7G^8^FxxOB~o!E?oIm1r16*JBkkTlU1dc}c5*+HKA}xW zvTeafi7I`HVf!F#kAa{74FX4$`-wxDvwIX*c#o8fUhX~d-Wi*iny9Uo@#rK#E?w4I zmYO@Smd2XhJNI0D_u?{1J?>~*uOgR%rJ15NO~)J^nBq)L;jha?3RXQ%-X|GLJw~>=ZJfClvmvauu}@I*DbJOWvfBuxn-0LivdKJ%PLAmnmEU zVfOoWmyr;uWv|Iyv%()}wX1>=8v#8N8n`IW`tjFvQ_HY1v)vyQgKFZ!p`z|vk0P(R zU^)Oh4o6)*P}z|Tz-T+A3;i7}D-Lw6OkpkSw}0+T6*vQ(^}B9Ibr@5QkB8HwaBSH? zX7HRiPOD?E>(AQTJ<0LF`0MCu$35s;@=2uQ<^lmWtZPqQy|6h`(uHu1qd&7LVRo9B zM#$TO$L|@FV3Pp+O}q*vv9U`(9lwyqTgdRh@Qo_XiO7!)sYND_w_Nley`FgXedL!Ac>={&UJTCri(tPR75 z805p3Lbi-<*WO$^r4XZ9Uw%)eevUQ!&WWdHV=6TKo(_LCjSl&TDh;bY- zg_d!ZKDvq~#0Mtb9Q}`Xcxq4L--bZTs(csH_P}`Bnh@B}&}vg_U2CuhkbX&yKX^q6 zpcEMYaq>C3Te=1ByNrffvvKC3Bcj_0DA##}OTMTGK!I&Pw;Q#bK(?y++aku7CuXN0 zeh*Ea5Nq}DDrwiU)3f0);yazr4?^q3WkF^4)GRjwW`7(sJVVz0e&>I1h_Wy9PVnd?_PtXMA-YomEettJn@{Sik?&sy`r?ABlGZLPUW@0U6S7 zrpYJpZFZKt6a4{?SO?+<_UyqMJkZc2=iWkg)Af<#SV-3hVqX2&4>78Q{zI-5nO=o= zIA(vBgy~id38chqU7Z#|U4PFATXTs|r7hH`6USu!Q|9h*!?DHFWRGtV8XCFT** zwwx@sZ^hqb80n#vFJ^~1J-;Mr&$cr=)}H%tS@);N4@G9WpsrfG&;}XF9=@3hc;>j*esN5At2(EiKc~da`SJga&8vOqm1eR4_j5W zQ8OP5D}Zt?d#|xiuP@q#xeV`&!Y8E;E^QmxaQKXfqTwx$qXOSg>Yof?#vO}9PlvA5#IRWldtvCe%G_b#|8}J=>3$je(lfsLZlj0ojJnSbzpkDvszz=aCRzIYH%-=ff8BK= zMoG<$j#!0;S>;Hr1&##=caN1A+6ONjA!cDZkPqCEAgJ-u^nMV&6SOP|ly+I(>77o# z@_3X38BrM6{2UxV(AIoA`ETB1k>3+5>e(98T>vkeQ&{&|+$@CXLyUY;N+>YW_205V zwKr%896H~jQ^0L@9do_Iq8WA*v9KL})L-WAvc;H+;0EZ_)$mUbM zl-~-?*b<`kRHcI;r=~iuIIfYbIL{aN-lhGe_XRgo=OzA;mdnKoy{KOt9h??&%%Lcz zB%QQN`rrYI(_R*n;y{hq=o3*+yBNvTU^XRin)3FPLdDCGe)W5s9eP3XKohIJ0^aTg zHMYHETJT$ZeU}|5IeT1D;0*h?KAb4LZM+9rjqnr4M8GXlruQ*2*q z!joSJdR!l$voZ;K*MgvNM$YmTY3J??MsIMgi(AgA?%`k3rdp6Uv;5C9QS!`(MdO*@QbJIF~ZCf`_ezh zDOyx%dHw^s-Kd?;I=vDvPx*jUbO@lY$S!459dXJ~L1Lmy=t~-VnvNlOVa~Y$P z2lrr!pfiP|I4}_n>sb}Q$mO!89|=y;dTa& z_o=j=H2GP=bIRb1VJww6eh6pC9jGZ8=3%);wh_2B3;NAIxjBsgof)sshQ4hLOv{9H+F`|p5ml`_gC4l-L$Ma5FjxRJ$@Slus42x-&uN*FRl zxdOmyIjiRa%ZIB(Jr1{q-%Gw-Pq`f~rQdj~_L+!zbdJO=Ok8S}bEg6#hIjnB`N}v1 z6`Z$BE&OO?LWP>pP1jwW@Q|S8^;KoNZzlCh zK@A@GRn9A>`o&|?QD8%vywZ<~*YB3MkB1*1j2;Z-3o$(bE^|adAi#60jfz(7A?9mqs0;@x){BWY5Ufg0C>zQV zj->eklhRE&bT#%fdP|v;-6a`$IpDVYx=n}TZx5Q!HQMd+71NTItzP37htw!^F@8~= zctebJPkk)FA{vX3UbHKeT(QN0m3_lKbA$Fi-D_0CH0@xbxzIeU&(Gt4gujS8LmSFc z&%Z2uw<)Vk^(C-p+2aYp%PbtWsi9N5YgN{e>!~!h+#iu6q zqfjnOkl@v^nsfeeL|5O)>uUnilu6h4z|N|wfcE|K=PgIz@75M3B#3fb zDHPK?BrEui`N1r~u_mI>Cg$=xHffy zDWUUbWzYh7W>$misY;XZ;fdvH2}dcQ90Lcl%;uXS?@LUyMY9Z#iPO%r_;j8x2BWl6 zX{0Bpm?p6@f#X0H!gnGkTr14){{*nP*YIU06cgEqeJ6faN(Zp*zvILeyl0Rs5i!w? z_P(X4AH772Q<)QWnkY7IN|{S7w-wtJ{Vny|#`sAB*J}O9+@7^f3@7S3N}Vmer3j=p z?>XB#{=Vev58imBw%~~xgA;nF$eF-tw2um;%3QeSaU1|2F9~d=ahyl`9P$OmBEqE% z34Rt)bdR~BXO|p*C*SyI6vM&7>p(F=73DGahk7oe`h~3R(E+HGs9U{*v4oj8Lmo?u z`yreM@m-Q3a~CR#&dXOy%={ezt3akCo_{0CX=k=W2N0sN*7nKKg#xLI%r^CHt_D$b<#JNos{z2)2CEPy-;9R|6F_s2G%zQ z3@5^F(>Qb-SK3P}l88RB*y_;A@XSTYmA5Dg8gf(1H1XFQ=}azX+fiAxWOxO&xHwB~ z?ln~xl$IU4to^-C3Ye8B4EB^Gx6gU+?gTZLst-kpsc28aE_BP4to05)CTG3^muID( z>XWCm`co4~CmFpqr{SdXZFBC?XZxZ=^2K_{hTgo^rJ@L!i$_3X*B~M$MyQ@2w6p}7 zezzbIZYG!po2d9z`#>JR_R8Ug{6dUz0hb`kmVAdcm)RM}#yefs?U_j*fhH6sMG|elydTV!$f<*g!aaOT|!UMg|erzt)d%5 zE?am;HCR?|yV`EC_V6nI-s{WSpWkndzs4U87E#F(<|8`z;{wm@ibQ(}w%V9~%P|w0g+sxr z6#^#VYb@uOJ# z<6v^=HkG;Hk&`M);wz&W^S>HbPU+JK-rGL+C!HYa-It|z+~n<P^2sPAvY*ZL{|uJu^{}d%l+agX58U@!Xwat<_;P|B3OHL6o=FNxZR~% zh1+mTCvxhzAQ?#1Bt|@wMKd>fA;s%)jAQk^#&xaP%J=O~u=>nv&-1n$PTjhSeONS4 zc4GgbJ0v`*BRFS9t?Q0-kApe;mW296g$UI@474)pW<*m}sf6O8kOnLCq3*1cByN!|%}e18zlmUy+%Ul@@Mc>&aX|%Xn#S_wgB1 zlVVUN#2+}Lp6H@!gBF~E#9Zc#_&>Jj2lxoJ73p30B+-+ZgdaMqI32%fTy ziR_CQ*VaZy9}v&lRT3Ic@^q}$qX_t-@}O?$FIn=HE*)qV;g(bwyoNIlNxnA9 z>HQQwxM-q~zb|6yR%c~8{9>>YVQzMSvv3U@m%x@$#^viWJ`}u$l`ke4>NeeEwk?O{ z{c~a6s2CKt9OnJ){Oih+@tqm$9t(77>b!`J8!k=m*U};s>)&h;i#b-=k6O~3OTbSs zem>FGn^QMn#CR-Ex_3gUL`U=%qa#zf0`} zXSQg9)&2LJBnGLF9FQ$U>j!?^VHDEBCm^$}>VonM$v3zx1mmb-m47~$*#_3GS+jy$ zguBj!qZF*m%;qFODf2fc5nNO@m8gTozb3jpJ26xS@SKqi($mr!S#m4~BnGUV-LXkg z6vFoxF{to}i147i@T!^@Ecb0=cn3kUbkI9rh{^D;kG-jnuQI(y1#UuuQtmJ7NeEM1y z2@gMVT1DWkjt*Z-s7ykNR}dW7ha<4Ho^2Vyrn%{}?9ktB$apfr@~eVp^%IojnI?tf ze7_6H4x00Ug?6K~Ej$ejJTVoWYeMkZCkZqbsa?$5hjHIwVy|^w@_Z2O5WC|+yDO+S zX^>YAAAeEKJtEkpN?(qK7h0(F8qsp!<%h|nc)x_yT(_tTA*EnztLtTflQ0ifzRtOIqh(qxYn^)G{P)ftzjvk|m(bsczVa=g6!rLZO&$9@pNvah2qI`9e? zEw&ir9mVpBYFN@s!0MZne!=9tfH_gG1OG&ehm(Q6Yi~rh9DsC%CPM(UJ(8P46 zB^e}*{ZCl0crkT#NarR|H04gMe( z6YHntQ5Gt?#dfDr=*#{nrf~Q-*b!`wWk5}u-7>72GZ^|b9pBQ92=V87 zrn5`-8+Ag|_TvQ^i5hy^nCx6r<>0M*B2ReQgQC;4$)`%+Z-^zgnDxUT>yAZE*wHqF zryWO4-kU?Uw-*v;)vY#yV(j!n^!pc^$9$P5%1|zo(n=rH0DEgBD-IS)#X{Ao2O$jdeN!G_+7vKIl5=WtQp84&3Xlu-DjwN^?@bKmP^QmUja9qjYpQ^QMdy@Dy} z=S{cRozbA{Cuec38*g8fPPhplP;@DHXJH@0_Fd75lW?lxFs)X7mS}lB-*o1;UAp$P zjvLqt2_+el)aPu05C7{0U~OO%8GOzf0Q*Vw42>6FL2=a@umk-Qv(*b#quOgeQiVb$ zn^JF?TaP85oC8&QPl?Mh4}Ia+f<7!>L1DhNR5P!DVr__%1RN_=Y-~y1PyK z$`X-EXUTFuVc-G0a>T1F*uLi3LuZ_C3XN!@ z(+8tW&`fC3a~x92l~>`*4RUo-Z4+LE<4EU$6;DAB+eeZeAy;&-QsQ^Di=2W+fm}?X zw`0mRHB9TvwY}$a_0w@NHE~1j-Lh$8W@^pFhq#E#nV(a0`=xNv^4As5dj!|+WaN5` zdnZUw#W-jc^R0&&{iO~6vsq8kh z@y>gyIKz%WZyWS@0ik!diSsljy4jD&-4fHB-r(QjyW4IhQ`BT*?3+tGI4vlCy$5;V$OO-q}vXDvdo*!wJDSkXPu25NsVqyXIOZd z*{*RJ|MR*MgOFAd^5wt9n*IMN*3=4W`M-R~yB259q(iEV9KQT=^7vBu3FjZCrL^w~ z`2>+SN?!*|s9W4Co;;m1{9jmCECH^=#wzi81arl_?5U5ET>e&{XiD1}!LYNz;c>b2 z&Oeplio9uBP}yO#KocNzHLW*xy<`RWMXNINMu}BY3;t)DV&l7f>&j3LqF=Kam)IKIO6@`nc|})Mp}se^yDUrM>w&s}|qL z#4twQbj<^O-`3wH6zIfYluMar3~ZinNb!0f=JB6*dArP|H@+_gBtBA*Zl?Q=gvk)Y zRCtR)N{Ou99x=tT!20h_i_zvkFQ;mivrR^WKwTwQN0>`<#*W%jTTJK(sBEq{VtPP$3E}*)8U@o(A<;z@?WcFG z_$lQf+#{P@K+k~npB&X7MG(rZk&wU2SL(=b3s7cf)wOr4HfXD!e@;8Rha-vbdQ3&U z9=hhxMDNwBf^K%1OeT-LUzw-BIyLZ zt0u5avv!Zpz_aQUNT-9xmZ{yLTlfBf;P&w7Y#uI2YEmhs7niD<0b>weqrZb2BjyF! zYf{~+D@}fPxOv_ufYVq#$je00R+?NCsq`*v zG5Qr2XxbvgLA_TjC^N%9DeFy=515ygbCeNzQ=vZSE;xfPv~y^-#|Z(td-#pgKa-Bjw_bI>qUispmrk1jvgdBkI?eX= zE6`OlY6l?bv4jT|?FUut7@CO)s42sELTFr4#w_vXRBV=G>-t$TuG#w1Tzux1($+K^ z=>=UF9+-6vR$ISSjl7Zo$RQy(>zJugU@$8dVvwixk!n#BlNr&Nh(yQCf5hJNc!TYB zJ1&ZOaz~?eXWPK4S~_wI2Eh0805^kN0Snj(&tO?>66eyVCJ2|1HNXcl0AJL2eTtvS zxdf4eS$_6~O7tMg&glQj=?}~Mfj6}sBI-nNz#1ITz*RXu{~w0*Wq)9sg(~#s&^d>u zJEn|Tdix%lw1TQR@7si6J=>ea3QQ!@_NxnX%#o^?x z5H&8@Q;n&J9!&XLi9x$Rllxz$8mq0z!Fwsx6<=xv#ebd07^YMjjR!_6b(_KP19=6% zk-kjKWCWY%dj~qc=b+YG=6RwAGcq^jNIK_?4Nw)*Xi%`edBf7IR&%X+4XnaGXQb=Y ziBWZw(Q#n75XSQ_BIybOaU%F6O1i3Fi)=XVg1m>ZWO@WA?Q1 z8R^y(OUedQl&ASf8=gC{oB8f+9Djx@5dS^7Z(9}T{)=G7gyz^> z5~dlpbj!69Q!h@5=X>(7F!O&HF8Y;YJ7otA*P^2?CX+u@H*xQ%mag#s)hO4l(lP$q zB;CeUZ3GiM*PW$471#YiGC@^3mEVx72)Lf7higX_#b+Fvl{^U4F{@nIO!MOKZ4r$uQf^lDyPj^B>i@Qn_+wFt~p$K5No=SH97 z?Pc>EsB`U##%|}45e2G+b;D%x(-X|$(H9y(TXE#*9?K#t5M5Ik(p>#Dq#na>gyBWxxxN$bnicvjRn+()#2{I%uyt(SNvTJ6DV?u6wWVo zc`c{sQ)&e?KtVwYM+Zx{QDF%!Tq&)~i#~_Bj8y zCI`jJ`>dbRE(bMpW5YXdpN|g_kqZnNn#&N}mlAATnrNHLc&DA$lm1sKlJM{Ul8UJQ z^+`PYU*0JEoj1xH=09)Ad*_WN!+g#BmNOk*qW>Y;nt80m2Xl*Z-Cd9DP6G}9fvr03 zIH4#42xjE`es-acIOhzq-)Qk?L&87DrG3XdLD(mT{!FqP=d~kEM1JEh5i_OlBv&eA zCl*GnWkD*B7)rZj$p)Yf7Y}N}xz#72LWhHBnEpCOEU)E?rF~Q-J{L=CwhxfPKyulg zW@(MOM$UX26}dg?eB^fT0FBI+G_ZGCT#261)nCA8;UyDiq3G}Qvp(VfRH(4MG0XBQ z32N~hrGY-LFUGqQbM^tZo>o82C!G96RK;cTMI`13G=!m@K2Pjjt_FN23Y!rg3UhVtA+4MlsQIc-54c(f-avOYebE&S7u!~}4nL{vm0EU*ly zEc%Kr6Hm684;}6IQ}ix7hbTEgDQzys%iZ=-G>OshOzTTmp|$1G0^~~~_g3wuto(Dd zrZVjd^{@m*Sz{w4^;+^Wb2a&=84Mm5hTiE0zL=Slq9uL}fYh_-L&CD&H0+-*ptPQA znNqLFtRWLsANa2Caes%g)e~@jb%#YcV0)o{PVpO^StinwKDwK9npuk zL_s;6)ls9sp}C@`L)v9#1+xQK$S5&ou}v5FYCPrq4tRGGC%(2#nEq@+-Uzo|E&9_v z27yK0z%iQd#0WE}`r_wGvR-57{Vv<>mYH6Sx}N63i!f2wlDOOz)cM8F)*yb!O=ajo%UZ$$lZLv};PQylDPiggDAH6vF9L^cho?J-2 z@2Ae}ee92P(1(0#r6oFWDAIl6xcP+I0K5F7&>|m{NX5X*hb^JQ?x1Cr>~Rt(#AtGhq%{m&Ay46s1sSy@l zE~sQ?ed=$7jT}Pf?&Mk$Ku6$iIfxrx8=oB6Eq?q8hPWs^m2O_MC7%+#MeCAwsT9Hl zP{U|&flyHV;tat5@8nx<@i zPUGDGO_%l~9V{Ns=~zTZz)^tgdeJrpCHc33!f%V3Ci7$M9+Mrfe>L++vos48m;RSrjf_Vdlai6qfbMJt4sRj2t&#H z{;8HQ$NWO*0D(Ke7UmOho*steIy#1JKlmiUZ>me?UzDuqcZtSDp6bcoZF^g}rh+wU_2q3~&&_ef-D+RCT}dtkq4gbiQ0H z=6nk(ok^^N-$r@GzU`}h4#YOZ&-?h5alCa*Kb$H`G+_~S4Bv!J{%c!&)3VbJS)_Y_;q&k(U-8jk7sN=N9o zg3mpb#uAkA;q;ckwaAo)EY z=0tt?rTKUL2~i*MeK><78ifEwV*~5at(h@;0UBhEfTQ7|sl0QxY3*C)O}>SSM{S7v zll*^{v}DPljUH)v^YVBnzL5L2=~ zaQUp9Hoc%$U}g_PhgWv`tY&!Me&K!V*UJ0zovcP9rl4oL#`FV^0yUgZYU#p>J&O4v zgWu!RRKpwqL9&YN#ke1X?3ZaK;1QA8ULEq$;#Yt})lRN5pPIZ+*`ns-@0KJojL3*9%w9DX6y-sE?;HE_(fcy;=NQi?5q$zVurLGXf#{>L;HHfUdP>9 zBTgUPCE4%yWhY1Mdz6)(;fI>#P!a5^;!owcW+O~b8A;3f=R&mTeEDFZA}X+gUa`lQX%MSsv*7+NI#~$*K&s2GfV5$*wRNpvF;wMf6oUc6M8B> zH?PzXyXVHvy|-&>`rIa@0&>}5jSB-;B>^r2{p|Li+&e?8GIX>}>^9}7Y6$&B>3n0Mu6Pzl{N#qPxXfrWg!WR!2@)9Lsib=Oq7c)qAS z;EkDR-?zC4Q=ss#kf!Epz{7YCPfrZ#35>*nLc+~RdY1fQyD|v`tz0Ov?t}g=v&M0@ z=<~q>`s*{kz#j~)_uejH9|@!RH)LP0JbL}P*nHoh6X!802602QULX~mV_^Z_Rqbclj1H?5*$ds9u zfJx-4J7y>7`uSa5e1IX_$ScyAl)=Wn4w|e`}Iw z|8JY5^s93nH^!)cqgmpP;g_w_YuC#ajB%M;UOLQen?4>2osQ1`d0(coc9XAEY<^GS zKKsGM@f0WZuU?M5S-^Gld28nd<;|sK9Eiw~470<01a&ETb0U3@&*}_~eNJ2lAT8xm zh~}B?o@49~esiSw=gk@L_{4+}&C7x_lRXUJ&cHyU%pr^$=PP<=fpz4NyXe7grFh(Y z=PgwyAr6Y2oGsDCJ20f4N^TBO7tS%k|TCyVgqq)x>UiVECp&UP^} zKcIJAuL~@c)H2<8`$3nM$(xW|6R+4K2fG%0e5p_a>?aKWQnV3}J-v#qGO4u*I?M~a z2qa8lCJ@nf5>Fo*O+wBp?~Y+x-7^;&9xhpu?#i^xlFsf3REoiqBZsQxKWyd zbWKsiM;H0UH?R{*;%fG%9hnv{tKL9~;@}x2c{R2gy*eyI>_FhootLHu-%iXF^%!9A zTYcfKp51UWvSgX`SCs@Wf1v2VPW=?U8{Y@weXJ|#(hTWH*4d^kwARF%PdUwk&vDd)yWyK&>Zp0D(o&EwaPa)7VS=bCneg1 zYy&YHmnCU)68-ABgkzOP*7P_e8f2EsJ}+i1T8fo7(O7%lvlPTrD?d6AG^yw$6`|1D zGyF9oHI9w$5`_-uWBFe?=QVMQD`8PlWSyQ{fmtSIY?DJ8nTJo}tz%Ic^stt8K#n-K`K z8CjpVSWdjLYYJ`PMTAKiSw62R-payT;b-%pS6Fcv`)182*dQhZbrFsu->6Ru5?y^X z9Ygl=y^*lbuEA`Z@+@D_*PVWw$N;DEY3r2TNZ$#Y<$~uNFdBBT$#Fga7Pc;ub9kB- zG>a;_zY4Cu*%wzi6*iyu|DZ$?{O*41{>I~`>mt~8e0;!KO_$%I5FZQ&iKGla!i5SZ zu_iXCIh@(sdkNl5s`r8^mer63dZSeFRGxIdC`I<3_w%*2$xsOY>9VxG`I+A|e}CS2 zOYA+884enbz%jL0k;>Bx$5!I1lRM>zB6nTCDgrIPuNq+eF^u*ts zY#F|gU?5$u@kh7BwUKd`;vEf3qW&P@{#DcMbdkq&@b7WI~D+O35D=NEd5(^wL3!t4%rUj1*cTH)mve_+r>Jk+V?cOARlpiKJPEmPO zK1_W5(q%7gXg#s25yy8T&tuk$-rhjjMWj=&Hn%)Vkf(vBxyK31DC%_5Dg~TH`H1rx zd|_pIM;>p&ylv8`t?pWw9Y2r1drG&wtD*X7UMsOBcsnU>9&&+D2|AqLok{3kFk+3n zrbDu6tx`|fnTH!P!{v=cKVd7)=X!Ejk|zzLyyj+G4?1kBGCOUh{ZJXd1+?;5xhY)+ zjw*@|z@k;y4GTx5|H@F1d_=(>W`3)(B)GE#E z_>+SUN)0n*KLG~a2v2@vnE13dPjzZ!de~c3qByw+;lApA`Qg0li%m(8XF^>cIabS_f3I2M)y7AkQfbBQIg7J(OUV-P>xp< zKILD*C04(6(gs$?l}zmko%k=*pnRW=9JYPQcyi^xjhk&g9OK{6-X`8HVYD+{Nvi5v ztbJQCFr74`Z4ra#OnXWbMC?*k^*xAwgChl-;z5O&x@U7!&%?oPlPvqZPBbqC{TDA4 zC0V2McrL36(mK}dzCS#JqG3_!3FmvL|v#rSN1LbG{|~#44i5 z?EsE#Oi-L40xvQ&hQ-afBn36G`Rk4P`-vF|5m#?X!GZ&?6-!D$dAs$ zi5}E<1{@lY4SY5JEP*A?)cP%zQj=veZ#`#IJ%m5%Qa{!*L3&7#U0~F#w7*9f}k@YK&8i8p!7JWr}kLKqt*?y<>cV=ccW|2W1ug-Td zPu1Snur`bX;O~)?J+J=~f3#$9+L|~UkS|;<=9%-F_K6h%fbl?QHTkCl89_zV=Xb8M zwtTeUMnim{@@oe1MEvG*soDtd%!lZMr!#KDra@(!<0kMl8OFTX}WR z3R^7WF`85eJ|%@-cHP*i^e$5}f|4oucZ_6?cBZSwJ6`qSN^X(==8W?3a>~Rdt(v9X zK-5kne8+h^Za{vyX(i+`l=9(`H;0n9JYmL}H=8>~$_c8Rq}KRG_eSGB`4dJ8XUDyD zv!Xa6ghXXP6(y@}1)2O_*vn(#ym8CZ#=OQmYF@hLil=ON{ zm>skYf*v0!?DkDy{C!}}^{l!n5`~X~TfdvY80|$J2cCT|zjdRUI+)$%SIwG1U>X9=1<%>H zT?XDS?{Kl7W!gW^UCLaOWY2Uwi_7#HFJn1|g_roHS$l};W<`Y^EgBqC9O%BvT334= zyWvQuHu%R)Sxi}rYah0Sstn=L9;RerX>GuI2-X}yl zZVyu)H0?Qz{Ov~XGt4@S=wBFUA58`RzVT6b7onTS+O&hRTgf-j`ArQaulVOF-I@NU zSi51=*?LP?s-`@%RJ?D8*PeKOc^yEuv%Bujt~9nAOau`$@~!ZFK>hmqw^y6N|N6_r zDSFPm^+X_yuFXqUz-0Dk?KevT?Nf*a-rqm3X!Y&-Q4WS<2JB$B zGs~Y5=|kY186YH^#<5Zm07pasmp)mb`g9=>{u>OK_-FFbunK#BE4~hCXPY?v=~*wD zg2O2$cx1$%c;_czWE700l!o6r%vSx1^$RrspLTRVDV1~^A-&n|yfaw6?y%~HM6Z@g zVjz{Ci;zFoSIXAX7bDDu6Kmps16Q+F3j*&La{K&hXjhM>ui@#AC6c`Cc)EV!m{C_` zH>u5(nCH0T>+TUN4=SY;Ig`o$6oZS?`VLV0g(~Ogtp08%PV@V?p|G8$GH|` zPYGgm*vy6CS2%X`19Ik^7q!6BZ*H15F6UvJmN;M0JA70~LSOQQk`{VVDn5qaG?zz# z!|!)E*}iyk=fvq%_<%?tWm0vbSiyiy%!T2?U@x{U z2ccO#wNG^+=D!|J+FaLZKk9_ul{n^jVjcgjr! z3vU63LGRPYG>$!zw(7eHX(F_jd;$}+o(u%}UyA{khBtc%6weKr7BVRb1W3EByl=l) zf}T%S1^w zD#2~Zsq$g{yBAZ~yP01Zl5$5hrSnmbwR``xjr3iozv(2~(e*@;G@z*woJ)Mxrq`$e-Z#(Y_+aHaXDe=^m<#dfp1U!J-3AL99Uc0*`E3@2sH z|1(h^-HIp|=Ca!^e9KD@RbTfM4YG2+(VEHg50AQ4u(B~c867mWF`B3!)M<-2+b1@h zWuCK4J6^1x&y)Py7$}eZcKUpGcRvb9dD7TN49lhfq$Kx9k%GYOL%@|84go4X@vWC% z8No;P3tH`btPkQ2r;RZyoaeu<3&iv~gLbRYqcf1ER`xTQIWiD39IH|sK!x95UjWTZ ztnEhx$m!29KxiC)|MIF9j3@6K`T;{Gr(wCQrp^a{ogoe0z$pLK!?(jk&g=Mti#7S} zQv}v1=?jOuPukWPt|mqx49q<1Xg~@5i#V2Q0WEF%H3od@^BN=VD$2?D=O@{nFDL{g z;(c14yJsAe7kE*h_8oopm$hTpy=Q$?fobZUGGYv?03g_3=r$f)yxb`WI4VpEdNglf zXY*;0llFnMfdj-=gk6E++^^q%$7vW6{&xBvsO1#IhCnbq`Mqp^?6>?C!iF=d^BlEE)%Fymfl1KdEPC{Z1uND;M95D~vOye}L0W z6Huj6I?IbBNI93^f+gb>Dn2>Q@eF~uBnH`-CnfVyGPiJ@Y}OCubiWT=#@Cpm3R+fz zA}b$z+gha@%ON1XmE&f5GXufTWgZ_qaYWqN4yGZMu47OeRELA;%i|_f(tK2nxu1v0 zQq&oI)?Cbt@})K%m~4~V_T^cHCu@}o{J-4Z<3A&KZ=Bs!XxM@GI`=MFQO(nH=3NBV zJu!eBxwZQBPQOo5T2%fHhPcJ|L&;(^&waRlJl(k|cJ@42`&ua|wqS6$use;Kp!VtK z0$pP;d?c%VBxt7z^+odTbX*WH9;sF#*c1h_eK{g#7G{h_i>G^D?3ZQdr78D?Qj95cw3aY)3OLV? z_x;oMaA#E%IdRgW%%OT`zbHQ?C{L_(=AS(t$apuP*3Q=Z(hbg zVdwejv|f$SjCM}0+DUllx%+zS7(KwC{hVOlj~U)+suJS97|Wo8Ap(d1agA4=8FAgo zh2RKC`24~X#!>B&=q9Y)QCuKRN(iVZEpza0_U+CRgD#*p5w}?tL&nuHYh|!mxmd^( z;^Qk+zfP~x)0Yf3a7~cto0nfP*rW3V10=EJ8kzfbsH84jNxRdgBq#NBHxjbU)o?s@Bi6Q5}5+ z>agHzKNHKyh#k*cgH*_B(EPVF!lp6xmHwrUCt?QWrE^>Pt2`77Ur-cjRBBb!ocP zW$7MQL69{J1+t!35fB!~p7|gMa;$^(NjWDW4z?SdWxw?UJxQ8;yC>EY;eBjZLnd4l zu4|=aTVgukKRf;q=?R>XDZK>}KtIZ?Z!_!FXdOH#9wShH)bd~&XfuraoWSFxi`hjV z`X(*-a!ilkz_VsK+G7wN%meMKCXZl4G4M-#lgVwVejk-dPWeFLa}L&f6@)XPQ(a(@ z(sweMCcw3##qGV2;7=;XL@P_b*>@Z3pw11aFKzp4^6sybRtjIUblw(&U~vE}{ccux zWY#Auy@nQ8`wjR8;w492Kk=e}%fC$4lJ-+h{Fu$en|t*xgBdQ{X?Upn(&nHQy$98_ zyTvD|#*4yTuX_Dd9)=Ix&rPF<-C@D=8+iU zMp3mqKz&jmBZ}+m+AamY-5CI(KAAkmjM@Mc5(TcJ+FiCMsj5`1=Vu48>nCUjjUe8d zb66uFbty;rcxUjXP?1bYIoXvG#^nP5b<-$tlbS*$#bnPQp&mi0O8=Fn?xI znVK9Nt!pm%2xoRP*9TYhP0R8EJ0HL_f2&e?S#zq3++lVultBVJW;4V*ECAAtx#M&C zYoN@Xg6qfYKV`D2zeF&kX@Qezm-3l(7t=ry zltlM$=_XvxoJzEV*LrY7;gKZMtC^UZ6B@xwv)Hwo*b%Jb6S zf5^4%k=@ugg;7m2UTG_ukk7w-VFu2DsCjQ+bxeOAiZ4FwmJ360k=*_X|6+A+nx39s zC){^(H&9kJD-J^p5@f&vEW@<09#bSpui9&?+g(MEQ~79P>L~!m*uxMR=OUJ7H5)@& zmdxV*`ySQeX&wx_VX^3yr?1s|Yt-%dj3%<`)14;yI277pO8o^O`YkQH5akRV;n$PX zl*$P|-Y{K5J)7;Df*c1J0#Ai*c5TpRz!H8_M2s(7Qsm)l^1ue=K;%d5 z+yg#O@Dhk$aRP161#N`^`2C%*S&a?KV#*mw4pE*@kcT-itM>mTJv^0viWy}<^5rb7 z{jUFj4O&)o?mr%BCxEFCZXX2Lt(|-k|7D}h&ZzER z^~EI4zk-h{;(XZbXdWBxV@JHZFd*qI%j5CI6T_$bXVB94^kR@b^nP3U-)*PAmf?wA zcyiS1CiIqS_UkG2N%~bUs)q1AP3VzYUI7}yu|E15p@@cXrmqT;)T28;-WaKD)S`1I zt)S1cXwJj<0D=@vo+wqUw^?Z9Bp;@aFqyBbYvp;OO`LJ3dkXKj^^4BPl>eMG_6!Kwb|4DIB0O!XN|z?s5=?WBP|U*pUt4y2GS{ zE-Y@kgYQ}!g?vc)_wmHYap+$Pajgz9&~rT9LKLXcORZ+_Qvo@d7QiY_=nX#KkR0FP zw9@;Nzm7X_KdkMomn2_0JIusa_;;c2zn^2Ga4Fs&;1qK(6H$T4HGUv?R>Sxp zuuf~l-4gzJzKvO96QULCHAgj_ObL!VTf7F>A7s=v5#Pllr*QZIryVB@c$R|2(0EFl zAb(XO9$3@3BsQP+~Pw*$);1&QjHIkJp@#xyg&$eXX7vK{3thr zZQ_#pA?|pH+%pwElo69o_T>^-Mvk*prr%q|*|5FRTetSanXv&f%f=fu_n^wHERbjJ zSD?4`+st=I71tu3Y@?k&*l-6z_@G?jZOq%)&vU9f-tNdv8d>*$#1?jZ8vyHi-@3QO zCuN;|GxXT|W~;lg#XYPaD$R5q)TKOQE*FMFaH#k!FTV?S58FKR2y6G-wbw3H9$w%e zBkIPh(Vj|qI+QZBvZr>gb$3LXFk&m4HHiKlzXOath_skDX?-1QOVxR3Ze@k6Jpim#pX%$i@Z+kNaw0l#WXM=rNcXOe`A0a1xQM}Oh*D$$1E`5Fi$%tXNLsDYdRX~ z`$OSpf$g_9$2Ur)H1gPc-Gcb`eIB=HGFm1js_ z)fug{FMlVo+b>VM>);H!0WNtPDuV*knuHMgC$+j5>0Fx)e>?X5e>2-%D*Zc?MA4a~ zcfY)s=h`(I9JjV*0!|ceaI->PeDP?>zqWYF2n927QD9b#kevp@Xqs)F(%Xc zw=5r&a_LKrbLBrzs(L*Gp}A+yJG_E>3=t;jzB4Dek7;Y1c0YVIZJc-_rV%HO4h0+4$uEHX zq@py{Lfm~p3IitGth|aPn%RrY4lxTUEhnnPI~}ia{ziaoI_*FJ%`mlTLC2d1&Oexg zU#7v_LSJCM#m6wiZhi%ldis|dLf=xWzIr?`kXWSn@S(gyhbtrL@Q1g!vr%%W{HOXT z*(4kbHQgPc885u0@y0V}V#~#rTN# zH2965d_F`ykKo6!ZTl7?c#!{jHD1MG(;?`*1%k-$hM?WbNL%kajP}xkk8p23j07&I zFTUixi?KG!XeE;A7+Ou;MqmN`;f^?nDH)RwLQiu1HAN5BPPoO2B(@nq>Y^BKrq(K@ z7c9yw1{2RK!ChV^-VajV)HgADq&oDx03o>72#wync1Pa)I^~8ia1mhWNs_qUIOIBv1gKF%XC+?zXehP2_;79m^F_#g2GelymaAmIJ(Fhm%}qE6o4O44$w|9m9roffAg3?SjD8imKK?owE-8Mz3OrH(6d99RrXEyDc-u?M%JoR;y!}}jxCi(k6 zbRJ6{ZEI`mekH)~O$bYZ+|sTB_xsNf4GzoK<`p;g3`Zsk*~C0NX&QB?RrwzGHmYES znmr!sXFH*6siSXBHgdIA+m2dqJs;z8nM3a<&hoaMg!~?QT7n=0mcOy`O5p9uPQWo@ zY2{AIwxmQbiVZb~ebMXTB&`~Ctxh3E2X9}TwFOU1<^GyG3IQR9Tb?!T;j*-U=)gjH z`O=xEM4m^S>(fxk!-y?=AHk+MAq;B`dPdgADj`)Y#}#RcqWPW#13ew;$^<=JT-t_L zotRJ32Du#X>{1^Zcsc19SCU_a{HF6VPs;;bn}{d7^HCf=KKyTI(td$~Z<0?t8n8+l z-)jXqgEGSU_z>k}XYKW_-2-LOt6F?>nLc!Ny$r02{Y8w`(1VVieG!kLS6F3@$}LHl z?xksVK84I;nD5W)uW8If8G;w2z~w0}W`g!V4A!=$YBrEQjbJnuh>JQuXRDswW4giF z#cF=1m+XJJfzg&*2?UHJY(TTT?A&HcR~IiDX(>o-?@_F;>MUtfcge#ON zJ3jyeE(y-~NTQR20~la5Yv=sLIrLfbD-yz8&sEaSdAWgKNACz+bRvLB-)mPJ~ZT$@^D^EI9`2qsG%hB0Mk;g&p5N>_f{5Xj?3 z8~f(&_y6GlB2uEvxmeD|ME}D9ut)~Z`2MGbEdOsDz~!Kq0H*wlzd{d}G2ROl4IWuO zff0%u%>L8KMurWnqiy3dRrc>EH(TB2v%(~T$X0jt3=;@PSz>rv0Juh0{npMj=;UL+ z4jpi4g8}p41(5e5Y+bw5pkWQ?H2`51I+`C=M+6H#L)>=oaABkQfzRx4HuF^2Ggf!n zh!XYWlXNNzd8@cju`@HP7*}1rPF4ZQr_{&5tIH@8TC%j^OzOB$ZC`u^>b{F6ShS5 zr%YP<;v3p;0~5LzGkE?heOfUkZ($*S!RJ$6IMN2p@L{MTw3!Pt3f77o0Zo^jI8m23 z*vjZ3`7eo(KJhAlst&)bnGnlxJ-KLJ#cs4;*weJ^da(-{OJi@xS_stxyStaUKfu48 zI1=+ujivuon32~mxfgy5MnaP+n7hgd#1{vg|%bLW*`1!krrw z7^R$um+qg^ay^9smrk^01yny=3{s#t!RtF=FJulm>s0h#Tb2@R&EL^UTh+2UNLwqs012d8y8o)35#eKx6=+K8?!!Y;bsl?fVIc1AK=-l{kkk9GFq=uq3d&cT|$O z{-6Avp__s!T`vdliax=` z*Cc)^ve>(~o=3$>eF}I|i&l&rOkEmsDb5zZ?LH1SA(vjpPGbmAqne}pb$oPuej~>| zMXk~>%bMDt#v|!AC;z+TZ=enJ`e`@Yzo@hQRylE9>cD5tKJ1(^o@BYNzUg%3{LQq- zpO&kBRqt`6&fE$C?Q@*ITl1#w63pctZ!4Kp*q5c#gR)}$Pgw~iDopxw6f z88z(P+jo>e#IWdYoFC6;$HWLeXN-&j+Hqjh?l2qkT`@Ei!_hI(W5r&?z(B8;WQ#zD zlEKz~>pb(XTgb+;aSp*EWr;-j#oWNgDJ=8z=v$sDdeA$opOCm*NN7&~_0h4el#K3Epj|r)2c{=wA5zCz=E(&P ze-gf-vMx31wu&_qUQO1hThhrinz8V6yiVmDg?4^jUh!i7fvEA=SgO0=LVD>n9og5pxQSQ7|-9Hl_m9`HkWL8Uv2fCW3KoIKYBp-aDx>a{ymcqGkF85 zd9^4^d1l&pR8yKMDrp@j=^kF?vlKLe9{Du&Yu%C|TU&;6@U#~2vZ+KQZ~`m9-?&cg zC_SrmAKL4T)#>Y1gs?K^Alv3L6)0N?zL0b*$Dwqv+=mR5L}R@WOna}kbamslm&^}K zRMX9D?vTfNMvr}(I{MK55d0Cq=CRp-y#NNb8McOWwt(}p5kiPXJqzpxPZVy6aoI@) zpcV*Q8-Kz{bDRVKx@B=Avj^jeomT9f)19`xXC2Qn(OcCWawAnc1OrRZ1Icrv&a)8- z@a^GpHv@EnVw!ch+>(@^0W)AlXnJv5Xxuj~I4PzN2n1?yqPtJR2!ESDL{Q zF6&iL01gp;<5D@6iQkoW=}{Zf$gbe*U@p9II;k&l;OXTcLC#n3w(QwoLY5x~(Yw08 zRAQQTJ$>;`L5Em9Ym)HFKR^9k>755aSqt-C@s%95os zRj^l$pQQsq!V1B}r^k$W+L#^s5_p$`W++PZ(sfX;dWOg{{N*R$o|QxMCB|hvJ({7L zQxO)0dr14Zm#|0-x>Ks@q7N)$!29njB#>EP76|5OCx+ z`wh6d(~j>8NB-aiI!f>lQP`R2U3NJt{R3v19Xuhw&lBvc*x5|-15B_6n8cd$1DwiQ z%vlQ7t3lFxO<&*^qa*5l9*f{+Zr__>%&>_wDP9X?cRJ)##6#b)?SSvMa$oBv2jU|& zPK8Az-Z>PA`5hc*+#M?L&Bq1ZMrBF||6X5D33^M{$(*9%_7e*$JQMp*7(S{C`!W}B ztI);S#P=QYx+;RnX0Fu_%BC!TIuJ=}X+evlUEXo-7@G-^5d`084e%^E$X4EOFK&qRO51?Vt41MAQ? zRPGsrwL!%5%)N6647sI+*N>v0S*L6TPam4rSVWtp9P6~Z1a~`QRi5M zb{`)LIPqTwCa_}2-)37n9T9I0#u?*KCvwllxnBv(jq=%k+L+DrGB| z9F*{aN$?ZlSmn^~q1mCchwdqS@zdf%G5isZXIol7!M{fWXML!Dl78kroR7F(qAQtu zay66!xz*@ECElemn)v{2GTX7bfbXG&;Ww%@Iw|b=+K`>N3ao=~MOE{X7fVi^SLyc^ z#7O(&K^E4}lh0H+G*L)m)F|q@3iUPe;}^3K_CwHa-h}Yi;wihxtSa%HRddhq>Ee^U zKZRGBbu8)j@0I`~(~3;bDgx!o%=tm}5eSmk_+YLvX@AoD`Dd!02qFD!!(jEb((4ws zS?24K)6}Evvb)~eJ;L27ag=PfXPaQvz?M!L}*#qW51G^+S) z)V82C3`{oIBCCcS)GzO(dmnP5Ybg_B!e`My4qc2)Uh%Fv)n3XLHHl?>d}SZ=PZqV( z%qzFLukanuRH{;K_|+)c&GOn0Ydx?EwG{4uQ5r5K`4aaSpPN3Gm^O zCYf!aos0~>J|m(N!-?&}Xd{dxn!n7&6_;~%UBhM^!-z_*BCFYx5y=sM#`ew=+>XPE zUl3uZwg58LlzFL_y5~S{l;n~>$nj&+uiHleg%K1j+&&hosv7^zI@I{qkDGOFy7-ImfR2wQJhoM+ygq~v&Ixa~zZjB#zGcb%0@0L|4UJXt9i_QZfgX5R;| z$%^*%2OoW45*Bt%S{<#?H%V#70)0wxw=oG53J_&(|3s9uZS&q!bRpkkr)(VP5*9J2 z(JA`2n;X7gtr5H(1l=aTc>0IMPG;)MrhCxbfGTUrxelxuEAaVNxxG6;_XBeTGw&;C zntqjnJdy2CVR^2`_blX5BMn9}pRcDckBQPH=Ue(<`oiBFVrF154jhhSs9RPfFIqWq zJx7?HZB(!1enHHEN#xW!UZ6Rgzxrq&XwJK9KXb%}v#H0-Uzcj;N>+< zVJNsoDFp4apk=rsFSMN=^ zhL+n+sHYi8I<&MEnz$)`V4>_%tTJdq4_->G&wm;Gr}oGHyY`Qh3=W>3QcxPf0|>r*@h&!Q+N!eTCO69~{$7Vr}k5v&o?w72R#W<}&PdH|b*=nvwU(ytvjghxvw@^!R2 z-;awfasbAvANg1hU1J5=^CP@w72xf++Ck#{x+`=SpqY`8;n_*z%dwD6mqKaM8A$@O zEb@#%!uStW)W!Iwm=8EcZr-V)Z5%o%LF%o{*q5t3^Pod!r*E7x^fSR#N#;V=ba|%} ziM<0#^i+bvg4IOPIs>v*kWAn2j35R? zk~-RV=V;{_tF`bpxATRvL{YiY zyakm6dRWhDy#{3vTCCrY#fJMO=v*gJgF2M(lI=kx)T7+%zy*%$7&F~51v`LL4gD_W zlbZ^*PQpD%hGZOS0Rl`S-)m6SSQ@JaAhgfpS5Q!j)JxwgxU+l_(b4SvVPAwAzt;K_ zt>wa+rw>v>W}{zi4b~Sikl`R9g50AHrw4S@KThVlL2!v0>gt+%o*(Du?;K z-k728k<-P?0LOT}8!2{hJHJTY+%v$q#WPTQz%QQJkp6NiX8H9<00=3#rahJ27i4%0 zc|X2HheJh8gwx*7G=97gy4d{GvJOC$4O%3sIEU~BeAcrooN%^B3QwE!07#lq5XJ?0 z#woj72kTR;n9}Y?n931A@GNSlu0Y0uOieBHyCF7A7C5q}5^4ZQ~cK z{MRMi+gjYjMN{FeA+7DjOi1)s*-q>qLPPz+V>MJ9J$oUFli$WR58URzz1|dtKImigAeXmO zi{nVZz24322%=%yG&o&Jz@|cVc;inEuFT=nz7$0kSt)B)zH(&{SgqmDSM)~;KZZYq z`GU#>V`mX}WT%hp&O0Ka6d1?fHC=mOdVbH-3~|}w=bn4#U}BW^F%wHn#56)F~}DF=Cei7CTRS^Cf~(?Z+yNTdC& zZ1kloknxhUj|L>rK&p@}_%r3_=;24ACr2c}2R> z+cM($Tn53WH(a)6!;4K*Y>j+r7s`$Zzrh1zbtirIRa+}@@`1`%3UTws!e_>hT%zf} zYnSNy>sXH&a<wUG;`VU(f@{3LFtLH&rQLPu_gq(LsG(D0It}50EX66e=1Sc~stY}?-ekr@s8`!K+0I;vD#}5<;<3_^#vJ{v z71yF7HMdrBCm&hAQ?D>6J>aPNdsGBh!BdWT94U|9t;gq)y^Qr5!N+dU&5(Q{{jZ=+ z6A%|)qW*hOs$c?RJsElNivC1V%V&wk9RD+GASh&5$V8!3XSVC1D#)G@u;m+-YB$`9 zn-U{g=zYSz7s%{Wtj4)wl(4{XR&h*Zf0EMc-&5HJoqS;Pz$r$T*FNm6f|DjG;teMZ zfmVUrm+{_j7RZ|LoYRp)U_Mr^sSl{_Oqblq+Brj0c!9g7yKCTFL~SJsH)q zJ6vG8mt^GwIei-XI!D5U8hiX%7(IKqH~E~BG`KCS*7JwWuKO=UgwYT zG^dDd&~8P4Iw$(e87!(8%QfL%?$ei@+700n?YVf(YVn@0I61 z3%|V@+W2b9d3H7vlKzFaQ-VHMyou5-d#$jb2|HdB|C=m>lVI^JSYJ-Vpf09B~so14!@z4 ziywJnAnlkt6aGBfbVlDL#7i=%6h{)`5mWQVXSQOg=+k8}2@Ys+8HDd{H~5KPY-8Rm zBRb8c1DD%OI%>@^#zKkX^2yz~sT9m>eo7T*X?Ni4<}-{yhJ}Ei05U60V%%VKuJRs> za@Ef4DkvONIw7>j>@G?bE%dR+Q7$5|HaP-Koc#4w7xSUX{5jZb#KyU367F(UEd$*p zm2q{dvpsZ-m$M!yi#lh0+ft3!Cuz*fK74Q=+iDjD66k!xk4mot|+R%?R_a z$^p+Z@Tc!xZ-1;1$k7FM={Zu$pMPSAe3F*6n&0IbC~jj^Qxa}oyyV98LgJ2Nt#dm@u5+Ofbsfw4v3Xd)lN%% z^36IvNrT?KTEchR-%+zqF^yG-VB~l0hTqsCI5ch9g4aor;|w4v_>(%cDhCs0LyA1( z(98(Q!9h4(^qTOFzit)4_L0gahTd!|z!)>WY}?0<6u0Qi`%Ip?pIYp9biHUApXvF6 zcGJW!+&fCu7b=$|zEFhjczfm5JYE!QZEc^i`{e}X{Qn!%viDy=9x)f&%~Js;E9)(9 zN+11?(8gW2`gbk=*Hbb&h^7geTL{hngdTmFRthci#g_Pnr7a*|K|5TQDEq%?P8EE5 z1^u;W8o7}yXeYiKx`CG47L=o}kbIjz_oX&n^~Q!(#Y2oqktu{BV-|UB_VhqyLUFvPTD;!5H(IbFME+~@p1^{9%9z?fmYZtG$j2@?`3DMsA}b*7S`*J z5foMY&CKY5TovtVcG;(|w&`7cvk%%i^X5QKFemh!=}HwN|IasFzWWQonHOPN_Bst_ zhM&#Da1N};F1X_lph4bC`ij8UrF*^5LlC`L2fOux`7iWF(8<@yjE+-#jy zP5G|RMmA0?Tm%Dw+jlg~!h7pJgQ>!$-<|w|2ARdS{;AeZUz~Z-{I_#`Lu;+SOX)?( zJKB$IbT$t3i2ZH5HkF^+q@Ob1EeK8N2J7rO#A<0l}+hq=9NdL^u2STaCH6Fm3?VwGycI0~j7IZ&5}kqRWonlir@C!j5WYhWo>r66#jHqyUwh75 z3qv$G1xQIWu}nmZy3US87V`v)-kzpgBPLuldotOO`Gfe zmo~SUt}<&{UbcY#jS=2WM_jJ|a{y6V$=moMsAy`b$&eooqb7iX6k!-R@f1ptV}ErN zF}g<{X&(rO-z9aE3SBYNo%6+BgaudAk0q^k{)|1uchlKSpkVpG82ihvIRB_?5WK2z zclSV$V1b~)AwhyW1PugtcPJc!TX44!0t9z=2p&8@;SPm6bp7w{XL_DlvwG$e)Qeib z>+G}77Cc%O4q6aC?ll!DTkX~5szIyRS`vSGxzEpo)sv2y72sg}-?-1aiyUFE@!?;3 zYr<~R{*Rk9%PHmaM_Z9ef8;)vgF0G}=u_)VZ!FY4Kdo=qWvp&F;y*B_3>IIiGVDNl z@(7W-SRN59Py;viGU}0J9qg;o7`eJQvuZl;#1;`R?kT7d+Fs+p__{bG9T2F|VbLye z6Bm&gPw({RQ8_$+Fd{`_g-sw@hQ4Sa(CROPizw*XMtIg$7Bn2a-3JCr8G&L}M|Kr% z2=ttMe#(zCUa`-IA6HzoXRA)&wRva`t}APvdL}+G;WZdX-+D5<4?&0e7zP&+2?HdFq0<-5o8%I&sQ9qx;job$GBiri!#&^8_P z94NJq0ffdb%A%k0)KXRaPoz}mq#}1_7?|jqGV-xS@ZZA)hl#UCst4<}{!#zQE2rDb zupm1I)L(y>W=iaX>{w zK0EiyN4Y5kp?g*YokbsiIe?%^rc|w0mvt)vr@9YErKi;s!me@It$wRNJwxUjwIXiX z`!m2 zU@^I97E)e)UE8)rd_^|X?Q33r#gUS=I2x>f(uPGmd&ZpK>oug9eK$0G;%Nz!=D`2B zl|R3U2Jv7&9_Tn_Wx|oW;>&s$kf8raxj3bvah-FYHCV5HZ6>|W)OxNm-X zW1_sW;6VT2Io|3OosMBVDEfZxCShSJ?YhD>Bwdigz@8>>INZw6M7|}Rq?ukrXP_jm z%CH@Qj3}X+d?3*yU}oPcr_;%PZMgbi@8hb3_B6V&B3{Uh2=CoL&&zV7Y6ss<3J}og z+}~@}cDoUEy>jY1PwjK$)aq_G_1`UxHeQ&{O@O_V{88rkuZ zHFU9V#xU%3sX}Z4BZ7D|4go&VP{pyXWz5Hn_M7LL_NVcJ_J`+h2EHD{&!afhwd7~H z6d{3@&ep*ScF9&i&N&;2`x=WKZ7VwdfCInfYwxV_ctMG%owyWYu4IWYyg1=A8bWTx4VtZ-h8sM$9q- z0&VB=!F<&{+fTV^tiDMTJ<&&Ouslbmw?p|xY_irID9?2|Y1X~r{z&;v|Hv)Au*nh7 z{f+F&9->?#)ec5#SG=$7XtB4+(gW7d5w)8k2fuNPz88rFK6MwaiA>G%HLy@W=6!SM z*|%n@9emD08?f;!G*>6+>l_@&T(B=!t1nY$vTHW1dAVurtQ*YroFSfH6mYd(9hCTO z)xQz9`PMV=0gM;(>U-B`Xx{1Co68^6V3j|LNW?9|m4LlY* zUv2`%!6$|8=UZ}ZH~dF`%ha#u^c)tAUS`)8ZUSIZnYo#b`}?{>B*F?Y;rZtS3~{dM zl%Ypo^`?Fl8}hfq!hHvV&ihCkj<;KAoQrOphkBpB1*zPp9R0bFXnuD%Ak;LP&@GN$ z_7(3>%%7t_fobMvzHzPtl2N)#DbKZ&!CK_auG}If5h;z4_L+U|Im!hh%2Y>cb_4D> z(pGw;B5l~TUdg~M@clX`J9XiD^?Y3{p>n$Y%r(o*BkLi9-@%d{N0U+y5RMxku4#3i zh=Q($js9@2LR1-W(hOc6<}&917}|S;hun@V6>uaEZ^bgPvJS@yrGy9>zHjroFsB#2 zZ6KRro1iq$wxr<_kzKBi;}Suw$b{JraK@$UiGpEzH13HfF>CLt=c$PfM&YpnG#6VE zOb#$c)PkiU(@!s#N&f3%7TX|N3zmxE=QW>sL(CePCc!=>g!9QdlDBFq-J!{=RQ}F58Ej)Rw zS-%XvTr0BLv43{i_GA6aZ!4KIoq3S#sj4uaFx_k8`ErXdPkt*&Nc z9Ty%iwi6w<4ed^68SIs~lD#FK*l}m)n7;DP-#Gn=-ae7%G%S(2{CPiy{-q>z+GKR{ z4a>lL%T@rx2@=2&099YT_h%obt^JzyK5JpL;UZ@+HyD4+qpj&<@_Ygn25QYRF~%#q zjmk!WWuThW6zHxOuN`=W#?^|Zr}on_fdPQpN1aO}1Dv=&%}oiap5LsykNhp$WN&vG z8-N{9v(^GUdf+2bD;yEW@s8VO6xgjO2sTzy>gifl#X&Ieb)`2;gOyy$ah|pMtiiVCF^U-;2%3EUEO4SM#sU=eNwz}KxV8D$Lq@)@`J9fxO!hjpCi?j88fYn|wMfGX#-RJ{Ba=M(kx zC~TAY>#lW}$V&(+LeSxdV8Z*yXwlZ~-d1tN2rBKXQrNR9o4Y1bFU6`~fQKyO5FM`> zrRcYAvH+r)A_Zs1-G4+n58vgw!t2&L`q8Ku%Lq09 z49D_d6NT9xr}vT$7wgQ|TqSoZV=?FkW6D*I+g(d^Hz_-RH)3{_CcMMMZzZWZj}Do( z(BI{c{R2EeQl0m+Uw~U>po>JT259nu2mu`NpDmN7fgq&Qw;-rz*5@()C)UlC`^Z+M zC8Oulm#CO}V6M`jZtnh@A_4l>M99z~mUusP_Aqj*4bzmbepTh-TlGBo6(q}4o@NgL zCF9K0z$!Fjm)}?mm^eCKK^SamI?0QIZM2~Us(O%!jiAHJ`^ahm)Joy5Gh)NTjzGqn z4OQ_1aS2e&n;Rsegc-a$Y!ABfA;#=J=aYCofY>G^qHGq1J0S1tD_K2a0pczN8V79) z4eL&yp5l&~Ue1Mlwqr&cKFB8bYaVEsN80(rzeYi0JgMCj^MSv%vZKNU#BI}mvwW-+ zq74Ld(hbl-RD@k{Zb>C7?TA?v2c%^i<+ILkR%q(51Xft8m!Q|9(q*0j@?oKT^Y#nx9^#^;s`}yX+|B`N^9$G}C`1A%d$>g8V9@~Qy*(dPcF$s+DEG{nbY{_O1_c9lW1IcpT_T)ct(hST`M zm#;$NC#N`<>V|{lS?HYvG17(Ee;ivt`=3oGVmM)>3ryM##TLC~dF(SGtZFOUSQ|0D zmR8Q)JNE6Pm6Z+04lkpd*YbRkM1Vb!WFFj__c%xP8BYlO_hVc&Hf!bd3F0dydtr^0 zyQben6@Lu%m2oeSFF8f zwi@0hZvVw=!4LMI95o6Tei>csLlBMxb<7|<7Ggj~=S)Tfh6<-9r{k0kF(9E-=|Ga!}!mN4_{I1myZ!@`2dprPOqw}MFn zZbS--iUmHvb%$C$=uC7fD*=Myx_a=U!;N9AfIeje923;Aw2N;B;A}oFimkEb9=BQ3 z@Xd7*E|)|{cBUi0w(fxYi?yZ3mlK&HhbE81TL!?x3G?l5WAzIc>=OP=mEAjTV{f9j zT6FB6Lk@n_CKMFGlLt~1^gA{%vyq_O5}29=X9qwthGD&EU%2b+@`SOO=!=(oQ>y*d zBAIPuXGa=7v6%Q^cF0C&BZZBpA1A#-=sVEgZ03bi5#QFQ#egfbhx1hG>Sc%Q>Z|S1 ztodKMMhJ4qOQ!J`6)mL3wmrR@}q-!95}>jqj*==OclxUK!vwhb7i> z&0X|)Ubu$zFYf#0j|B_GE!pj-riScMFbXph5bx!Ii!qxf zcNxi8#EVz6ofi+IR3PX>((+!})Bg;K+?{ZdO@wFoL*Qa>HuG(!nj1W>fj|B8OwnZUZQ7?`A;jbS&T<%fqxsfks*UsnZ z4K;LB%NqCbv$-T`WNgn{2B;S>3I0I@T8_70YuutDI;e|LoF5MTxX@upo+H%YO$oW^YIvVjYb|6Q374gAuoF;WZjSa$nwz3DQcVRckADJ7(3(XM^K4S1snJ-SqP<5LQOz#p+Nwp@;4A`UD^P=dh4mo zn#7^xeR%VvGrp8ZoYCu^?5s2ON{fvO?}FCuUq?L;yVpAwD#Fm~)YX0vD!mzTTj7g5 zZbyc-x72;Yyuk7_tyMa&{?yhH1zGExEbTZ!GLM=-Ue{&75!l8w6n2XQj{KRr`KNdx< zU`+UpKm~K9=<#58N%aqP=lG|4vSlTmg%nS>)TPQGQzzE;l6S9Q%OJ;4@osyLn-FnT zOvnD`lNiu*H+JBw2f42sH3^~Ny%n8$4cTG}K|(oXT2317Yz)u?tYCKmv5dpCs_9s^ zHMaseH!SuTOY8rzQpucBRURI$jD+{`I`1nZE-L+p|4+Om4981)jh%w}(EyAxMBr6| zDp(MEGMe4Ia)-um&?)36N@8Z`zpp1spZ*&OB^oafk_VFAWYMo))p%%fY|Hb}$;j;s z6|v=M=3YB*4?|XWW=xJu6)y5KD2Q4zat+rH(h#8783NNl5jby~PQ^F4^?C@wH$t`f zGg;O1#~FA%;(DJmVwi`-Tj6ZbQ$~!YuyEtiGlm5f(CLN^wRV}ZW}SDu(f6R8L~uo= zy$}Rie5Z(hG0ifQ2v6YT=C5bKnF)+WMFpGWTk{=ECo}7P0r|gOh z(=)sad1U?#Ro%*u0%CUbza-`f2c{Ye^s?-P6`_u> z@V@K`#lkadXGXbgqZ+-UP($ z{Kh*T$_Myo=*Nz9Xys0+cGG+Gw^&o3TKK`Jm%l8244#UOB&{4;YzYC5c0qSz4k5VA z^OeU-h!^yfU?f^e6ShS3WS9_2U6Wc4LNK^zK|e-dNY8W79VRL2;XeKR@N#nKzSf+? z*IN?PKM+O)!YQ|%Zv2=Qiz~{&Jh6HA6Ke?Rhk`4DiYy-re`F$pN}1mIBW@ydmo`z; zUkl{bhDzTl@p*7L)f)u2UkH|Oenno23G!Oi_95r4{|!q=YBO4f438nI5VM2U(Blez z6JQsJs{@5?12a3yeq2@1PNav*5%m4#Y(*iDI?^KS zLE^QDx9kRupyo!{y`h0YEpJZ_>TTtw*J_XZ53B&s`dVPqcYhw068)u6MNBF4J^1%> z-~LG*A@avUW>6=Yi_;m)BRWI$Ho${^xuZLV!?q>PTP@Nyoe)r8v~d3jE{Moll&yoH zG{tZ(RONWhKHu#sFVAqc+sXF8(j>T<$z2EVE+J z{&kEan9_d(14&MyD*cYq-Yxzc94cKD;(KS}wEyoL1Q&9bnf-JS1bGo|_@J0Vc$}*8 z#DwV)BKRUg95P91L*h`2!F6A`u!}y$XYJ{KL5(O;(v6wK9-U*j>^=HA^?VyAYM0yM z*t+5}$kJ+NKf>6({RvTYVMzz9qHc-y%xWvy^+fqq+Xmc|;+^jDYRu_!A$70{yLnjQ zmFzzn*NM*t_v+00&~TsHmSsEVTwgj41W_NIPy#E(;u7N_j)P@v{FM!GkyG8Z}^Ry0H;Qxz&cN{O}l^67R;#Pdd9p_jCxU7 ztdLkFA&8++0XKl5L}gXuz_inEU9q)J1A&ss z+>6&XXwh7CNTh4FM)tm`5N`?(_2eRsoXYo>J}|vICH5D?l-;KXJYZfF{RHHHm$>5f ztn^>5d&@__*UxW7D&H3>(q$$T`SbzynOv(fRzSMuC(ksha@;eu2imRWe-otqPrx6o z-b0m)?N%iZR{)1AQ<0?7Pk(j(Qg-T zO4V)@KRiS0U*_nw8EvrU#i1)u!8<`yl1&~?mxEXctBV*mT5f{=)PB3Guo)`{<7|KA zpsn(WSlNnbKERM*1k{mUSGE>q6fy*tSGi^^k+hP7^A>Q!aYo-7EOaQ zBwfzF*67OXRu5zE92To`e5Z15$7j0IzkXb$p7R&{CdE3t^rHYCX!Tbq zw270`G4xAfCCr2aEn;3A)twR$tu*_?jjP<0H1&hRkTXOajju@5QW&Z_ev(Kr&u?q$ z)~ltZ75Rj98`J*%cjUJX--|<(DXe^*J=Tf6<|1BMAB0H)xs*}+s!w%fic{e=e;rin8^b`Kc(>B!erDAF#Ye%Q)%yLd-AbDKl1nAtdW7Y4~Wxri|2iZ0<(=yK`ll|<6p5;uKs=y>W~Hwi zccz=C$5*IH|FyvzvYqPnWa(mhv?B>Hsi7fbYAe?6&@wec;%7HRNa;6A4LW`_${C5g z=R3%R&GnF?F&f?Qn34VYD@q~qnYKM@<@f9IM~6x8Fq3bNBCwA>8?I_UPh6)SwF@4Nw-E$%06a8)x2cU8b)fI+m?F_M@79PVCR@ zc94j+CeHN=_Kt0|N*Ljn3rQ1Y`Z%{9?dTZg1w<(SUs%$e-EeE5T z(j5O4Lq91v3<5`mD6%L@COhH*<)GYT!h%O|JXv=S@b%L)&9l@_fj^4K{x|i8^{z&> z%e?pJS*aHOE;04NyqP(c%ObYUcd+2y;{;`+-#(Fc0nXo%67PT3pP_37+gq)2yx5(M;_~ZO3&Y=Q z!cX{_hLy{+X2jqDGzs+_ld*_U1mV8rXsTgm+&r=q9<4T#qW7ddl-1fT9cQRIOR)F+ zqHa2Z(-z)(2aQTNfzt&4!HUwuSs8!tde_&{)|B56^)xM*CzMV_{;wS(E>_w-_>L?knqe{p*vY(!7)mlWY;$|a?CnPdCL|*0@yTAt zZvtZrCOg*8Qyz%)t~aT8e(B48dr|4J6!Px#f4phnCx}CrLT`@h%Nqu5t-s60WgjKs zOZtW7r@zZ>whZv^zm)f13(U)k?0xyb9EDRU@0bos%yHpyK;TV0F=Za;!;c!g0%0bq zt@UTsQ1N|GS1DuZ(H)85ZwJ4_8+kq;hgG9*^vjr`ITirP!jq8wk0 zSB0&nx}X{o3Qo~-B}qk_)!j52DkJXH_Q5eog%z9oixMG0x(;)Q{wl+zT=x#+pdIM+ zK)v?kLsGy6JSVh6&lVJC1L~RAb+nv4?2uq2L?a8dof_U5Xc-#=((q237A-gI^jxxs z%eBJ01{uYj_}f0jN%pyDXKX!KVBUWxDQ^4Hu5i3ZmVH3|lHm#a4iN2h+Z6+>W$V_C!0o$^*|o*xlS{^i>mpp8N8x>J#a*@@86%AT zIV&%=Cyi&JsJ^;BguU{&_)N8)atgfD>8|Oi`&0zd?*B(AH_e0#A+x+nw;5q!3>*i@ zMSjY6D$q_a(r+k2A^|KtNvN*mCv3(O zR=iOO?$tk5Aq@ly_XsTv?<~E?@Q7+?t22oq>bhh8Z;__4V!Te|>73W+;>peDcr5DrUhj0F*rps&Wn&)W{IOEO%NG8>x=Z#W3JSJv zq`C9n*q7!rTr$laqO2Q7X4l1P%3RS@K_*9R6Y$_&hYQ2%beVu-)2DkgxIB= z{l2~z;j!xF-r)#k?InL~f^*^WlFbem^36-@ngshScQu^0;nKU;yXl4-EhNdjQEyHY zH~B@gdW4|eesr?JuT>5`sKP;giQ}JJz2aBxZc&GK3;#q}0`_P|^Vok$e8;slNfQTG zxPIH`4HJJhf&Q;7fcohwwl>yl)v_35eH> z@Vg3U(qU`}CECtMYX?a(Lmxy4PU^%D9%ZyG0r88k@^x_N*NwXJ6u5LMFXJ0J76-S{ zmw3s$ylwY?qR{v89JXJ?s>(LZh~$6yo}eV3`$5$q*k&*;Jq^3ki|2Js-2eF*2=+;q z!x7Grdr7~1o0jUA>MIU7_Nx&=XuA~hSrAS9iY*8fydcWTipv)hoyGwVjcYZ7)B#yK zEdcbfPal$LBH3EJYsOfqEhjRjL~0<|P)0n1?L;UgeY@a}t52IP?g-Hc^a7t7D?oqu z*eAp8x3F>G+XzlrZC^>;>#n-9jSRn??&afd<*aH9kKEeY#+-&or#+C;Tq8gWqT3GC z3yT%DW+IFY5oKiyZBvtXZX~jdfG1^g0eRxPo+_@rc*W$S?rVc6$wq~WUNy0Camzf= zR>?vIMTDN-aD6{B)&mQ81O?n%(v37*zuP4g!lUH3bU6@D>4xNXKp62F$Gx*OvG(W+ z%;Y`3OUusvgZO5|8jrEi0MT=HCsb4N10kcGS>acQ_F8LYkqhK}Rl}Zlj|QzRbxLHJ zqFRie`oJ4*1Y<(uvPlXsS1=ZVRNE_Y#V0jS?0yEB$|0UDJSC}oVMJUezmUm%DhX_> zF(kq8x3rPJJl`%L*7S>p-mFg?S*WhUgW?yhhy8Ui#X0_f7v{rwBaMt2G==I_svl0^ zd*{RD$~BB>VmaFa9;1dBMY_~PNZY>h!T$4}oQXRM_N-Qc{5)|p^IV{l!EKjYOkw7S zs!Fev;aL1kS!B;gVHNUm#GxHscIzSJI_8-zZLs_(E8QGFS0|B6n`8vut05l+KQ6jN z(BbXX#K-UBTLK_X> z4^QuVD1W(}zkWJ>f!og!qrTKGz%#0zK1pyBoSspxI(PU{t=CB8 zq+Pj_Xz49z_E-sz{U>fJGjL+z0YBa{MvWb3AM8cip~=n&)wLVc4VJ$p4`MGCS*ow6 zBl3&BOQTY=QvP^%<>qtp>C}Ok;zVs&hR7#zWCmK~S$xE+1@~5M%dg zac4xK7a1a9@?T{3PjLSFa}t~p@rhl(Do#5w-Y;3bJY4gq_{ZM*G#xo%wlUTzGQbp8 z6v203=U8#eMKIIN8&~q-Iw3WtPjtZ5F^+pbaPZx}SQ0hzMa?NbkatXS=%>E89L!Uu zwdt{T9R2`7H`IobI%#Z|Eg(RAFdc=vl&jHpP=U4Y1vZ3vRf@jw%CCqoIKu9A!d+Af zpb+ArF4Ge|_9|6SM-g`Chzn6ViHqCwR!1|{B>m9npG}b=6RHl!byr<0P&Fb zgjW6zguaIw%rKr&YO-xJuC_p9JP%^;kb~+K&&fknSr9HX>m$0uGFH9M8!c|Xm3n>< ze!b(hq^^Cn)y#UU)Kw*H&&0@R>ux`=v$JcuJl#-)2Ji<)=YQi?uv!W*;%ieWgO}&~L~Xfk(3eGGda2$KXK3cQvvkrrYm6 zbx|l@v@%_KY-qBv(3%U!KhKt{e;0c&KHpF0J5`A8)yjH(-g=`6dAfZqS%EwRFFph5 zr=+&FmFmT4;&`aB+bw$WHT!Pm3mr%0J|P0PNSS22H<*35_V&NdqL6K|;~o=jKV({Z z`?`@Uz_alPY&^kJL{E;uMf6V`5j zKHYBzW6DH{pTjA@S{rRN59h0vipol#1QTC^?bVUX>If_(QGDdDR?lKv;S-6*9yR0s zGC#_U826IX6X|;$g*3|sK<7}(%(SndGCMuV-@2A*S?Tq<{=BuiHcPBk?e?8dE49}Y ze2#t=Wu~K7==l+oBu~FgA~at#5gN(__Oq-dxu##s)o(x=gV%=tZOs4K&Ill+5#Gja z&r3=ER>y!>O0~FOtg7ZU$0q~N3$Q}}8h!eK{M6r4X+e_UEA3Uk$G0 zT-EjeQQLTWrR$&YWzjpVJnuMifxBFAHzGbr|F_`Lp7?d`^7?!w3~!|95OK}jyWz$& z`f_2)srJpP@h;PUsw&{Yj%Rdq$k5VaL-F3(R4zZ-vTzl7K03tYebdfV@{s6xO#+-3 z#6D4F6oGj%K3Pon8XI04oCkusK=^1b)mRXZ1;lqD;$$GGP(A0U-R9F`LL)1!HVLA3 z1Q_@nsEjR%7U8TSaMppemttg2CLYM#?-_IS~QH-9yaWb<6PNp0g|k{m|`^YOcYW6ucRR zt%w{v=G3g*Ju94-=H0UXRmpP9CQsFb43_Q7wJ}@RW~|^20{s}C#s_;q<=h#vLp=H; zjvWK0!0YWkV!3pAgdegQUwxv6Z?{oaQIzqo}`|yG*Gew z)b83^)tjFh7}hZ5_>RLfhpUdy>)pg*@2|wiu$uAw3sf!CC3=boy~al<`aT;XFlgx@ z_RBGe@|F=tAhwMV=wp1O`z4=awDpB)CcgtmtglMRtBy59VNV9tr@-c_Fj6}ps-M(L zm-SIT1((@u(b_brKLzW^c13AC<@ks_>6$6vG5%?le)kx2U1{rT<=+Qsy^yo6xpL3h z)Foh+P27^JzyLe%_vPXHPy-NDqT+FTRisOfK$GbJlNi?<`2~}3Oy=8K#hplq9a_sI zWA$|KVb~-IY5MG0hG9!bUvm#*s!c<^?!|6VIoCM4sXE}-t)25=|*%BH-U(p_T)AaxzQa%OiVX6-9r%91NoudW~aZs2>9A@Z_eb6qvj zZp&%#uLe1@eeUimh|h){;Yj;ujZ9Cr@o5HQ&tq zaxES-M>A6Q{n%NnRog}J<4ZhjT9xZDb!&=O?;IEC?``FTg2uM*n$wMpW@jAxTpb;1 z793MQwdf%8^T5S9##Q)TuygL_e|7>gtJiP7f4PFc+qe7CBj+hyTvUh$ML4%@=5Zpj zb~h;2ovD$x=$SO|ash>#E*Pl%8a}J!PQI`B@AvI;pOtWu+OwUNfmjM+yeU+Ik7Suk zf^Dc3Bai4gDI)!%_o38g(+F`E(*cYkm^)@`uW2*@%FJl4F8J>$9gjNG1Jqp((oGOu zaXu9eab0-w?G56#e7+P<2-8$2{>^!>n~{EeMUc2=*W5l@4<&TpV7UeREJHDtt}kmHminU(`%sYksD!NEy|aiM z6m~egI?RgdC|ecqBN+O*0PT?b(N@wtFP#T|kMxb^BoHxZB#e)Bu|b3qJH>}ur9)|~ ze1yZZ34iN@{=wLl8?nw@bo{dW;XaEGEKul3KDTpC)a^yL_32MYj5a^09gQAATr|ut zZa)x$&_DpVL!qg~)n~Sen|Fg}~XjQvK zr{9hyTmpD=y!2{a_xC6=)YHf0yTBS-m*oirWziG%O8f9zY84rRAgzVmXt#a+G1P+- zh&^eAkDYOk)$oo1>{GU7uhiL-OATUgp|YFK(IxZWjc^Nx9ZL&xOITZW)fofDw{X1x zVz*;&4$;mvjZFvFe+p=~MH%u4(;8XqGpOcXMmT(>T$%F;Mn;Xhm97teOnMF8vhnF7r2g~ zbv)nsl=%OK^NRof$9ajH*bpWvg1l1FpXj`KFjPsJ&hxz?gtpvOv*vH0Rb+8OSjBI2 z5HK%Ga?2ip4#9jYznb?A;Rq@PW*|gVItYo+{mZd#w$hEz)@>gA{%p6wi*N9e)DU{J z;unU6;=m+g)0mx8i@h#b*KOqIM*y@N6U?GXd=06{V?V+0{78Z-Bk=|2VPk&)VNMl?2z&j6lvr3z}Xzh8b+}iyR+PiOZt&!L;`U zV@O>KC%mA-XQDu(Y>RF2=M+OOgcR^U7Z}8#^wI`FM;EI3DF4x3*8=_A#+F{T-!jZ@ zp8fCY!l{12A3L=jupi>> zXO;;&u_1-5sU&gC%Es(+(NiKLe!P6sLK^5$Ieq%ts zsaUnc$aESD^Z5JH8=0t&TiUFBoxAfWRFdDC=5ID?!iBAH2Z~jhj$+$-y|gGYzZ0D! zJ&kISR(^?=l)91aHCyM;*-ba_*ATsp$HGVsr+>CN`tFw`@0n;Jfdf^!D`>ypG1Jpm6`-?=9p0$`uGr9YQF5d_Nf)UvP=((q3gp&!U9Cx- z%0~Y6z-=465ZXcmc6G0WwjH^p9>~xp8_1OfYi8u>w)%CKDM8SuqUITIvk!6=h9U!P z{)pZeJj6byIGz<}!td=%5Q{2&c^DP3axoeo61M$TtgK8%kB6$NmV+5qL~H*WC!#-x z6iw(QX`IoF|6j<=%i0O9XJ8q_t60YuCBq(hF;R6lGVhmSTYo>9| zdn8$bCB%125H@WJy@Oasa!N$e7xe95YGR5A{B_b*CPu?{X|v<$90hnAiSc)n0_D zeo+BNd%ekQ!g%Iz!}tnOj@bFu0rg}o+`d?w(@)n z-+8tE5i9>mL2Y%3^Lu`GvnZ9@HZz``U0cQ#x~qH9pN7r1h-}P38}*HE?5or;AKgdS zpnomVLLb|5x2=!gW42uHHd;D9t(1Fv?kzV2Wl5YN}$ZSXdfq zsUSG{P{tQDt8@MlT{V&J%m_mYyGb4xPvzf8U75g|z_|)O@_rL`AoOf4C!4AN=3gvd z0MVC4QmnhhZuf6Q{>9x@IF;-Ui+ZQ*OBYog789N4mF;KP)x-Q{dO7Q4cFt(Pxa8-; zF_Z6cx|RY}i3tO8myo!}(1b!h-XNXvFeSZl-vRa`*Tz+N5l+r<0xq zDvnnFiK~g3+XJKNOra&jT5a;Ds$gmEH?1^igb5NvPdP`K^Hd&w@-pctsgSyqxPh-i z>$QT}<^C>DC#6|)@ZFmI`_z*x_)ZQYkvXw<>SZ>PU~E`)PC$D8-euWf-Gy8ECrYtf z7LnIvhhK8;gld&n)D%iLUi9P&XXuk5n5f4Z74T?>=hpd3-so z(DvHsw|W`f(vQY&x6Qv4|3Bz}rkwc*zof;P|L6b*L|pe^^lt8};t%4BU8GQY;1T(( z^{POxOuMwpmS(>QP3f=<0ScIcRSwI|tlYLTK*7C!%fzGGci4)K%c1OOmnayc?TJ=p z3rchYVC062L_m+-D8a|Q_jX%}JeA+UO{81$#g3?(hvOeNI0UbRx!o4Qh%MS2PTdGp z!jrtDmW>FwhSa(1{(majW{*Ns*USq4>>ib^wc9#$`eetvD^nMi`0*W0eTaBhK8h5! z{q$YOt&rN$j}iy8a$+@65WE4A|1ol*_;y_v@Gl?UNz~J}rJUcZwfK1rle$?V2{=^` z5f&V*!h}J0wGkDMzKJcc@bxctQ|Xo-jqoEQC365uqs#h+PigiAznDp_ydFN+O#7ix zET&U@J@oyF|A-Exjw5o~7^*Fhg*IB%&g{>^3jmi=K1$}|MrDQ4#B_2;$>Jg2Xcg0! z$(3TWM7{gRXjc7p?(Cb8eT%QR>bVSW-Oy~;D!FGt`OE90pCe(ZW=GOod%E9i#>}Ul z_u(Z9HV#JBjcZ0V9+i~~)5zS2mz4@xFr(MMmn113y}S7Yb-RL^URuDX=dUuOzP~oT zFFCPHnltt>VL0Fack35l#+E~mt}`F*di#6t+-*{N$|Ot_uF$k~cF#mbKd@#F_C#ix&;P)r9rm&A%lj(_$K&8LA-SR`)9C4X{qeh!sDW9cI9`a%(3 z#cmuwLPgmsVP#r9GzTX^kI_#O+n9E`E5u; ziyn;c*FJrX-=wDh4KEp>wA!%xme3J`y~ zuCWx{(1JB_+L$U36Z19l33Jp!?$|-~rki}c0X;uwFdAZi8Tmg^`8-;54p2Or0cS+5 zH9r=nfNe;ertre7SPV|6)D+&PTCZi#C>^72#)s!~m3i~jLvVnFl$0OM~9ew`W3g@bu3NuuAJ1i*#V@hT-8U?g|(v5X`^?604 zv&sPJap15uQpP)yZxAi=RpvDAOpmheDs=c&e3uoDsT2Yg8FKjT{EKI4n`1@!s?_6( z=gNf2wcT@bb7qQ!`o957)$sL~$tk2Tp=7 z?Nf=kkvkUmY9!m9BYPN4e}z@*xQL5^TQM#R3lw>(?VJjPQMw5#`!Xk3`G5ZyclwzW z?)l+iq*RWrFc;>5M+1VkB636L*y)&ub`h(>Anzhb^+t3Y#FtxZ-?djA`&+tpqM*r^ zr}JcfdiUqm;!Xmb-uiNKrFrzXp;q%h1a)EN9q_*p6l1JvMFQg6wl)P04~p@GMqwfY z0hdFAm5!54M?EJHC{be~nh8Oh-+F+&4CXnI8-n zv7xi6dtytp;l~BLOk+UxOVQ$`W6oWPIAP>BeZS1#wK14+j^A4(#ekSl)#)aunP{5`)Q+7-lCma2 zixFw5NdE_8Z^0C28+B`THx9ww-5r8E1WE8faCdjtPVf+d1xRprcc+6p1a}&Dcb|U0 zb52c7)zsAdhi5Vmx!y}Nb`AbN!>lkD@{#`?3&S=10poaV3bub2aI$s0B7sKGth|MpENx4?@k0PCl zAgaj}^g%^JB!Tb58~KXbmk{4LL%jan3^5P^K0?AKc_Cj-^8Q*>@?NWFt*h1Q?Ll9n z&iQS%3i(0CCZ>V^S#_zmmn>GC-~8rZrF!Tpf=s5 z_q`T!2_06I^p{olQp}*iDL@)Nt6s@A6yJ8fqd}iv3jrB1+o^8IF3}i!=7IIg*nXuxGS)5;{Fpz`kw zg0(GF|6D8z&`Q)@9)1=i6TWKtscbDgco-MJ5mRaT-!cXkAa;vk346iJinV;eVz?eXYFQK*EHlepi+3 zUUIdPG$j?4*HP~@)$0U!zJzs)dk-QfN5)U7Vvn=(C-1Wik46QGRI_TE);n#2Z?uCQ z*WX?-9Wq@dM0lgeBP}PoGj?OoDX=XC(%%A}gxf1lKEv0V^DJ^Ky5b`c{=TMZTHWq^ z>ip30j;24EXKwj#FEq{RDWvSjCk#5^ZmdJ<*vzNj4=dlo=O!*s36IsXQhdp4p-Nim zIe-6~ECw_Y}41Kjql4Bf8Da<@?H8g9yl7^5CCvlv@;@;ZJW?A@x3DO z9i<(s%kn+v&2>GdgYJ%`oCS;t8r$iHB_CLRTsOKB-6Ra5e$T6zCt?&K!QK9z2PdlU z{VpZl*xaR*-okp_;?wUwx!ZvrYVjmitoZ%+CyFkyhyEOiD$aW!l$qoqh0^Ho6aT_P zfU!YI%3NI!=xsa6`o|>P5XSz2la{^ACYa@W`F1+%d6b|E4$PSj7_}gkmPfoX^i6w} zDo97S7+f<7D*tDNN0IT4jLujnDR#WA&xmg=Vr8(V$f6D82n7f7&2V@!A}Ce4Ds}+nU#6Hoq3sXT@-C z!aycNs_I5l3aH;G`7U24I+wOoj_HTWqfX!c2}Mm4;JUDoa0}mSY7MH524u+kJ|BYD zCpBEFc)?Ymk7U;jRq#+o5iBq{pwiX5W<*`{sGH=E=PO{wLvkE{p|iq||6m@ri`= ze42Tfewd^0`%k{((8w#7i`{%{p^bkg^!TtX#UVPzNL!2F!O?Ttj;|l-vJ3!vsypB0 zhd=vT%a(}raCFzI^oe9pt>}2lmrf%8qrg68?rn>bDzj3w!+3C5wzY?9m)?14SSdRJ zK|etu@`Zc2b^l3&0O83{kx|p0Q9uehC+xyf2Fjn!ay!f5f!15iXVKmL%VTEl8>ncr zh}R8T5FWIjwauDId$u;Pt#uW|Mwl3gNpU@1HW_tYu~UGj7?co|xFaQYsQS^lbxmD7 zZpQ2HIV?54z|ixFtKAF$sbSnM6WSeyfg+3m_w!v=#t*~V0T*8O_Gnbk^&Jm$X}7Rs zuB_vTw{zOvA=tl$KqoFBkxQ7~W7|DxX>7qOH6X&hGwU-^B6>dA6q(&sk3D1XuMaoP zomPuz%F zfucxK(`#FVK%#@iBiQU%x>sWn9gjS%@ybZty{?P}=h6b&o1><5d;orUOmiFX z_Lk%-a<>xLw(7s3()Nbyz1(4qA~DtJKrT69 zg>F$rPemR_>W9#7i2x?78KF5j{DtI<7HVKpVbp^#lY~4r+09QjV`bjM0XTJLuI)jF zvfu}U+7YBy)jG?+mY1X~5}50Nx#Hd3dGAZ0NYT1{YLYl&+kJpX zdgP-r~gb9bIyuzfii}5r+=tGSN@BpYnE~^KK&$Gd=}PQ^*q6D&1r5nBz7 zITuCFDwd}wI*<1B&&rokqnWf)X~yq95H)tHW!C`J&b)?c2)9}w3v)wu1Vxau{nazJ zm1~K|DfYJMbn=-33|juEAX#ujicuvXu7AKg_?`La*>umS?WqT|PZn^LGZ(}rD0QFDa6RJ&be#k&b={LI#7 zj;~ax*^n+>75Bg`b=V`HN(zZ6ag=p3Pkn??YejyGKA`5$$YFLZ@Z~#+^h4eSSi#Ki?i9wF_r?=vL{F=^>Y`oM<5|#~YRwR8fWq2aczHCj0E1La>^DNB@sq z>BqS7pVmJ}&5^g*({OQ@@_okJ7uof-5?NK9wM}XE%19QM3FMEXX6~A3RnQ*)O#_s; zoL6K3B}ZABZmA0nIX^ib*6Ck4oQX-mw-H6nxC{Vq;GgbgBFPGMeRr(%!DXLEoJtVc z$+2V6@#_=k!X9Pw>S0lip<^aFZ9C^D#bO3c37EV4WsCbP1BS0D0#f(eD zc0SeN{So25#hPP&N%ON7KAWyrF=JAA0OwV=iRv(Z?qS+z29s1+IARXdk0b{-rvxr| zcYa=8IAo3q%P&RZCgl+M#XNtg+XvLCUhG3`Rfq|IHDT+E8!a&^<&QArwkVb z%e`?ouyF_a-6V}ML^!yd)(D`pbI?({#K3Uxe|yAe+`t(8)Y|dbkFUS_!3+0Fvrm!u z?2!nw{cC{!pc*8Hj#g@@tb?VGs%-X^IY~t?vY5=e;{B!?5{Ej9IX5;j2I6c#5bs6LO!9isY@y z-OGeT1$x=YQ@lxK!|<)-1bP8Ix-24c6%o)c;I7;jaM0F6j5XJG!@sf*`B-$8qUT2o z=TE&KgHK{){WtpVj+5pq7kBK@^{XzT(WHsghfwj`+xZ%GC2{WAvqjjrdM}hD>IVzL ze&!pnkehn!TRwrkw(v#~ zb=WO22j@!>`lUls@=86ct`Dr0n~dvRnYk33&&TfdnU<3SEmBu@nOp1hySSrVE{OX3f3p#Po$m`#I%ZfFX~~c zuJddV@e62)z8hdK+B?y>Td~S&d*f)kYD5t6bR&UapUtwj|2?wD$c#nVMigX|ZhJR4 z586m9M^JJbQ6St`QXmlR_AFAqhmS^7wozI1^aJ`1?+S+=$3?UR8^oi_f?2-Sp)ak1 zAQezsF_|BGe->>;xfxLcrB>X*%E8E1+dJhxo3Flm9{4?^oq&%BdaP@8{=gnx8DvX0 z2mjzJruJgTvyfrjAkk5@hetxuF_}NvM+9lcUJJ$51{w9k_rKVyW|5s;hcW{%(8rr# z83CNQn`Vo10zR#gDbAK8e`;E&BTLNkSi{}>dMx3o@RJQ0#(zla0a2&wJWku0l{v_> z@k`4!G6zv*a8Hv!4{-fBh4A%S(RirK(Dl0bFKB7|(7q}c5_-uKRKPtRwc7ZqxHF85 zR0O*lMY|n}T{msY%&Z~c?rfS%fpjcx*GdwRZ8MA0R{;W%&X=iqFD*%>d_E<(=7+9^A~G;QoKH?O*$^<{IDmGmh&<> z;PT&v#ov|(Mc0l9j|KnW(0Obh@^R^H{=y!6N+;W2j!KwKH}!M9Uw)5;&;Ni4m%h2^ zpztV~>2WOJe1qqhJ?1jn*NMDsz?4mNv);aCz}1Jm#sQ%?;Y5}bUcNM=h zf9fH$E!fH=8ggqOU>tbT@(@7b@}7Z{)M~}LMo1Z#*r+6(6(~AG=?mV=JAF|zEtD|@ z2#L=Fi9lY6P~LAFQfDA{MNriRXwE9U*%K}ZH;cr1M$U1SpI-}Dcho3p6W%tSj`%G4 zQQ?=!F$jGBM!BLGEWh=E^LKwsaq26CImlC%o;fcye z^q?W;Pa~equ@9{pl<*2INCLzZCEqlCFSiLI4K-L;wpo*};2lTD$Cp-C-kktx7);gY z=CxM0^f%ByXdCsQ%I4&~8#M5oxX5*^J}AOyI9vIc-g@`mjrFw$dprFc)etx@OqS}D zgc7FKDD3zpQr^%KS7{~45e@wGVqbQPuz=dD24^;y4s)j>ahCKuIUx7{*1D#LxW$ol5 z+n(>a^4GA%Y{*W)RgAHN&t%)YJh7{uJj>>hnPoCiwkr!#Xe8^$zhy0eOm%0pymP|1 zv51l#=wYlPhmA}(hBnI(9S@+q@lkV4K+&=ngd)g<2(5YwD-1cC$H#`^_D_HQ3A z!wuU#W+{Rmn_ij5Ir{S# zmB&4uF_5EkFFr5N-uElyv0WUdI#CA~P!_k19)XaRT#D}dIWjB@@?C_$pV7IygIp3H z9+5s~SV%0d2&iAAr^FObNcsI208@F_^8B=<_+m0Yo~E!(-x^YL6(6MM?nb~DYC1h@ zVEo5Zu@384aRV;-W5m_|Au>S1u46BMFz-|@`8F_a*R(;GWZ6E$0#PXQ_-~StoE!0_ zKfY4u%~J>0v4iOwC#}eV!+Jqei=n^^D!T=cb{a*Umb=v{^&p2jDfgz|Lt$1)7A8x- z555|(z+}llXGsJbsq=ro@=_UiMzP27udh2`k*{Zl4G&`2*^`p0(7gT%$<8>hJ>oU6 zJ^+FXsQa#v8-t+_{(}I~j4drET9YQU=d%aUW$F<%J)O3#QUsifn(RAzE&usQYF#&G zmWF-@P+msmtf8h_Ek}g~mKrUy^A9@Apk#rVikercAmE>u078kj*x!V^k@pCnb)mC#q!!~K@Wl8ShyhpJ?1viNr2_$H@9vi_*&cIGv@e9- zr!dRiF(l&kG4ATU%kh+~*9Dq{tYJ{PebR-h+gUw|=|84LEjTPKQvJ;mqfDZ@L%Iha zKjW58tBH>5XA3Nu&=GrbX$v)HhoAe*?mpJq7j&l!urT_|{%PLIFt2VKF#H%a`}Nwo5oRqs@?dvS)%sJq5{5P+iDo$omX#?$Jc4DliltMELZ*!SFnL zUC#rxtKDP>(LQDN(>Qqs;55r1KFLw5dD`ibJA6B1x3&z?}6g>7F%3X)gQiA2;31G9wW{uqvk{p>j+ z8am+8`Nx(ni*73F#W$bQ;ABhiEs!|?!gJt4VF-gR$yeN^avF=hv$OOL>U>;Meu+Ev1{)(e;s#pP2$fp;7P#4mWOm-c_NO6-yMPI} za3QrllZ<^qi?n>3s5g=!(90pj5)k}|vIR(q$dRbC9Ko!$F)Ox(>R-^UH7&gV; z_Z-02HJ@e#&pL!oG>5Ohik7JgE&*}~_0q;0%G>y4Du!s0GYo(5)6!F`4;GozV4pWg z(%|J%e3S3Af;;m%ebauxg^2=(c0<~2Do&#m>Dh=7T=RE&xg<_Cijb!7d`w!ITCguy zO9#~#4A;KNY&bC8x%M}Y)cIy=A#}he=&6I=f3qazxF+kh?B!D6Y!OxRo`@>Q_n0m) zJzt1`c^hS{PB!x<fY6_e`^a@T)+Fe+!1a!ZuV(7%KqguO5)cEuan6bLrBo~q~0_t_L zTQK$mGh7(USdY%9J$%0~%~yfodz%K)o=p-je>13Bn}E721&%?>`{9!6Av1@W;*HJD z7wK?NGX)bNG{Deex6=*gC@J?8V!%)3@#TBi>gi*nCE{JrX$b45^*%LVgN20Sy$4_1lKW&D&uo$3pY-Eo@2iK_#c6yuI%1Z z8a>F86SMglTV%%~k={xQgeG*K<~_A6XkhIuCVDz>wk7+MMa{AYHP}`xbLB)9|HX*POPtcE`?)XB z`fumi)ba|Ntr1BbIR1|UgWR6+8n0N~XJ%MWq)}Q#5ZyIsZnv|-vRziSvam#&1G8}p z_}<8C^~O#YK)8IHg>?uYN#FW4w^XV5w$V>=__mc=~R3aNy%|Se4JWsU^k16XxN zl28#nA3FFb;%f(twd*#)!jXM2lg#$Ut#bKVVOK>963$qsV&D6vIC1k!;xYEeW{Q8( zL5twPeTw#BJYF3}nclgTAc*VhHVDqF8x8*0FN4XY;5miKlZhF?mZC#v zgA%t+_X~Y(J!vzUT`A>wI;(y46^eF;d-T+v(RKo#xyN2sRRxvp0M0F2e9b$CHbJy+ zR9_rX0EqAAzJ{lMYZ zaA7dCzN4q_tX8rX@J!$UDJ|@f5cyg;V6d}6hgz6s9}VsYdXfI);f%?{mq`k7L=ldnx0$9l~y54AE7(*^=Mf&ZHdU8^RL@UX$ zdaf4!3O|-{W*N3^q;lqf?#b%m0R-pzG@al0vGJG|G~YQRApv{HS7zj*fIglpL{P0X zlR1Ipi%SkDc|dd^N%ply);*EQ0h=$oXg5mHXSg5bz&Y&BywU#PS)Md09LDys-R~g7 zK5aZxg*+!|5`c?%E*XIE6Nwf28;>&QH*r&RHBCq}#=!@wI)G!}U9tcNZdruzAAmz< zdS-RW0kdiuYP57wCLqVp9&#RxC$rls+1)i^tZ3*@_kpY5JSL5g#06m zZVG-EC=fbOmgB1|C-uI0m|p z&dnWCEEW8~p%b$H8{@Lahpv`7s3^S|4DTazl*8%hQ9W)|l!yyb6F~7c^BSnoxJ7P# z_Kpqud)noarW{kFzPrnl`Jza1WSF^LymF)S`JLmYNt-}}g^CR5Zys5?gaz$bb3iff z4la+$7#fpzpJUOXOa=npzjHOlg+l2+$k%c;T6=^jq(^C?ri-;BXNG^ri_7{Dk&}yQ zCp?fgl9JA|jd=$-Rx}N=ApM4CZZSy2ZPHtj=6gmCF7yoaLMk!LnO`EQ9G^?AXPh$& zkvq;6QTu$(TpD#}Y*H8<;535I4q+v8C;~$e7&i&5bvh`P`AJ7}Pg6bbXT@+Vp8|i9 z>F(S7OQCuH>2!yKm|u5)v6ol$;yF3J4=xyu{OY}p5GcafkF;$Tp$N`1G4~T~{%#OicA|Rt+uxkz z25aw4aNb)2t-~Moy~_>R9@{X;k8{v=<(gst8X@)0^4#~8Y z-Oc9U`xQRde`od(=jt2eh^>UdV<=)q2wwa@sjew^jed+5$e17_ne>_HvvY^;AmWU# zxLU^MoF4|8#w2!; zMCiQe8^yW3m?ap_*CuI2(VnB4LvI_QJ#=47CsG)shy1H-zOu#o)O|wCdHrGB`?yHr zr6ht=M@JBN54Y0OADqhPK25w!z{U~1Y8e;RJfg*}-0IIZG07yX_QM=#e&~5GOb6Rfc1JdVudmeXfBx0v5QC0=l#ZIT$^8qsC;ARCb1jU3)C334 zK%I)hcR%!{tt#lRxYtp7h8V9kE7>eUBWY84j9k*cbOqs z_HoV_p{Z#Y?@KC;^s>CLt~ymx$V>V{~QkZLoCl zd#L+WodXDEU#Tnfx~Z74%6zEz1Y>UHun)tdL6SLxHMSRh80d08nbU4l#o@XC`%xEE z49~W<0_L|8yH+E*+fxlP7Z^e_Dc-){~ozrn8>UPe!bAR zy@ug&rrbh&RDrh%LLx5!VEJ|C(NkIq!V}Hgz}KB& zU|3tGy|8^LOzQKED^`0TQdfN3D&0H|C|QXcoz|*HR&s7o)6I#X)BMjYqW!YrqQIew z31Dy%e^w-E*&QQDT1_)9!$dqg#mwo3zfXt}N|Tct6ig-9+Ow(h@v>M21Xd;b8+Lqh zSG8Qn*=4CJan~w#)om&IhT_PJ@LR$Y1okIeelI4rz9~)5RO>!nn2#BSC{y=wpeS!QR761|?#ISoUhm3^w+4~PXU$`rd z#eT4N(q3<}0#cojpww{_C*ZX~qOK}nht=!wnt7S#_2odL=wwV_{r}!=IhtIbGUJC&SSiq~@1Wghx2@3y((0AGwbYa!CsbO{|ND@m_nGAX47U0y4+?i(k0}{ zXT??&s*Mzg8>DH11b<4D*Gc~>0pR|+J`<{Xqgw>g0h$3s#iE)1j_6(eRQWn`$uY+# znN@UoT!9_yGkwEivf806_3|C0wJ2D(pgXYT-%}cDrSqG8@#SvKEbHxf;NyhcRJ_CF}fpDRA2n$U3?BK0C1x*3)+kJkW(A<^JZz%p_bZkp`L zu3vf2)ft6sns4o-hIOzmZfBUH30W-Hx`Ej8kJrHB54Z1=Ow-fTr}##x0G-0M%c+D2 zR%{m*?C)KOXmFcl`_H$qzsibLawGHBB1Ihs&XVB3KE8^zmYYojJcApw#vX}{CqN3H*X9*QHf zdogwoqw6L2l9KS#(lTT_zkmawYMaKfXk>+l{g17VSiEhMdX2=8Gl_@Gj!+Tbh0`{d z@$vNZ#>I~ot1DD&!#qFV^alwgF@=P=l=Mv%rtA--I~bKBJpMUN8T*=QNO^wS3(Cc6 z5;|ZTML%rwVQ0A&EfIC{?43{q&dL%nu$))voZ1x)nGOFJa`Bl`>a z#z`a0_T59Y7sbu>>qnbfN7vDYR~BQisIbd#al*Sz4WSUX3CiB%VyVH)KIgyk$im5c(}jM>vzZd&%N_#T1Uk zhb!-;`L0(!|LcG9G zD&O0g+jo>SL*5gXjs4+d+#4kq_y5m81pG*?+9MWA9n2e=!Z`K;Tc|@_gzs&)Pv_Ls zJtCcNzobr|P;9m>C6@;TY1?dOCKT~-*U)Q@x0zRQVq5yNWsK@&b<=SK;_T_Dpb&9*J1Z05EuPgIWGeA*EyqRM9_xTCz% zi=dwgRR)$9fF$>RkBx&KH_j8G+jrFXmC-It`F+_IZX706{ia_^d`5f6PKn;uhse+@Q(grd=gNwf za_hpvhTa`FC}ou6-0GD-EU&P?wSk(D|kdh}*}*3m`x@u!HYqPnhLW9A<%TJRrg_`mec+b1WTVj#Fq?=$jq zxID@rQc0zb50Nm~1X=d`Qp8C1YaLXsw&O znhh9c&9DxJBmAa$VK)^z84*KXmO3MvO2&vX?i{kT9r-~M~{Q|7GDY_v;*C1{NU0h5m)EfNg753PX#;T*E?6@2xN2p$B7nOnc2d!d0 zwbtI^zBaL0HO!2s$|MdRi-2pduC)Zh7jNjYFSQwbrx*EVUT_S!i6E-??<7)J{$8a% zEP}kMRqn_zOJ!#M%Z)7uHd;h*df`IL4u0Tx5v1I!ZM?(W^`tk55Esx+X+16`KIZQ3 zmzzt|%N008n8o|Ef~fPJKy~`tg!+)u`(guOU)yRsi%e(Zjs~uH^h1#CRBX8ij29OE zlBP1y_PS&2^{FjFx8~H+d;e-hynFD|yM!_ijbLHnGyfl^Fa>T1EVEadMVNH9st@R4r#b>E9m3W-dK-J@kq{-+y&BG*S`HYEi5tMQ;jg zag0A>(;wxj$BaFf;yInzQHL%?vUD7uQr`i5g7mh&jXn^A&zbetix&p6#GCFUd@Q^v zO$v1pJ z)^6-4QW~l=MG4kI-}EAGCqBQ*rnq*f(~hU9*l(_1G^^NUm7xIEBDnV`Gj>~q#J;Et znf>nEj-DVM(0XSa5M5+z3Ib<^>#zFeiJC8DcwGzY8%pTi`3BhExxgl`zFa2hOOiyo zQBrP6PKT=Udx5cStP|XR9?=7Ph7lc<#1~E=uzbZnu9t-7BOKZH8TCr>FcsX4cq-ND z?UCUlnL2x_PBvk`M$-Q&mrTd&NKtX(o2d#c#{L-AD?g9pQS~UQgsA7y*>}u7=@V;q zM8|N7;VFh4gI2Bj1 z0MLH8sE0BnG3ITv@H>wlen3W1z*k=mB;kcpawwJ`rTu0qJ0~dA`0vs^Kf%VCQPaG$ zQRA0~ggLq2PC$$}g)t&?e-YK!I9n+#L4Z`UN=c)&1=8ATlF|NZ7@?U9@r`8-Hxc6$XmM*C2q`|t&bUI1y@P* zBpSt!T;d}(_-hQP3W zZMStY2 z>yxrRK0B z$v?y@N%N|N>x1EV+7NssGeq37U7$p01Ue)3@iLc$%zTG)v3Te1-xPlcZO76JXhFwt zx&nTOVNTX`t=G3@i8TekKx#aq4XXE9a?BYcSd)d2g>{0b_-V9K(No_N3agUXF#o#3Ys$-i8>NzeZ|1@U}Uz`)SbHoKamy`Xt z{9*d$S37(2deUC}%L@~BchXU;5^LXqOv}oxP&uXiaI2y(7WwV%kwmt^Lo4-D@^1_NP0k`8)_o|FXhn_@=;c$!2$~D}P5$Z50V88gzzzXz6GMTnphQmb)Q= zBi354W0`NoyPQw_P^!LPtTMBcshmlZKmbR>SFLm`!};nt5EihJV*>(XS{xupeeLRD zjTFX#*4(#agYAI%I)+=~dD$nWf95!1m^FA3B{>iEC!xaqrNN<2 z24xtH?`&_~=1|u9XowY*ad55Ju?vCt#7bb z>T^a$Z|F-4;9xas9mS*4W(68l)pA=^VDpRi_8^Imw}*M zVgY|8>Lw_Tm&cvZNUWjJ5WN89tqI|jWjGUY$hu#Tk+0?WYfo43e9+r^r+rh+Xcin3 zyR(DN*UknDtMQF!;($`sT=lty+Q#I}ePpNr;h_b@xThf(r%7PQCvR zvkXmGhSWPn>zktXkCgPdUkbTi`Sz>y1L0f*YSwlKkk6AveF>Zkf!%xGwSdiQ3qsYg zuI`s3#=+lZUxl@x`w2Q>BERJ938J01A(LP;^ozwjw*NPq-Y=F6|H(ts8Wb599 zbcY(u=n1*SxQy^vi;C|?&ZQ`Bx|?=1hX;{nUGE15Jv$;%KV&H`O9-<^M#R%+EKqA# z?%`5GWtu%Wh6dJ6V_%+fb?D<-UXrhHgy~CChsnU^Vbav; zh9E{2;p~BH1)-@0J>t-p))EQwj61Q@O3{h?x{RXGfT5i|fx-VCV(p3u!k@M#3M z@%GQF8U4tRhhKCNghm|;|F5dT`ah~tf$R5MVfsg&{r{*+Jn@Rl|Fc+j4;D3I#XWAz zie4ax#B{{N^me${Yyt5Fj-(2>lJepbVj6&X_?bghh+bWvT+HbdEfCkxxn>O?83Vxb zHs@BrP0y;$ujZgBP;+g?D|@J~Gq{ZU`u7b=TD5!@yv2HZI2-MC(T$pBwz+9$JvhOGOt_#3^!J52 z>j?3=7_J}oBCD5jc|e+|Imm~&wjkTil!AA`{o9xU7@i{JGtAm02ABa*_LV+lrlcg7x`o;bp0pT_@ulJ6vU|=hlL-O6Tkp3W zf!oBa=fs!eEb-cbSXXIu6Mq=u(7*9@;mQ4_A@^nC?bOl#Or*y~$y+M%;oIF4e_^-B~pr;qN#RsL*7%RGby?_$M?)cc*`$KtAA{)54ZtaD?RVlsq z12DLAr_4%twxAJp$wm`d!m$yftg)`cJdISpF{0~C2I4$hgpMM{iAJab=eqP;^F7K3 z!i6ef&)&%{CXCu&G_8R$n%#h)i1c_RJna@}@ZXniN&qCK%*_>qiQ1gRTrI@{y}N!F zG-aLQ5aA`^b3gdH9{g<0&-8*WzW5L6u>>JeRBQcmm7|Htv;RW~0!j&3WnolGKcPgr zi(mo6P&jE6`v50N&&&>P{e7-1)y=0C!zP5|GA~XgCg8ocIFH~rVQUR-#O?HA>1*G4 z+N%UIjtz5HMpVk!-vH=<(B)L8H5#g%Y~+UGkydQ@*1~twST;^>SX-Z!^zi>(Hn1sf zmeC|GAOLy7PfXJ*1V!dMrs}v0);s6po!#>xfimnYPwn*PV}|_tZSt<1+yC?In!4pz z?)-q|$2+<&IIdA8^zK-rX)@@anCFlYf*Gax0_%kBW^PdL`Fl(M9ehLGe{*H8Ypw%3 zvm)A!HESd9g@IJRzPCxs@obT^BYL=)6q!@{T~vv1Z0AvGiU1)YZ)GPs_#h;J=nNg2i!KM;s4eY> z%OUS;JW5$dKosSnpC=|EfsP*>S>?vm)?7hCM+oL&@Kr_CqQ3K5{SE^EP&xV1-&3uH zfcVE6kwPO9ah@R1{hmT@Eb-D8%J!^DCLS3q@xXSvlx^+QkT8Q#dq3zXazN6KGx~^a zSS?OU@Oj^kYaK;2q)lZt_)A6N?!|D4OwAfq4tQ+4En13- z+ozhb$9QE7BB}zM0becA)h$$i4=5HW0@|lIIBk$n9VG<1c`v^{1qZLczETF6c0H#U zFZat$R~j2bR)>~vC0_o{pB#00l2g#OJrdlIPs$+#pMcx=081=^1sgP^;=@b&l|~=( zR(=S^!rS5I(f;(l7#;E;X3DH&q9oUH+VSqR+X>NtHkI$;mq_TkjvVS&%IYHO)DiN`UhmHsPvw|05y-EYkl=L`a5& z&4@ZDR)jy{Qm}~-wNmX|xP&3P~c92QQJ1P8Ub?y02H&_msYP^_C zrHdcq>O*$+%iaZbU`Tg?L=(QePXf7^Az;8*LIct`M_+VR>WIzj?A$BFU|8kbP|SD_Ri;2ti?*rI35g{*Xr@jSsP(G3T2;J8C`hR1+;RkStO83az~)fCXn?Xa32m2`fN=oFl+&S2dr!j1H!s$YpMfulKi& zO?V`|D)Ij+hOv-7+eK>ue}kHLxJ9p%&QvfxJ{biKU#5s6Tvn6hu*+K-u8bx**m)7B zkk&QUX#;-*I(eT3S-m|^bk(K_7&laPJrM-W8zVe()KpiS@4Ps2-LTZ!x^Aw)ft&P7 zTJ#g7rx;s8|J~q$n+X&=y!f9zO!LsrCnO3O9uu7+^@TmpqinXt85qUDd#7HAK_chM zKM@Jm{o9ZlJ6g;|^lR@cn=P9N47T^$=;BryIA-?iU5G82v{_2E!GT!D*<)!Em(+&d zr@rMrhm7m*GaeNbcE7L(%v{LRig7AW)G{9?>?mG2SS|LBjq%?}H9KZw^)h9#nIhVxjuz^@?^Tc{cCeu)%6JE%DoMvCo2cNG0&|Grc4 z{%i2%cGPOC=XB6{$l3B;=bc!a&p~e6PK(Du!fKoM#Ot+c@L(0^>#&wK=fd*}Xm)Rb z6ikm5v`E$T37MMO$!3I;8g6t*LEZ@d!c}Fw@U$42d$e%Q!7l2*CTAw~3;TafPWu1f zCg;Z5CiXUVq75TL#i9q+ zPjcugikE3*rUm^pW)e=v4YZrGAkT~-&}aw9cbxw3!diwEmdj}tyFBzPyA~to zV|}Uy&I4lb^i&O%`xxKGA{`+46@2s&G?Rd2G|vYSfd@X@wVP0FypFq?B%?q(MTuyCtN%hX$#khyLdGf8Y1=yO^ta zp1GLk?6cQid#$x^h?}n$7@NJx9v9DKC&)ER)*l-U3zT7Ek}{ZDA9-eZE%B~6$<=6< zrRr$3M5_buy%BLEH>~!q)IBW~S5%Z$AWKf;+CElEb@TcBl(=E;;V*7t`^F6%UEM>V z8f;X?NjxlKagq_(b4Vp)Voc-A2Nx>59_;R0IE-+D*9 zuM~I^dJSui0UB$Zc5hW8eKk&Z6dMk;)2prc5zjM1kxc%NvmU^frmdY7gqDo94lEz0 zNPzQ}piDT%gj$Q&ZBPp#z~!h*vS1G~DhEF#37$YBo0BnM4bATYq%hmoJYwtt9pb|7 z3zX32UtG=>KhqS|U0U;&cxi032WWM4wx05?EOCwKqB!FjeC;{R@#CQ&MQlsyQ12Iq z?*s#cjs_+%0nZxn^Lq5DLwE-NXz?I3rP|n=Yf{lA3?hGN8M`}qW32AGAeb#s_OOF{ z|NAMw>k^fN$y<@jdHZg6XDwT6{D++GS3Lrvi7Vd-{BUrt-oYDPK{wNy4Vph{RC0w( zP5WhB(NjOCO5JyXGoB)b6H5m-Uf^{Iv_CO!k&i|X5kU@{=biq^>|OJ9c`*H`cj@*` zob>kfyyD2qwdZ!q07C86ey_P0iUiQLK{00kBLQZXa_K|X78`s~Uso&84f2NE?+<9s z-qxSxd|D8r{IhnEBP>>SK^IZlL)#d#Q$o8oa>nDK> zj|!n|;``GZdDz^m?DwX<%Z$neKgF30O7`}LW7?+j@<#+~D6DL7T0czAvfP^}sc9|r zg=*xVKhNvsU{0MzQ`MrtU;ZXasA@;f;@<}eum*mCd)lv7JPx8CkrMOyL&E8dOx96O}v{6Bw&UDW* z>XYc|7@^Ga#IHaDLtRTUE$}lq(haOD49{(Yg~he!M5p z{ce~~PbamKqTH}Xz`otOTwf>Om-v%l_IvTlKx%CDpf?xM5};hwUEyR8TwNV)>3F*Q zhQShvn@!_9XJ*>u3HpQ*JQm15emH2Q9z@idHG6!dtp3ufDuN5n?CoVX&t=s5yu)DK zm7SP-e>2{}I`i@R2_OjV_^Q>`__hp{g_r&&TR7vY<~yf5u$TRsLtC|cP{>nRXF7~S zva+>QPZP}#_k3nM;el$Q=2defMJ#J+9E1&5-<~$`SzBHBxtbIB#~D&5x&4gXZ&m@x2;(`Zg4cYW6JUNx1^x$6+M*nACh(0>IK zFpk0%X(uCJ6T^#7>mZ|ntk={eS-%9xnm^{>&5{<|j6H3VUvs z@YP)mrP$8*gNeYhjsD~^WZ4h`zwa6GX#xZ}c~N+$uvGwE;_m-Q(_Q*zJ>iza0goiYlo{N)Ybc*{pI z2x-*KjlL)-Y4R^qkG$meqhs8^srqN}!$LV`k)AFh<0wd8y3nC%!q(l@*gaY3-i=Lc zFUIi(;~iUU*;;(d{<3A$f_L&EF$Lok`(cff&SX-4l&297Gopr)JjOo)@^U$%bkfB` z@chH_LtIa<{_9bpU>$*yo2I52x0EL7M)p~I3nk5eeYfV65@9!SsXARcdC58(P&S3l z7)GmPSi7Pl;9Ivo^(%NFI_L-7KPA{sSy&iyy{nQ4|+16XWtq9bTMp z(;8&GU|PhFf{f|GQ#$wpX26nbMgF8?EXF_b&_&gR;uRqQ9WXd}y5__zLk-}qo7e1# z6Bp(Vr6@6SSEp>U%}fsAx*$CY z@Xw_v6sW7N%`O~i2y0{)A`H;(+MJzw%i5g>W;C~f9NL&mf*~JRbrlQ)f2s=yZr7;m zq_``EJ+#KkPus&Nk0!CHai<$z1_)0u-X!kiJukGigfO1&l+l4D&`}y%&%NTzxBh`gOzQO9oKZEPtsp;6OZ2v2 zRb0#qZ-_zHtPpMO!qa=c>?M8DkGkWyr%FaA@1tt(F6~o>IXw>c&ZrjW7V2BkIL`S( z!X__`%S~v+R_mA1VD|d`o2*(gk2tnJ-iK~o{JAKno0aG<2x|LKsl8_U-Y$cbeQ~M#KB7UtIom4U@;F z!%g{_Gccu7{qKwAt0lFND~&7BN|~z~N2V|3P*Ojq;HPET%SX+3f( z`zs!zb+Cqx`t));f8=tkMe9gh!v|~;n^25|p{jDU)ax!rGmhC;a={9V$91Wr=d+Bt zCL3HM7l5&p@q=GsKQARUfvu9$y4U)COM8A@z@L^} z53QY1MY%UwA_~3#@07 zNGA&SE@7YWLIr5Z+$|2Q!2gO#&G!t@w{-#1(?_VM8EjlIJG%ALF|mIB>=i%`=5SWM z-+p538D+%xEtAhvqi9`MhUBDQ3aIZ`hY!*}Vc|qPH+B14wAT(TkC|IvtS-AJB(~P7 z+5^%KdES>H4XVV142cW9;{u0{%6<2JuTBS1;_A}s%FUS^O{!P=zA?2m>sz6Ep$oVq z@Brfg%F~xWE#eh_MK|lI{J+Aj*t2u8wxL`tnXD$%OfuKpL zBeidd5GYBCtwk0ZVWEo?K~@I{@N^x4mmw=8xc0K=g|=oLzNq`F&75P+>Zwk`W~_$H z4rIVxCo1xLuaz0!k0uEe4;n7C81p!-1DZYhubv}(s9?VL^959tzmyjS>HY7%Qf$zL zJ`6-R@ZXfKX%^^~s7lP-_P>fIa0jjCghxG9c+vD+Kw z54cOZ<@A%p7umHeX&$1-5SkjUoDj;reTq*X;|`!BrOP!?tS@>#FVfLFR?&cVOEbVx z2e#UZ3vl5gXgoMN7;^!b9Ij*DI#j-U$He!$@GFkhWOlI;uRtFvV%CsA7Xp<;(dw8z zM3QnQJxa_`Sf1S+#Qm#q*9H@?z?a(FXnl9~HJYv6xbHL=9$|Tw+FV3+k$OVTRP~V^ zXVPs@cVgF3Z?VcGqr^c|BmcnspKW|wf%$Z@2z^*wK7ObWhow<^yDQpNds#?GD_rn}}Mscq0s?#CZw4$pV-nzx$URE^qL@|4=t z{x|9gj&qcfIU}O97Wgqb4_!NjxOH!|su+P|v!zrHPUQ{iEOc!)K!@V<`sd&({D-jb z;6#vSnznL1fCUK~@^(w|)=b_xz#&y{yJ@{b z5)(@OzEi=56|6&?mL%6+2ti^rd!lPhBB8=k7@2MC0#b3Cr1d#2^1@47QqT=aBRT(k z=AgRm?RFd|2lqND`52L-T3gFLUx(q{kCN^+!!av0b%s1o1HTN_=Vj7OJ1*qCj^l(k z+3Ui0Gvi!@8&X9Gr8_LGnza!@ zwCrMg{*uo^{m(}?SsfSmsM0y1(7^rgMP;}twP|$(Ci*G>f+hHbpu0slV&s?nYsw^l zZEqfyP%|IaJ(R(KGV&WX;K%>qlqL_&8(+Kp01flTd?p#Jqrq2^!ONh0Y9XPtLDO`FS)j!i;eHOHa{_lB~>@vQY5S>Hk z+S?L99AZhvR#X_Mur)>vUXAKpCy0)h*cD&hzgd<$uzIJRT5M=dEteb;F&kvZ{5Hm3 z6-4{)+Vh`8JOsH42XB#asaBK{Sqz1mNs?y0hSizK3B&W#W$QqD?i&ll{Kn~jK9h71&a#-DQmYd<5q!G|-ia$%1Lc7>chZUEW z*iyS3Hz-LwxXrmUwx9fG5c^v=aAUex2N0AJ85aq&yleU@-14%|8QGlK*M7}G@r8@) zzqXP?d|jp_TANb1`%G-v#ixczOEz^?`Zgf%$mX-)RMuyRHHPuz8TytMhJ<%-Z_QDi zSQJ|Z@%s>EVOJ*X!S&GHtA?0u=*v#&*mtRtOMo9eg?{+K!NJ0IUy|LI3j>T7NefB? z?RBoQ5|=_Mu^ig+1>MNKs?B*^H-K9qNB} z`=Wc?617sZ*f9E$JejDJ+kKcKOi}5aDbLqhurJxy$OIk!k!>{fk7s5L^_GWxe4Z&; zmC91R{hp^elHMytrG*>jQG_f=KFqfJL;0Fg*H}KJzx4(FfcP67*GO(V(5n|8j8ZYv zIxt!d_X&@^r^&oh-<27TC-2ZFmW5X%UR61%AJOJ;2Qh%d-u$4zUR3@{yPO4f3_m@Y zl6VfN@OLHQcMvcGNaK_z3Xqs?aZ*|(V{R!Y7rX1r8P*uibaEW9 ztJyT0sw!Y0xV0$KgZ*j*^vjA~pwZb}K#{}P=}L7KbFSAxK)h^65=`3vFnC(k3PIfe z>&3ksg!rznUujc-jsR7MBm2e62l1IoZ5uR>!Tg|oTn%eVt8Ds)-^K}XwENQv*MJsV z!#mLC&yWYoYCMc2{+NAT%|AuN^o2BKaV{S&b^)RAElOk2F5#@7^NR6G6p)Rt*2ujf18T;eP_weAZ);wPK z<|9t>TLsh)d>X4|!+TT21*+3!h;^%7%0h-Dt)t^Lvp+u_D&+s3P1E4zNRZG9Ps3V;b{U2(E7RG0lJ&3=2sb zs> zmUCQp=P*B4T;WX-!=o?cHkv#*6t!v^e0f;uvLm0n>Yf!VoCZ5Y9`563l>6l&Wbg4&`l zKr6%-4a`*NOXwro8>ok&Q;%~;VreK90-KzAS)tvLv&7oJ<8DRnRo!ToUuTmTh_|Fe zxd2X@6W|(Mz`Jwv-?&J-92T%&eBvEbzV;9(8v*6`a^(oE3|(EKg8mV3$CE8a)0}~z zQQ0N2vhtb=|1v9Aequ$$fa%?`o}h3YZdE1F<>34A_>)9jZE(?iA?4Ie-; zrPX`pwM;Z?ciw>HN6j^S_{6d>#TSwjoe}q-a}`=adscMs_)+N3p<^Kmu76sBPFy62 z-><2q+P;0r@D&6~{U)%q3((*ir6Z{4NC0^tDn2ofJflnV;(|BzLPbl=uZu7Q6EltL z+c2||oAEtjUz$$Y>;ww8;zeWA;D=bhrlXDgxsvF+=@Ylr^Fz#;W*krMkY!WKKZD*k z+zB5Cr&QKGLl%ZgYhuZ^fpt~gh<7ab-0!*g+?G**wQi7&HEX@~ z*DAqQfKSH!*uT?Q-Qq{TV&J@1Cj|^;@o|V09Z!X7ImRq2G4>Q*JWm!K6LZxZu{8y) z#7X#W8gl&I!1PVAMIu&29K(;J#oHVRKy5a=CILp=sGK2?-)NRJM?N8`LE&yPPTLPD zMRHb`F&>rWu(Z^)Y9SJTh43NGZed^ORfl*3>H|eiiKFSS_Ax6cwsp?a@*0`uept%g zgnZk1(`Gt3A~;rvTG~!+Vj(jSjQz~+hO1IvH|aw>`(?-SVwzVi#$xG-uLiZ3Y^T4$x@Z0p|zrA169M=*?rs8`$n@S?>x4vxY~qA44$ugL|h`bPGwhnYMMzMxji z|0yRT{SDNv$8i47bnvv~zv%$)5YEc`;l^7b1gcY=%cAoSfet)=WrB6`Q9%P5MY+q|b)}UMvpd(EuG)r1&)_ zRhDzrQh4+L-^uV21cnPIMsninqJ4M*G|=*tMu9T7xMX3uXz;2SH$e33DlAOfw_X={ zWvN7{Cd6b(7 z42sU<%M6wjiS@ZzG?zf0sug?3->Tegehyi2j2zQiGf8ujPm?LMafdX*XcEQ?BJu8m zZigHuU|OR;&M}>mRpTLN(6@vx4Y1|by@#Wv-dtZLyS6_EtzkiNSEmc~ zb~Y6HI*k|N6v;f;>6v0z5*!?1hs&HC_p|k1M~|UPZ3uxsOxZ3R==}=%UYiT@S(VDn zl1lGxrmrvgNN)Q=;(^)De7SK3*fQu?1}%ri{?p7Dl)fkqPZrLGL&!c8&94rk;LHV%xGlaGNj>+EN zgQIu1r9UllHLwlLM3q3y-<|X=IUrFS`hITvp9h1Yz%M|%2-O!d2f&o1ETfqc^@^l{ z1dff8u}3N#9nr5umq{gS@c}N^7+z4P*#H&bB!{;MH0XJwJ=p=e%!H2Gs+Mo`lICGa zy*QeyY4BalI$;UBawEOkdIy7A0i#w+n=>_jdgE3cNjz;aJeU|Hi^XX4bd&?_)VnsA zQQ)Bo)G5$k9Zc*>jA#yHeDkQv(h=_t>eK^o8eC4WzT<3b(?dF8c#$rI#SK8-5s48A zrc^Hql+P2x5aFcTc2-v8OKM3QKBm3TC^I;4DuzMU>ukCCZADbU41*Ukj)BiOItRwL zD+@M&$($V-kJU)@kbmVMNp8Y+JYNxKWzIaCws9lsp$i@Uz61wEZ!d(Sd!Au3z>#fQ z3daAKcltx3MQ~s5TX?2&GzkYo(@#PXO; zz)sG5(VM3ny0q-cATM-JMc(H(>lpgU+wvGy1?459*0?v$&b8o}<)Ce0rW@jpor^*} zB%?$HUdJ9)X$=88IWBCmL1bX9oI-}2{1+KQ@2|&|WY)gWeHYAH@!X>6joGB_d87Pg zFq!mhEg1{fM@zMbo-N^g*r>yvGv3g72F{`V;o>s$=;26fs5?P8LWyHz=%yBuwB4I> z9b=SqkZx!4O|A?p$d5(6-R+yn$vlX@PcWR3` z^T-qkdG;chraK!FV)|{vLB1|Ij`F{e;M@Nh2^yjc+0)*I<~#YB(rdN{n`&q4tB5d;`X%;n9S}#nfB({_%o1(){ha$V z$z2R$peG@^@WBK?5?=!nN8tQW0!OO{lxKl9+3!89*{d|;Eg*y@Ng@Rb0pByY7z|Bl ztLlKyiqp$3w)^(Pd$1{f+m)&d*gElBl>c7axlLrhytGL^94;wwH;Hlw(n@X@U-;1g zzh!5DDV&u;F_1c&BO?cH68sNzt$a zOAA>p7&f~o<(;0PVU^ci&`!Y?X==-P{#)wnV*F1}Aybmqj`<6K5V0&qV}m`7zMMBP zsXZPwSrxrGEI@soFkJKdgk)hBdH!*W^snVj ze)17F8Kp^$x$4JeoMns9tJ(}`hin*YgMn})etpqkh+A2k&fZ<0?ElLG(3n1we@7bM zX5Q1!?ajxckR&V$>S(9MLH)-`sj+d~e~zgJ#1N)?5yV%fXcplEzUyKXWcP|0Ar8=# z)gp1xZ%?!m-UwJulc(CcR8Eeil*!CGE=*`~Huc5x9~X(gkW@B#=6!5p{Uqa|v?=DN z(?$kw@J}DiC>7=0bDRLv3qlDTGWulVuEftDzPT~aAL!1%d<(<7K5ckn2`J;7$NO(2 zHG5euc(mPyUjFgF%RJx#kkuD%OHzO5XhD!5Q-+ervoj$i_5MdjGE&k)u)-or6 z5aY;pilqah`13HqXJY{E$NOwdKK-Axi%>u$BXk;o;l^yzgd;pLl3AVcvX$^~foNT< zr>YzV&K=Phsrn_uzgz9}8Y_(J?e(kE1PnVlQSp1j1J5X7PiI-DyP+jX1g#F>*IRzl zSG#1Q*q(^d7;{GXx5}(y5xs*Kfd2cuf#M=V5Ym5e2RezT_@Re&_ zd>B<;?CPSNf!nTs=R>|Zdh0yKz<$*PK=0qizfpxZSWeWg5~GiNcH<;mvig`afmVIL zfW0FvS%$x*_H~EA==oY=F>!{_4cAXWhRpaOOj18=GrZD=*DHU%8kN06U~>_O za}+#x)S$D~_s)_SXxx98X9G%+#y0YTc&RYyX7s@lG!*;X|7Vw*hyUMTho zHHxj-@)-7TO?8?rbmg>vdm!E0f3BmbKlFGP!7rH638thGb+*E{Khj*A0<#cQpkd4Y zW8Edi+=a#m#9+cllty)lR}PJJ{4$4MAB%cEL9I@y?QG}kNMPD`R$D-4xMB>k=MwrG zQsnQK?4EixNr;bz(=9A1MUQ0>rm*%wPH2F-O1wRRSkF;*id2aG^qv+&e}&P%6XYAt z=9p;GgEOc$)a1!I>r&K=_5|ydA|r|LOy=*!!^Qf8+ttUm)~gktJE^^##Q9P9dOm8I zd1P?AmiaK|cNgDYg;F#$sVE*j=;ly@z{S5SftqfwHLg;g?Vr z?r15G*^Mif2?n-%;a$sr|p9}z3WamqVlwk)vs(naQIuy)aoD(a%;{M8rp*7Jua zv>hq_Bh`9i-|Z`1(nO@BPct|^)zH63yK(;c-tOO@Si#p|a5a5os;?tK`Ridk-JV|3 zRa;Z0rjW^kI;rMBT|937k&d_Xp9*E0KL2Pk9*uYaFY=l_6H20#JkSyAX`gzKm2oho z8#5l>uNryoiNnIX)s_xQ0=OV7zQ;bt^N%O~56Ad)rD(9^g2Ka%Xo)&h2*2Eaw<9=b z^7QKJ+&ecPWU`h7&jiFDDO=mWfB$prMbCRVMZ8O07i|;93RGKl2n5vd`8sI@zZ%*? zGuC~p*|b~15sh1h*02VA=&MOS$Ixui2XoCh*;LhOSFc|8*<8*=mRox-HfmH4DtKjl;^c4d?E)WDbLT@>a9rzcmo4wGTp0Y=(7b>Su2`Q==Tj3a!K z+reZY1TbbB)mVM;ce|iS&UZH3d2Nfd;)O1xSfqk$EPWqr&s$K*V5ps1Z)W)ulW;T{&g|@HG23oXwTG0wlOcTzGDs#u}tLjbQf%@^+t0g<7zLUJO?B7=t zn69~1l?!Pjlr;^$^Z>O(e2?J@GVuDr0f;=d0I%99BMsSjBVwm@%)No2Z#J7 z1N z(LZhH1LY{{hL(6Rqqq7P2n37pwDR@9KRTN;#H|wfSraoIJUr-iW`fMQ zR_6Un)BO&2d}mwy<{-+=D98=m3ym=@zlmegEMHuVcmIxL<4tDM(R;12Ey|``S$0lA z9Q5*&5==}ZqRS{X+P0ctsC`gyB~NK10?fg#K~fUq0dzPl5&#|Tw<{ip&pJG=5fx~# zN5tp>vjNaBl-`@gx}89N_A>YV`Z_|nS-EFlK0F!%J@I{ArzIcqs`6anZmH*5pJdJ{ z>W$oXpW{@)bb!mTj6%*Alntc$2THUbVZ!y1Ka9bni3^(06LQ73ERs_^d^A5&M82eS z?5n%LFp2VG=^2gi*8R3)HBAfSV*6WMtbUk5r?w3hlU>ZbE&amwzojbQ5azT{G%}u` z?hlP{{4rr6#e`6NvH~4y#xxU##{w!lhnPP>lnPhCQ^T%mpH~SXd6RMWv^gFEoe>zkUw5X_$_aTyQP6S{(>~?C10f765D`32@EVUD5KoqaFwLRDs{KazuwtXVi*-4 zLoJE?O4T~PL=ptRK`28oSy^D+F1$+@Y^6aZ&bb) z$lJ6e+r$=qODt&{`lmy3IAOCjyRH!cd7iG@TtV&=S{IsmtW=r=foatUf~debRHDh# z)tdM{9YF%?0W`(!R0E0R@9`}X{TZJA)Y5nZ5BK~fi(?kEC0_Fx#3fcn&#NQ9lYKmq z$PQcOJu-SYxha5pA6JS&+X7dxHZi{C`4Slpj=zr&CO>)Ca%M!@Z%rw_JByFEj-twR zlN}ry1)d_sx-U4`rEV@dIN(gE@7iNL zF^-e9W_?W*t0tv#1#=;2wX+Yw=&RXL)!jQm&0n5=lO0KS$!CfPFj2x-mZ^q2Q~>_g z^$sSWhd^UcnGp*%KuYL$wIX)Ah8phrCW!XLNz@Py3WsHI$rHB{;MiKrF1^OiP>uBBSlU7 z4{n}dSi7m%Ire6{MLnvj(5Qv~s5|lgN8Ja0xGpH958}!RPLa4ms~lG z{5$v6Jw*ifiq6C~=as|hb5?I1rP)a}b>V@VbwOCgL_`{?oa8$`6lui!nrCU>_eNCH zuS4uudxZ32+DO~!`QeZ1C6WI2I!T$1V=4Uh$yBS3IJ1+CFKPp<9BtuV!0-Y!9G_%4 z)I6DM^YE(ezTiI8|Iz1C#KEBIdM1guqW||=RW=6sEI5x#)#LpU3+fbOTGlk4FUL?- zlYSAfu=apvTox6@CnT0PDLc3~h4qZkFqu)%0s_B@5oViWWJf^%38Q0|Gwgx8odEEH zAVe^Hx{kxo0thAztNTuKYM~-%zV0I8I#1$87Rw$GhdACk^^l{scWC%fNEbxmXX-RtqZDCL>?5L9$xk9Kk z4pGz^lH=OA7hWO#@`9Ij`K`DlQrOwL0_$ZHlvnQh3K&ar)U6uB`~{8L$G^T_!OZ$? zV!$=zs564gGOKNA?F7Ew9Ix$9n@i%^<)+jxl63y1bizd0<724t7Rq6d&;!pt-C?sE zWYbmB@gs+&%LX=@aqMv~UK&n|Kb&XZ50y()_+L*`E&V*`p3E_5be~4)l|QrN;%XO4 z=bS(D!#U8@dyAWmZFH)%z8lGnBeWaYi=>3rOFDwq86}Td0hdNOt89_AsNWXU<5ZFs zACIbnojLX2^hh@)TV!Wr8HG1MQ&W=n)4XO^NqogSKHnEUo(J4tJR-H4&(@%e^WFcb z{BPYN2>+M%5}t7Ydi{r9BXYaprQB7EILkiDLNbu?ro~3lxItTme~di@r@FXU>ms*D z=|&jms!hi1kNSW7kK)YROvw>1_kGbhck-j_v6R2|8T#BQItIfQ;wSFY83SeoXw=xW zSw!3?VpvKpfiv-Hp5yi|m2ygj-{b!4R~y_&X1($7qTRtb{@S>xw)k_($P@rBcm4Wu z^^Ge}+`ZyqN&B4XYo;;d;*ZUUVyc{IoVted+!FRjRTz_~u%FH7)I0A)A8#DbvQ+S1X+rr8*>LnXlC!lsB(!HIDL7ICT4GND48Sac;}C6 z3qdCZxGH>n+HHNdny7Fn3kj59#~6pxpi>HbHqzgQgNwP#7Ih;`=^}dCtjCnPTfieJ zJgpjtBGoiM9PEWOpA1&rk9+u&dTwU$1+^}Y@f$VI~NTP@3|^Te64t zfpC$-t?3+t7T?aY&t6c7#IS0_%6A}$Yb?!(t>&M}OO{d36v(b&7x(QG^JSL?jo8KK zI({lB$v-lxLV#Qv^BP0xrn_#H)N2W|O;epxr;zFeE$+3IY0)I<3!q|)F82-On~J}6 zua1v8>s&dF-Qul>c-89Cbq}?upLv?k9i3EQ(UQRJh>3Jp;E+ zwXbSx(9`nJ#kT^ADk`35&-y9Y5-T$!c&HHafJwgBi}zQ+Yfwihn|9`tudn)?M9*J( zJo}w}CL1${s^xetOv1w1R{Y=rmIanP@xHPWlbRn*?70#yI_dr`wu+<+nJH0e87=9&3yfl9MIt2u0s5t zaukvF_r1(cA5y!Jis*3gsFc#~;kj*~qt;SnR)fM-X5hiQ6cqDGP9CREl6e+>T*89C zrSB8AK#(MsWjr@T7@L~?u*&t&4##olJkE8oFCthilUh`As8hX<&v!Xt24(LUNIAU| zDmJ;+=<*iQ>vk43VC!PHp^uj~m>shM?k7+JhoH{xA-0yU>aY#b2e{Tj?NB+K$ZuwQ z?Ic1!rGh1XvYeKjm_+8^9bJ~y8EiScI!{gcNZA|$Lkq*bOB$l(1j?>yzlYnv~mpT$JEOM)Jn_OEDq;g`UC$ zecDWpT`IsI1Mn+BgBbxpGVXJ`P2b~(`|r332^@zbeJn!$C%3zV#8!z}Y3qiwpVm(( zQ74!2k8N7~d#{@9=X(T)3$6N;Mf|zl-FpACBAYWL{}0%$eHNRSEdL*{Gn|foCa|~9 zvUK|_kxGr~=YIu)2?dko&U1>Mhq0PiPtxDMh@DN++$M5p-j3ka1>T>_JA zyU{e#!s*?0$>Wq2*8}w*F}!MA82_UBPf}FdgKKaCDn%?p`b$z-c6{uCk@YBGx1KIa zP6b~3gz8!{n;Fks?9Lnc+a+Ra~-*j$dJl`n`mw3<8U zx0{kCTL74~tV|siMC?vL*E7j%eHsDa*cwYWO@EMFlweGMlY{n(Rq`L52`>8)2Gf!o zu#1zlZ3bIJ^VOjNG_@)?Moh8{dT{h#6*pUtiG4d^xVJ*Ql>TxpUiK+7a2eS4sima# z9Pf_2PyOw1v=ARj<%6%<9OzcFfWQ;4EY2|5P`Q>*Dhb#1q7k6O>_BBGdpoVPIo}rF zlid5p`x)w_RQEnB!v`c>fD77Ppr21at^;~PpeqxP-!J6N68U4}ifXiAqz6q>TLY3z zJP?uHcFK%Uzxb!irR*E1(q?n_0rX>JSbB9`RC5hj)87Hq^pJ&ClI8Jzftxz@gSdsE89nj+K||=O`{>bCB-x(58^n7IZT$t9M}=A5D(rV+w>;b zorTW*j|~f;TG;GbY5tky<(paOU>@1q7w96gM>cxw66bI4)U+tkJ>Y5Frhh*&g)Tl1 zxT-#zmrD*QYRpvy!T+lu$>@P{ox6UT5 znQy7EbfS;rdb5-<>ma~_i>z?SP4VxA5RAX?0Lxh=0ls7zDDkl|r1pKAAAsxu`@T2} zDZG8+wz6(f8bTk^y+@fY{U2a^!c>$&j_NV)T?64i821$FZ5NJxQBnzp)lWU?p5`x9 z3x@aKdVSVS(7E%QAxyE*nAUl}t5qgeRYivwnws_da8K74U8MgXbkpSjPtGUGvpaNx zZ5X}(MaHl>6s74qOyzCrckQ4Dt>8?^uQ%LzUzvkpSKC7f?N){84bK99k}a?Kq>_o;4g zv>fIaZArY`?C||p8W!dfqYrpUR*?mLc<5sViIoZVpL>7faX~)eE~RxzY5HXauk!<~ zTMDKMO!dZD&dD$LT}*w|!9oIs`nn=pZ!Puuvf#ZnUm#p^Nn*JRu01G!wv?)UAC* zZ7bnn{5W`8+8XSW?9l46*mixX)EtqPK$nDY<4615oeM5Aq+CuE-&e`D3=b_ME)4q8 zb!q!Py$r%R%W9APB-m&{l%bMl^xjo+9Fc z(|fG6U#Co?o&_V5cneM0h zPPquz+#wX;;@#cn$vTI4dYjpGmi^{jFeCBR+$pqu%Dl$AnVF>G>rMa73nvE>q7cm> zb|GQwNOrDa5N~fOx;y&>60ihY7QSd@fm6)#PjVP0#264|OtC)wFu;d{OLa=n#{O`o z7({ubN}|aHU-x}V#l0vT_PE!rbUWYfYwCZ0_4r&LsLZg4H!`pc92LD|UEl8&NC|%7 z5rC%TMCmBxE;ki=#`wWIv#$50ctRW4I207x-n|oRiE=&umMT~4>gm1U{Sj`RkW*Y!6MU=AKj^iYl1+MI;AFLHqn4P{ zZlH11o`(Wr|5p3wKQTeYC|28C^ZWkqz$23>Y1nnJ&8>BQj|}p=Yqp1R2ef2=LT%`% z7S>sLP5-0j93WNi(i2wirSv4g?@)naEA4`iq(HXq{pz+J0 z0L2C-^KGQS<|ZT3P8iz4+2r!8UJwxhqK?GB`^^=0pH1v>K^nd$Fv4>AReDmJzi&B0 zY5e=}^bFGLhDf(7?+hzfZ!6*CX1UFkI=j@0F@)@&C|S&ZD`ez zTjl_)O!mBhAuC#xue5pVR7O|5M^*tPh$394Wz}5D$saIJa=Qz(K^v9^5DMS|epdEb z>P^Qi!;TC|F(F5Lz)t`WyCRqMY49>`M@QTZ7e*g~W^c7)XDgEIoVhrEgYQf@@jVTG zZ_uF=y5Q6k$x6zNtDA1O1HE8U>NSIuh zBWfSh#@~@Vc56pS2+#PXxXoMFDIYQa38IP%1Y24*Ci>8|@xv+N?q>?T@7owEG~Jwv z?d{&MHtoT<-=Oq#>-hPmHd>mXyLohVU+|iSj@|CBVG@ns>!xqHv{=+#HdXKOr@-c+ zw~U+v$2TVP?(U`+tzSeIeLDZ8RV_HWV1(N=9$5Cbi#)P1U-5*w%<|Qg^b)M*#f!ri z>CZzI$0rM3X6I9pTB*$?GW{OUcHfK^joxw>6X-6-Jk@@CyvTjzYu=8Wy}cYq*&~nF z%`rV_g*YAxcSvKeBVNSV{=+`bQsUA%R}8}7GOr=0msn*a5!?pla&sgc5chRP4mHR% z)|e(IYuk2Qedp-Jy?X}qdHcPW0UGcze`s*K_0Ni%#uXUxz;Uo7^>C#a`(XT-#K2Kt zjHIOJQ~wJHNg{gGP6gMj1Iy-3!6&my?Dh>}zW_(o-cw({f$b#jiF&dTA)h+6Y9l{H z$HOI!pM9pdr@fv}1IcHO%1h~6*zP3qGE`+fWjEd@r{%68yy3NIm*6*?|Bth`?24<4 znngEmL4q`aV8NXL!8H&d1b26LcWW$YZ~}o~!QI^&*I)^5jXN|1*VE5C&barCanGmw z2iBLpYgMh9bJlb=ME<42wD3Cnb)obKeR_*{YXBB8qu4FHsFuy!)3MF2+<>vW3U}Y= zH*5l9%%0_mewHf3{e?+&S*^UPsB#uhVfO#5@yxPp*WAxPLp4VK?f2#ocuc=UniU7d zC2%1?lw29H&z87%jcc(@&6!9USQh+|aS`75!HlH>#t!N4~(fY=)T* ze5-$ILZhK73ZPNA{grtvN99za4)4H?X!0I?g%P|6i_`UH`AicwIb7lEMv(PHpFLCp=so_Bb7uc5M_Zm?G?H9KDsv2&KGr&GXu;MKY0!(Eo2BTC>@ zFNY^a+Ur~7>dkBF2s^^{6#}zM>1=Eomqk^ypW~9o6y?TH@n(KB67zaFG8rhben1ur zg(-rt*}C^$Tfo!m+w0xRv8E>FhQl>CursR%io2)S5N*EXg+@n3R=Wjx0o9!yFRo-c zK#3_!&P-DpB_jA!q5pv6{uu66Zkhnlr)T*9TN%+Jt?H_!;~7>*9_K3rXeJu`o`B6I z$`)u)dHLh03E9TIfjH?nL?{zAF*alEcQ)2Kz;noM?=8)g@8NsSi!By$p={22nv;l~ zJI%V8{Fsm_TYjq%S_NO2POy~vHlH2%IkitXmS-5r)Z zAl__Yj%69I`P%y~C$CeH<}32Yk$OheoQ!%I{O!pRVvR0)?u&fp@E|);T0X?R$ zWt$7ds2D1TG3AHq+b?vtJinQs7lITkiF(o3EdueCgbLURCmATRs~LZZ^Y*!!qp!vu zR4|AUvcFhlocPl$u<}xar#`YA|9mk7Z}W0gI``@t`C6?3qW@ATAl68g_xp2s>?#QB zGXjuSL5q_13Cit`w|E*~oFEglfqq{u%)F$*B}>VMUJ-i|uc>uEv-uCUV)DvHzg`Ie z%lc???&SJp`5MU~vzNaBBc8fyauM<;$? zt#Hn>|KJxz3K5mS6O(DAiiy*nsTDnjshQ()g2)sU8s#e~FDcW>%fQs$WaV zPN>Rq5mgvs_9BhE*DOx8y6Jna5sWB~ana%CU_mX~%DjI=@e1umlcPt+lLx>KT^2U5 zopa?kI5JCn3%}X%f)2YZ*jF~pdW~k3N+7l9h7+mP0N!7SuWDEDDkVQe9SiTE^DJQg zd0Xjufe%kF=$>$FE-B!0I^sH?@=5HvS?oz~d1;B)fy)!3G#=oNux~EN_;b4N-nT-j z7=%NZQ-`VY7rF7fRB7CMBA_<`uL{K!#ZVnq$!0exY+S(mgK%mSQrj$xfRBIP#QpZ?Q53(oM(akc0l%w^^iYnongn2d_dV=$ixJ@Ezi8=No9;3z=xUX` z*14!)25~kt<5F($)^JA0n$Z$5P|7Wgl#AsqV=#(fy1Vl>yMDw6h^(rQOLg0U;$fLT zW+o_oulGS%UfRc>dR+Ts;0NCuTj6Q z{#+v->To)cH?Y=mEb?DK^RBwTnp|;2>poH&7qm}1Lu6DH zk<0wax~A!cHKSRZndCcxqp8EhvKTR*+y@Re-A?qDCh(c9zBelyM_Z1w&Z-|T<{hOE zN|y>g9>~sI@gT<9uIC?fVAsx(o}(f!-v(1)7hNbl*EIb%ZpPS(AC1OSRNdA|ScG?e zUV_Okr$9>y{Ws)t#N)%i>BV&JT5Z&cpN;mTxTCSvOSK^G!RH(qv>XTBkCwy@2u$Ml zA3KdFZ{+sHS4CSNhEJi_+ox7a4wM=;8%RP7FuiU(JcC$-C&8Yll5&NYP`f{g)71+el7y%ZBzQ*-iG7{^gNmf>5DG4s1yAtqPjkIlmm6P z@1>RPKBM*T663M4p(_0T#}bS3aK|Cm5TVq3@|=$iLdjkd;T>JE*qS6W_Mzw+=J`T$ ze^_ROC5!!7G~Y{|z$-9&CUA?5iano8;Goiur)B){WASZaD=I!2bp97A{>I;pS6AhR zlr_(UL#13fzt#eErlY5#0!f5Lh4+4)4J*D)tE#TY*geSvpkmNx6d;guC5Nzy4HERI z)zs$MvujBJ{0ygS#lDbYQV?di^=vrX)FWLQmeODniHu z*!+gF zrSJ32J0E##=!r^pbKlXTPAR|p)=-nXYwz-XOxxP*oJsB=02tTt|D=TQ3u8Qq&I75& zvCP>R%}=QU`9+KP-}O=>ieK6{%I>=fw)U$-sYmiOXQbex*Q_R)z&c8WW#47rSmQbY zB06Z-P~2{Rh6ytF2VvNi%6vm`J1GSHSL)dg;>lsAyEv$Hv;9#DOMLdoFWh%@o1jHs z1VXI^?@13pfpod%hplgAi1-`U2K7(=V~D@8|5sz7N914;Nyp*Hi3z9~SAe~=6OedE zlp2t{R47K?ygus98+T<- zU5oY(&(}3%dN-04;B&rdMl&M$HJf`aaYF@ORHA+MyIB;+nPz$+>s{?!Ys5BQSg2^Y z9FeiEs(yk$KK*5>!hm421lN4<4GyS%!0?ihz~vE``BGz1z45aJ4!Ccx1B5V)gv>Uq7p+Jh1~e+*899`c@qBwE zD`lM-F7vIfvr_WRyuRsPXfpDjsfoa)T&}m8M7Vlu?<|1(euM*3OJ8Kjkw~yN5;3WQ?1A*a!z^ ztkkdF9)yb&BWH+7jo;7k2gJ{^T`-;Z2?NcnzyD#}t|D$YA{6+dD=3n#;5(5;qLKa1 z=Ofi(^QIR?ULra~55RLmk(4WrzU&^YX3n-xIpL!eYsz`rB=CC)9lHLhAZ{0%r5T7& z?sC|h;}fhPS&7N0x2wL$v{C_!Nr-mPas29osAH4AjEJ3Pd+S>rd_VSqTmVD7nn-(! z`Pb~Fz-OH=OD|M!hoHhwa^3qW?*G~b<4$dKJBWbiu<#{4KBom-=irM@v3nZ*TmW28 z*(;@=`-u`N_I$2X19U^GxwKPE3{w*<+|tQvUP<)~ z)rh6q>}2ecOzZh!_$D>sKDAEC+PJYws=%A*BS!73xX$c&%@u4(AP7&soMc%(OtHTw zyb7%Z=#xF=;^+h*mC5$H?BPz)Q&hN|+u@TG=Bv3$nvS~!skh357uE49R?>DvEt0?0_4MhI>)vTc7>u)>{ z*Uf8!F62BScU z-|Nkd$Hc_o#GakiBhUj!sRNP^_iyE{+l{(yjQsZ4{7y#cGSRlH&bC}PM`&(6!PPM8 z?_1heh_Dz`H1rZVak!UzK;-iNqcI~@x;c#xz5Lg?2@j}%xgTXpI09YQ1@Wz%NSo3> z24com9sevOT?)<7TcIIDa>4KO-|bH}quDB17ms@@kZKI`taI(<-X>|<8n=Mgf%WAU z;l<^}Az#C894I^*yAlPZ3}5S6HGxD_h$nW^Cey0ypqrhJG1= zD&8xn6(pX8Hy}B0|L|t<-T_mMUq;C2 zkJ*WiHbh7!4p@!yj%GHvoLP?G)0gI=J!0)g zV4Hn>anNz~)c@k|^U=#KB=Eev{ThsIitC&_W2#d8K7KOrK*a;WON@mz{eYN2%Dn{O|E-+p$Pk6<&{qRgcVvzF#iv8u+W&3RN|YV&7|&9q77KVfDVry6Fz@<>-x)#xHOThuqiYE5yV9NB4q& z1+j}=p^{#;f&&Y|%>SZX^5>X)xo8~KO(!%dG+!k@EizN6j)wbAbmR*(zAMz{*aAy3S3W(?gVQxnos{xcKByNED9gzw7d*!>;6O3sOf3LCMQL~HNNp=W6 zcG>|i&u1ML-4Dx7OHKh-3hll&*kd~Z%d7sF)L!WO-`-;D&?ReS>R`quhtYjOXl}c3 ziaT||e!qZ^UZwpyD%K*gBB6x$H)7}xr~qKB_TlJAC|5(QK;cJB!W>UwuQg>g0E)jRi?UN2f{l+FMC%z_B8!|6tRvRHAcL&GA-d@jD$^q*& zByvztCa4LfG7VwwD9b|MfTpa>0ONetC1u}4HWpLxq?a6~_rg>t?nOS1Ynr+?7^P(8 zd?9q=>2sGr`+@>RR6JC26l2z|h4&Oq73IjW!~h%RO(Ap-mowDl^u#f=Xz+ww8ffM} zp!|%~xJBIMT%$@TNfSL3hhJMsOah$_14>Qtg*dg`t&Dh$#5|ayPMJDaFV{C21qH)k zUaBG~ik|#g+({#s^ZT+CWaVH0%idVG?jipC>iO9KF78Ep=Wo>fYC;PG4Y_*P1wiZBw5ftOUy z)iAqqw?}+v+tWmQ^YJQQ)zSbRYlU6=97LkCO7Jm_xbA1MBc;qmDtpjr9mSj}c3|#7 zkj7=Nmxrp41PoDlzX@sa7`)fB(tr_g(Q>I=rL$+O4R=qITVP zu*9ddm-|V0%sou$x*Ru0&r!5R<;QQ1#hFW<%xs;naUCah2=)TqR^RZyuMbnlcOZk6 zT2c5hCnS=^ou8I+nSr0l_9I(S)+a$Nf!;y)dpXZlf#vJL zm#ay-w!t)BkyBj1ZKa2roDP#~s{s;KZ>x#@NUq3@lG*5*@yNHS>Gi1*M1AH#P0b50mnKFVQVKObFc4BSGTpeul?Y+-Eb0{}xc`ibY|@bRf*S zxI39Ua&*Dc#(tyC%vjW{ zH!FF^2(@Xl5+?18#Df`@0M)sPKUm!MyRDe}LUuP4CrcdbL8jf0^TpRA#hEQxB}>=u zES#0sf0}F{weJ7*KkBB+HEcYq())|{x`)IU-;Y3Y8ZBJ6CJ}U?g;B};ec3e&af+#X zYbrGQ>E$?U#EVSJbJuC&#~T4~J%4mYp=#<$-NR)~t=v#KJI4uyr|8aU_?V>Mo<`0V zyVnbMp(AC^T0`XpRja;d=@&Y=UyO-_QmQ}E@XV<9o&#>A%n>oDxB+C0&!Ye}&E~+{ z(@R5X|FhkIl`YAhW;^k5Rxn0`BiezsRh$xm#D03`{idvti#z5r(K^r%-cgX)+}9#B z^A05b!1+;|Z1IQqRT8}x|LC$vB>Pl>(rhlpiRbUe`wWTRlI{n^4DLcCjAt|~fsS@N zc~({vuTSSqn{TpT(BhD^;}?mWDV8FL;s1=mZU0)Qb9gvc)Oy!U?fFU|Jsys7OGuh% z?Gl!U-YMRf;*n2;oX2hpwE#>a`QxVzn-VR+8wSi*6DR!K$7e%oGG;MfNzSzQ<~KR) z9_2%X_|>_7L*2Q?=M$84#`tvHG(I%NhEY@crJ$bUUz24CB_y(i3;}wClG3k;zYM!S z^h!x8a`3DamSvEW;2|o~&`8>CN@DOZY@WGgJZqwT4?ofLEdo?TCwAhV78<%-72AP9 z5hA4@jjP^1WS29=*S0-khYWV2O{cZ-UBC?rbv+v38R>g2YhL>}>u`{5sQ+hibApu8 zOSjysE=#knedl#}!^>YjEnC}Y1?fQZ-XjEL+9{%7fUC?*o&*6p(oedFX>1Daqn+SC z4m*`w#W|L81;OS(5X}87x(p{fi#VxAF3-c^K%t;r^z6~0V=^p3(V)W;4(NP;y^i4q zinypTTStFX>q(3OrZ|I?$8?AuA&`mWQox@Z>w4vSdI>b4#zWul4zz(1iZAkTtZ8!m zY?G-Ybi;o@7(hY@&by4UD!DY;IUJ4Vvp;&CJE!>PIW{%#gZX$Ux~CWx zxaH6jSs|T(v%_=m5dkW=LY)@OxpKbzHn2s1q?{j$*leEfD_}sKUClpZ8qQ@L&chVx zBz(C1&Bxk$De(ta_9X+XBxqtnl-ul2SobhOk`*A^$oOkhU#Ompdo$;v3y;>=gJAlD zM)hE{2U4Bf>VXE%6N=6tt20|~qg1hOjWXA3E)3s*JsL*eTg<4e*F$e+8}eN$_TTGN^gU+0rk@axC3bZ6fi-^> zb<bG)w?f2 z(!s)8LH1}0Aj{<`-R)Z%y#EMIH9660@47m5^YQf<=ncgv0K<8MPB$J93j-CS&D+}$H zbaYHEtYlfmDmD5;_hK|~_36twJg3McGE_4h;<8VP*FLfxAHfk(Ea5YAam+$1oMF&Z z?nMcJjhf`N&K3g9bptAl=or}pepK-c^h?ZvbkOSuwQ~mq>*aZOT8*f_wg^A+sNf+% z*}}z5@ZtY+P=Fb@{KY$MW&~W>J>>9xcBmDZ=$^k@hpv3)4>F0C#=~F5EAmY9oFUmVl2hz({z9O=0<1HD}83Yu%S{8x5X@N;b>SS@Ud7VxwIi7_k5>dt4guRs!YM zi(=eDn^6 z_%L!Qfjl1G8RS5W?bHJSh3U6`-mPk;C4KSR^UcL(y{AtKk>BJoa%*D)wlU@tYX@wx z&;AOu`~M3LaK8Hd@BlKkPZ)@ zLQGjpajRRD0lwJvKTjw}*sHGx@R%12Xrn~)Me1~J#>gN-d)*bON=<34%6N4~78aAa zufGv1EeilsX50jx&UMxm%WzTUO@tKIR5na{rXLQBNaoy2A}vCs5?m{$us^4;BIUCA ze7VpcaK$d1Mk4xvUKvtpUTB1{u%h<)HCqdV^*rCLEldu9iDl?hute529p54`$;u$$ zCq<t7$1E@j4Ab`RsfoIhzh48veI+e!f=uPmJz3AsiRfwHfG4M5LbS zT^`Si1fKVQ-vwH5nlZ$~u&_YA6~OTx!o8bAN6)I^6cPa~o5aTLKcc#uLmI*MO-bv- z{yd~fJFdGNZPS?9>X!S%2h8$6y>ndhRPPAIZ56nTT@MRdsSOaH3HRRKJK+nzTtbeF{)K-2mv_cly$h$E6EklG6ua_$-;- zy+(nSMK!=p<5Lr9@ktiVC9WA@`m~tiPlF3%C~hs7>^~HeZGwrU(C)2`=hwa)DKarZ z23M!4;|ra?<9Vfg#Nr*oWV2*>*@%ZbEmWL=NszHNvAkr8UHY$W;96#}nLYS5u$H`t z4xj5Xb)REEpj`2^*(Sdxf0Il^`S5xDV#o19Fh#r5`8+}3an{mWLFMbM9g8SETeFU+ z%{vVRWh37Plo9MAj)T6g?h~9UTkdxb85G^(P8sjczopmQrnf-pNeV+7E^A~7lmtms z3g(@f#4A{?n8xCE|8CyjsL)RFL;)!n{cwiUn<}omfBU}9{Y;MTbIHdV1nL+L6!6wf zXPx+)xOT9U!^5f5vz{qoP6P4e_=1Tk;htVtTe{yT{q-V^$d7E$dXySH1H?zfM|Q+( zkZjt?VK7hs5e_Xs4Ey`8Oa?K)GUG~XzC+GJ6KNmJ-3>ecT}iWjr9H6y8o*ISQ$))h z!MT@hN&Nm>Yx$ZJ%b?5apvd6<5oFliT*2NI}XX1F2ex`~TQ zZ#BTqn{cza6+v;hc^PFR6tJ1w`Fz3jFgu@9|3u((DZazXzEFnveRRw4QliPa|HqqZ zE73N+DZ4kBeXWkNapyT*Sn$#9eB=@7kEdb)z@H-f>7#l;U5G6HuTU7D_srgO-e!6; z@Uq1Z9c3`qf5aHSNpreQsB!}?l5!?K)@SkFc*lJPBVEwQjDVEY$%RBQA2sd&d8?7@ zhJCOv%kf;q>Q9>BsbvXtnF8?ULeh04(zl1w?Wuk$ASt&ljV}&No-UygcLR@ISf3xJ zz8|ejD*fuiFg9d^ML*LuD-u1VFf;-%JkjFtuGuc{`H*zqz-iO+^5K~MLoo>M=#*&* zVX)ZrBnC>~4{y^w3C?9ATr!n=4u%?hdzbJ|%dIerMLvxUV$j3M6>;1mmR0=n!B)f+ z#^W3aJ*zG@%Q{51yD6c#^^@#!!>%E8&D(lO&BKT#I71o}V@KOENpE>4l%d9b@6KhpVmF4lrTS`uK%DWovz7Kh9 z$~IP}WYsS2)O`|bh}~|w10RHEQEw=>29BZsspIkZ&f*TC+x~r zW;Ab(?6y1!ileJK7H*oM4cgzfmj@W}$NcJJIZe)8>iuQ^SWwz5exBh~ zn}}fidLX(3lJuzhTg)nyp%!zrE|VxePYZTSiQ=??D^`_%!wOB?0Jn_6Kv!N50pB4T zU`!$`f5h55Z&EvGhQ@MT9CRV#ce2>$X-yWtv)fTA+-3I<_f!WZUJt?fn;=EYenGE9 z2s|J@mjX;um2-gy`dk+NmZp*EtuZOh_bq3#*120cKzK+hH~s?=df{Uinq}_Kj>IcG z*7sFXbm6Aq0U>|u*w}fG2eD0s*Zu8Zybto8j_>P4ENe%69Y~aGkpsMIRArEyHM2`e zgdsvYAQ9wa4-)if)PADdlRRx?U;JOcKBA|wzT+bcCa3j0BurpYGG$X_qEaV7)DZT+ zB4^~V5utR4-Lr4ab#{zPL;^R3kNgz-yI8WkTHnz<5YVHnj_ZqY7rO7RW3I;&U4*1! z_kSFOq<$sC7c`J+~ar4ZPV&Ips@7$`miGT3FzL%M#RY3F|+ zjOa$NCf1H7x7lwV?rF1I`cZ0ge#{p)CI!!GuthA3qp5-|c zB7%xJAB6g&Dg7~F?fh&9eII8bd)gf9+r3-Dl1eOZ<0Ua0q*Ur%6j8T+V|cjK znUICG(1%*ny?CwTEP!>w_#mO*VW}^jzV`Dhc?4=5jVbSb1S^KQrv*H68`vY`)!K z|GZ%fyU5&I>=YVydxM0>;HTP^h<2O&C&kwcpIaqIzE0N4X!m!!KO$;})y%v_?zx{H z>o0Gz6h>N}Z)Y|R@BGztuLjzp<1^KMs8_?`s<(_HBs@P$=Mqd-F=e$;(J zb&rR>TamA^+DiLK0`>eeHvbR_^f|x)tGSm*(>o1h%nI`r0VZtiXAURRMJB~9YNE-yU z2kl#zYLEC%m)pgjhS%uU{tdKttWM@M3BTiH4$~ec7!xi}-#tbwz3N>JIit^0%LuD< zt~Nd-AP(WcXgrSbv24_)^V&$_dM{x9=cfBc$6EcTy;1J#8chOT1bHH7qkQQRoSH=K zZ2?3T7J1*wr3PxSUE<(dpkQ%AIM-{jW@T&J9kEyMt+ zh0Bg=Tw`+<1cuvp)A;ez?6P|XTq*8!5#Cy|haX!mo+t2aKXJTe3!Z-r_MAekLwGf- z@@*EO=gB8x*-<5h2sFB?PWWok zwiNs$-~b*zh(17_W)x>Y79N>czzetES+7UC|4E*RVVEL4aosS#WQUVH*Rd{bvJ`Wp zwgm#A?gpR#wAy8X0#-VxMDK$gzHvB4EEn*wOBK0q8DSZ2sbXZ^OmvooC-nIbIFg8* z(k@rg5wqViga!+?OkEH)G^`bg7nqnZ_Wcg!Xu6*VU+x z=^14WlXmSremA;yPat)*%?PnTt5>I7obd2G9hSj)5%&ub`pH4n4PPRT$H&vDPw0f_ zd2v*kX%omHEZ>{WIob`1US{|A*zU)@9hZt&A`<=uK5R}TJ?-fI7tV2v^x*HA=*$>K zx0yzasZhWV#eBhUPzow?^a)}iguki8EV{4sjLzObYrhq_r2IY%T4?ggG1QwGYHgG? zDr5PEEz28azm4#}>5=UoN6)A)Sx)v3Z@U3~UgxWwXv{xlw$^%j;|YS*diFsn0Y~_6 z;FimeZ}9gbtF%=BKCH)qSbB|iJ&051yf*%l&FB2~#*Ws$K-i}|mY44`l*~In4UzWCb{^fGhW;t1- zfVQ>B0*J-!3S-cXD8q(-zV2p&u}min$>ly-%=TE{DaY>QU2L_Eggvw{vbj(~)|yio z;TvL7*S|rh1xo*yo0H+`e9yBr5i|-8gEn)guDhbnr)wczF+L|WE6bH-)r9z$N+);n zdfCA%!#oq!qS;3Kt7yk9RtyKkX4sZF@i1{!nDd6@82L%T#}tsZeLcTffW*M>kg8gElqjh{Sel{;-5SqWGWrc>HP93nu~p@NB#c(;VZVHlSIC*?woW)Yx;=GF#wGp zSXaYcq~19c5Dk0KT>oLupQski?GE2-@beS8Wh=-qA_2aZ-}E$cB^G0H#5}WrJ3uD| zvE^va{P3BGcp62Cyud8)Jvq(1-$(=k54&<`$3_810;cDb&9a*z5k^?b)!P+OnAVX9 z&Q`R)cqqn1QgBbOVs9{*MbGEs?>P=;&_2x7dQEGvG9kxZ(q+(b9Q@8SyD#ed@aA18 z?1F-(Vf>Q`DT&hZR^h7{GsF6qCqA*-oIec2=cCP|9~y0ceRMDp)3^C~V2vo=ZEZa1 zjh>Qg6}jNeO+L>H@{(Jg76} zCaX4Rw+y<|37%z&wpDXrla$BIT%+& zzHpRn=`=9l$|kTp?Ux6#fZi z*Bq=?uKY*P&8nXH9h;(TZx>6RixcP#=xcs!PyQ-d=S|sdn^z&0Y&MqRwC4Kop!OSh zvt^6&vq!ET4UDvnsLqQ54%*{8et-|C$CDvww{)WdL1=)#BSrO6Xau^L$~Q)t-q*?> zB8i;%@{rMH2~JCYZ?q=uewNNOb_DtU-Sl@?q^_R~c%Y(nC~hohgSZ3Rpvkqj|fP#z@t>foEoT^ots6CbKuzp7sL z+0~b!HA|6@mbxDtvpsKvD>=YadK%g=sC)u z&3#O?Tdh$}4yE0J0X-nm4Ht%J*vuL)du-m}6kb-xf^*BYY5f|NPOpRt%O0~v6Y$Os zRy_hN&+$P(HdBepIj8Yf6L{N14+crKZy2F@LlID1K|_RyiGUQIhJTvh7gF$J@Rvf0 zkmp5zOXvNJ%fl|8;_`vj_2Tv$DOI_*)OrD|d;HQBw^R78EyNA=+6L()r}OF565qW1MMzt&BxlpsS z3Wi!`1|F2LMu>yMZ2|?{KJ?)V-8?PIeek>}yI)R_+p<1h$a7;;#P2Lr&+~kSru|>S z6f3!K*Vsasxch>pH+J~X5#!?bI}VXk;%>Qf$x@+4f)S&2mTrP664~j?-Ye(ZW}Apf^$aEBF8UU4qg=lobAz&oa880oSpqA2LYL_;rEpa0Wv|l z)>^=AKv%J14g&CU+Kmg`ZuH3?&K~0tH0BsRkO7Zq*IGeW^Pa{pvESmAa(@9}mQV3> zgb4;{_jspqd?a$w!y9jOa%WlJk=mi4LNg{LyvVK-#vio;RP;SoR0{ z>%+AJ9j+xn3Zc6mfYg-%-dO2a0RI%B&6JddkHn|HX~Y18a{1pRS%cW)nv-6a@A~NP zAzmDBzL8(S1GPUD$QG@jhB%~r`R^HVz%tqEIA9tsA8@th{Kf|*bjY{mjI}8~WC)V> zb`D^P*_SKDLlp0AQfny%T4YJpUcswzG0Ah}a}ufXTJN@h@xKc;@crCj3(@jnPa8r{ z?X5-)8({IrB-ZTBbd@rMBEkxF(U@kp82dax%9`)Ykh@s)L*x3IXxoONSwG)V)HTJ0 z1l7aWggYYXP{oslHUh`5_N_A$h;8R4Qn!G1ZtMT8epn+X=Btz>JnD3)5fIQ}ezF&%?Q zRAmney;UE6T&9n+FE7$ap>-OG28}9Gh!_vy#4ek^p89EIT>a5Nq%!-Sza7rdQi^hSTxCZf0|YYw{>2> zXQIWxUQ4>H?%}cDbDUcC{NkuSm@@#H*K2DxMuDogH&gcuL?iE)wmj~dT@PPyUn5ALE@cs{zydJC;15acMXz0@A9Qj=1-$Is6MGs)j*{G&=ADMmQhBPtbeaYIbP* zavi}C&hlOT5PFQusG;98_}fOJ-X~o04hbQ|AcPX`uvaz&$F6^ z&UPtjs#2cxwn}!mba-(hTU540t@&2}9XnE>S9(K>_g?MOW%66kgC+8I_dEKSpPM49 zCMI%_Gn`teR!#Vh;Ppol5>FozI}@38EhK0I6O9}5D!NDK9q6*`!5aJ5mJ6@wSD`w( zrBv2JHH40(4WS0wZ!91100D?MIfqe=vypsL0>gx`;d2ZYZr0qn>!9Lq_2a9(xaIEW z)cNC`y@>^WPM^Bp79CGK(>>63LNBF2S#-nW8(lrul@hbA}Im1CP>3 zFHxv`T!`A4Ay(@>}0w4pcl>WiI?80o>k;MTM>8v>s*i*|C?b;v`1?}WQ#uJt%l2?4N6 z^=2OIdVw^#$+QGP>R2(XOH-sAM0ykh!0V027Xf3l#1#u=zMm678^oAuX8b#f3k$dD zeg~MqJbR{EI`)9}cdZKEMn*jO7r`5Xoj*Sq!ql7Z(z9;&&6pt_!iuYAyx@G24%P50 zOfwF=AwPTjjDJnP*;yCA={27`DLE}DiM83zQ_eZmhN5}<4AvE5Kp-I+TIf-~2A-(1 zF@$?Oaz8?H%%WeV>x7d+xOLv|*04pflRbizG5@&iCpQ6V>nOrU`i7IYhjknrY&uw| zD5NaDZZc5eJYD9(=#$I}JW{h*6t0_PH>5iH>^~XF03U9v3G6wPuZc8L|z!#QLbYdL81GA~waQ#zRGy@2|=Pw|L&jZw|(+CO#zm$L;# zP4*&h0-t~MT^~nDdhXu7+k_BTYUmA4rA^c2#ZJXj-?Es$3fITxyk*0VlwbEye9Az# zu4^fj=pByM=eT@0ZQXM_ERiEXB_;o5H+&}Uh9k18Q=&%2uLim{zNVlOh1^i*K4Pl$ zxDm0$Qr5^^g*@$u>DN#OxelFHLhN?Lk->5=Q*6LbgJg$|G)7X7pFjZ43Y@%xiR_Q) zUC}YuG!LF7o`q3|{(}L@e2}suhf6*;Vd5tu8o<92)_Zfb)R1LJmyWBr5*BX|^&zw1 zOEW#!;1I0^?_}}+N<0mmfHV6ILnQgQ*V`8UahVc{q1z6>V9IfWL$6L zc`oNYUfQjEegQqG!5>?uD@Yr+CeEY*gugGPK^X(+{(Jas{`c^MbC<&H1wSH$uCehy zMd&mxORW65GStRRT-+sr2&cE+ZakTRd5HfKZ4dLI=P(8btYyDwDC+n3`S#|S0D2=L z4tw}sI$6(eNrbCsidQacy72vrRC#P_)Q~}sTJyF`@T?(LjRv&2`NW}2{8RBDi-F65 zcshH-144NOXdqtmI$<26VI*JEghV~2*UVacY_vTE4~q>U#+#HF(_)OEUhh2JNkq3P zhL2+DA??idXXD#?Y`ro`f0N#eLKoqDJI7Ng@NS53QmNk6J$34^jNvfiK~m3pFeSs1 zz~ZfBhtFqQezjGT;*dNaLOzS}yqyF3KLlfh=IR{f20)+?7P7jX>N!u~<>TgA~6$aonSnNqObIMyWS z2|&4*ZyQ)StZiOX`cCw*4-8#Iz`A~;Y}>F$K|u4QiLHBPHvX~EGx5D)_*d}jS^2|b zl+lwc&VqGZ$Ho3+ZZdtI!$p>b(EHTB{Fjo>`wJT(H`}i*>jd5bd$3~}-u|=G1U|GU zsm-NfKSR!$MuA9N5yj$R&n5TBR;)J2P)6}_Bz51WkGBq4^(hmqcbtB$7uA<9J|%5~nq7Fkh! zb5o|(>_HU>RE9uH?>|Q5p}dRag{T%jh&Ksg+Zi*vlV-60%8ZEEwhFoP z!%cp4e4=WTfrplLoJ@Yy8e3*d%L!F&g}d+$p6~sQmE)^7V1&YUk@swVdA$u~q~h02 zj)fCPO(k!LmZJZMv~>UPq?M~x`hNq{6IF4y@lAvSBrdWdPnEXVS3B+YVHjLelJXyk(s2LAJJt?YWOY%z;TvL8(tn^IP!a=Eh_ zyFC0&CAb%4?5S8yrW#nt40QcvAaiVf3}xnJ^h~{oG*#Jk6Lkt`RkvePE=_7;)m8D5 zIfDcqiZ4r1o35KsC}k~6a=w%|hjy1l3xW7w&%hN5ygyILlV=Nll!kS3IYB146x9o+ z4&%0LY-OK+qW~~`_uT?H`~St-TQPc&?(S~EH9&B;#)3P6;2uH< z?(V^YySrQC1f71)J7;R9rsmsx=;}YvtM|UvUXq5z7|ok&rmlICT1F6zwJysdh&YsL zhkag$^~-!~##<^*?%c8b0pnRCPA|qA)576H%3<3)s-}vWn@}C#tSrVpgMA|_;I9y& zf65hl;!DEzLi%3$PW#I9crmr(<`moScEINJChDaz2*ot7wSn-5>U+v!QX%_v#D)m% zBxdC6cfL~9sz>Uz7{q4=c=DOE$ovBz!{FCng2iy)3bF|n$SU0yzxM9qx+>8^V!|1_ z@1IYT$HrI}r#ZXW^CQJpnQQ){PNomwba8or!`V>pg4SP$USDAWJ~!5!Vd^BrW?FK{ zD?;-GD8zniB{srjn*g?O!f^xsY=;m_*0?Ji;lQOd!(%7VS>=#hvS5|$UJG;U?qo)7 zr#)Bku_UGP-?=ud=Js{D))dQ_f3MV2Dtr?hg z9uaCk>Hi03aD*BJPHz7JdIn5_HlJR)3r{o{qyQ@A9&LyKvWg&-fljg%e;xVd83DVl?nU!w{q=tI&2#NF-5$ZM8B7R zFPgV)BG%{>{O8M0l24x_w!H~%AMMqhQm%f9CiEZ!6PuSgN%ytgrppuNiptNuc%7Ep z-Pm>0^=pCk<`hP+y@8KCcu$ZS`#W10FiF+9lIP!h<^p@p-{%=gQ?2kQxM>A)PKzIS zaPc>A5miX_ec(%4XxPBoi*b7Pa{^?pB@H3pKj?!V81Bf~Yti)9S;^+GL^t z6`yB8Lcg=>QEJgpa)VKBLH67l-EoRWr!LQRW(E^Y+4GkJqm z$r^sJ*D&Zo*VG1O1@veuE^Gq-O`8Okv&Z%6=I?Q_$_n%bl zr#%;aQ+o4M1{&9tOq}Y9(z~e!!3=*s#TGjX5zSvvq?CRbf|+yQ03qx}UC^9ayS$FY z-}Kb~TK*k%_QNY8qC;WRljsR0{XdP(9uyP**CnwE!(nPD3*W~tOSePl(1Sz!%arH+ zNxAB^VF&IfzwbPYr|F+WhmN3>hLE?w@BS-K(Tn6wC;$ z!-_4K7IbL%Eg65nzoZDf5QPmy1%hn(@sF7pixJja^@Ymau1pcaQf0s7EcT-VmCP|5 zX>JO9zg@Tjg+_?oXd|Ffphnu`&MWI{5zHZ)jqk=8161JGN zb9(fgsNhnJ^4ZsKeL%Q>c3K*_Y?xv&0ksqFp!Bl_0+mI!4&QlWpY!iz%eqt) zS&(eRI-^cH6LNLL?TF`|?TN8ZOFKW?>HP+vLNL||8sQd`}k zJ|@fiIXxSfcA(?@6KHntSo|ZTq`k8oC(3&Y(_Ua~+R4(Xa>rmajX)RjY}|NE)h&n` zYmM8LD__c-yY>1T=6hZr{vM17Pr&5#Ci}yIcQ`0+;90U93gxp!)>v*j>X&a0IK2P6yGJ23h&XoKEx-NB`=^%1nPMkG z1;tP5w>ohT`E^jMFti%i&fz~=!!EI|HGbCT)2Dxj&r$!eAou-`bBNso_D$(`gm1rc zOZe3SiTcylV|G#RQIeVIVPfGt4hd9ott+WkZN zfQskzHCF{Yh@m7^F%n88{)*`!-l_H5BP9PZGcRqxQ>& zzh(%iQ|40#+<8W8{Ejd@FL_Gy;(1}FNq_gCs^{zCY@Q2l{PTEvz3+08O(3uFyFZ7i z#5bOEL0&MIu>Gn@GPL2Fs9jeWYCkgp5q= z3vM^77~#eJINW=aL|*dEif{botgAJi9g@tD-yN^hW>0$y6Dw>Tui0eFCYNgT9=!!z zdl{I`zlK@kNKpK?%$y;UcWN}#;x`A6k>l{8_DXhG5i4bwyGhc|sE=uI{bYHoI4cHN z-#~h-xu;=oYR#FX`L@{l>5Mr23AxoRC222fqOUP8XR0FAOuXfdk%EB;7cWXa#BCKo zA}p;v%)H7N41{^pl}vS)HYQg=#eiLFM_d-*+j3&J^gNPGb^c|-BIi{om4ddaNuL@! z%BgVeSEw~v6N&k^CD)w#ru75-+Ds*f6hCD7Tr6)nRw!$rf!0L;w&Enldy@^juA{HG z-{r}x>n{4`s{G)zo3I*kWdXj>NBpX|E(;TN`8bZJhpUw$#Fe5eAlraPYxlkWy;L+U z;mrv~sWeeGRdd*Sw`29kgC4=0t3$@!xqh%Hftt>ll8UMsHFs7{PLnL=0qJvP)n-Q= zRSXJme-$IA&mWUZnx4-!+JDylOB_-VF_$GuEuCIp;Gd?Rnt<+0-#meSwf9*+Fdls{ zo<>IhP+>w?0oIm^87PGCK%3lp`N!d^7 z&1FRd4X@+y78Nja8+>)2V`;$oQ<%y%Ps7~dLM0?wDz%aJ;Ulw~EBVenSe%=-%2AEQ zq|i@QqQu1Gy$Es!4Oa$qVB^d}7uex#Cbu-}jpflDwPXJu#%2bzc%qRQbk5X}FT!{= zIy*a$q=u?QDu!1AGbK!E##Jx346OvFh#if;4`|eIry5>8tBzUnN`~#9&$IA@kER=~ zrqGxYAL0a%DTFg_$LHTA7N@CEg-ExuVcVbhnCoKE6EDQjIOAULJ)l!W!&G1qzT)^J zb}U10lyN3a8&He#N{z+fX%DE~3`SBEn)A>{vAl8uKmdB0Ee0Y;ZQA_UF<#!~sN5#+ zer3X&9BtNIoj`|f-|_5vOZPDTdY>c9@5NrXHhnlSY$|M`245r(*i4oq243Q0%_QZY z3va(+W8r|s*9X5Yi;TUtG#WS*Tk1={6`g*j7M3Q>U_FsXXAJP(4wmDEY+`32zOK)2TOKz;6Y?@IaUDd;s4iy;BV z=<*BM3Zi{jI)KCiI@Ly|&;VkYYbW!}J$WHvj!k;0$?&jqU)z6WdH)GTl@P4Oy@YKc zyTJfAj=)&dx|wiv3MYKPb~2A2X^)KuVt*mzrYd@Y@=1aZV9{ErvyIIdudt}t%#S=C?y=B)`xpnLS3Wd)ag?W0JoEU&tElQ{bpKb!`)GQmv?zYUbB)h{WY(y$cXO4g51~ z)cDkoaka>r``4QZ^|=Zp5`(ZLM()EsHP|~+c);-S+|qKzdvAe&d7NZ$>k@5o zx7|{7w|XQAZ0QU2z&GshtE|3YTrMRM-%6)ok0*%jBau%l^Bic(ad&%U`H??myT6ry zm%pJufWv=(66;Z^|Nd+HDjm`~VaKVoVnYQt%*~F2Nu8 zfPG=tPFMF$JH=Q*WslMbTiR`p)w*@WwKo7=Fu;A?MiW zUWAsej4dke#~g+42Dv=_N{3LNpX&2p{@6cT-00<7iteIO3^Y~;_B4E9$v;ltjd&NC z@f~61R!7n0p$p1Ox|?7E&%@;wPW4#m;CxEjAnw)j{ zF}akfnxw;Z)}E2#iFJ!s`XTztF=zS2H(CC#4P`?1qYNcMDGM%4h?8mMpuqIslZ14$ z@Wy}6X=3jEb8`mZ;7L7!PGZ0`r2_ux&k^+<-Nut601@nm2?EsUD2X-^^2Z3o!$dM- z`U&H)^$4cc5U?t?3qG+DIQqN(rKKGdHj>8{(~8z6#PB&ksghK(c?-QHoV`nLY!1A7 zqF@`TIO}hU21T*c7uB+KnH1HyM zjq;T%y)hEi2WMiZ?Bxkb`hC7UN5)=8MKwNbUgRehQp0XxiD3fBfK{-xNw>zcZF*@< zdoUgbXhP52N9z8YDh|daJ_(hqt`C^Nm#yORg+3?@pRu8+dFJ%|rBV$CNYzq#14iL* zW&?awR1*$PcQ0R<6Ma@YZ;y!tgFbgDr@^>n)#=dfDz|m+1}Fx9?DkAb7aEB=!kA3k zYp0nm-!LZ z<(HNppPKzgMLJyvMOs`(D~-DnSdk*AHVrR3;Tzu_7+I94e(C-#aYk<>^PyOdutQQ+ zVRE}S=>yNYfPQ;z9ld~VxCs8=({niG^h$qCy8&|>S8CPol(b2fh%8~{uNl(#O6AVE zG&1}OQZ4yQ`)=^8J=H1ve-D!i{;OXB>kf*Z*z@LH}hCYq)7j5HL z;vH8orT(u{Xum7{1I>#X|!5GDly|v}O~`A51T8H5l7F`z*x_DPxBEel|{{Usx&xJ42R)?P&$Azc|91Fm+T~ z1sv!yEDa+88!e1?D(LG)ogyH)%n;Q8c7?J~1oEA#u!m;;gJE(RYDxLaEqk|U&!>3u z+g=mm)M9%&RT<1)pcBLJouQX{ztdr8n8bp@l?MCIXzqI>WL16a{}lKjBK_v_aR<8y({(j@!5h1(gaQ<(sB>)K+qMAYb}Txhf{yA_togzM;Imj=(OFO_DZMQQ;*O^};WqnjseHjyV}NvFT-nv5Kb zRuHzEv$2(qNk8413J@Q<`GU%B-cY~=PoR81cfoma|5bWbxfOI0&tKD=Eo1sCBwnU>_Wj2T5li(I zOf-W3-T-K@;2S3ChR^@*Dn9M_mteW%ao}a1U}SI7W`7nww^}@e^j^9v!$VHey_CF36~=jf&;ZfLeVL3Y4Q2i_cZJ%JVQ$@w zonhTlecscO>XOsjM3*j*M&iiUhRU3-&*Ix0Ne6H*DHD(G>T;~A*cHGc8s#F zvr)DNXO>-sHnbkYal&VngcY^_H`914F=Z&v2fVvd(%gI?j%%K3dC>a^nX# zs)s#3$q(0gTSJQu>+1@o?gy01 zRl`CoYx1&jGJT^=bw&(Je^2Yj{*LLD7&J=M*yad5o^bu13zoSlzf3xq)fRASFqr>b zZ&V!azh3n^U7&PP=7$(HuMu#(UogGQGTN{bs8HEL%44ypR%si4Rliq?p)YLGAUNvL z=6Rjl@jCA4w{u3~dDdZg_j-o6;xIcX>Xlwo_x)yzTrJo6R1hP}+wlj7NuF z`y8eKO|_lh8o%^le0XZGlQgB|Sf+I|Q_Hll*%+z+j()$ z_o_v-oe5%+=PEH>O@k1X$G?)OrIzd1TgaESCS;c{RK}8>BOINCm_8IZJ=WW#W%fUR zBUmJ)0w7?P2#wAD*rb7%>I8-CD#b}?mVfxFm4koUF<(!B?5Ve~i!Q7Ej#k@X@ zMr!T1^G3$?CTA<8Hxsr*3n)Q%va}8EM3bR^Wc{Y#c`)wS=6o6Qa&-_mEb{Vv?YZ5L zyt2AlzcZMyvf|WbmG{=cwrKKlt9v%IRm8*1J@!1*oVu!LWzWgx`Tb+)DtYDU<98yL z7%|IP%zw@mC0MfcM=rY_gVW6+I5}*>mL;gjyy0NYkv>BO3%bO-*x4i&n=-ai7N(lG zVqdllb;L`7_BduM&i3@4?BTRE%8IAJkfkW@lz@-Ci`^C_3*z(lZ>dQ+yBGlE<;2|F z0D^t{phT%ZB78keUj#$!9qWXADUf~bP9cLMISlDraE>PTh!;5y?_#DOo>w7{B`0+o z3RyySqK>O*3)|tnQGaHypY~@Uoa+}eCU_u{3#i6qX9{eBt_SnH9*2_85d^>mfs3U; zeBEn%#eFE}a%Q3&V8))2#^Gy^`Nd3$$--{#X77o(DE9gE!Skfam8+a-g#l zu$|}3lmnc_>h+2O9&;@+Ph*4GolUb9wg`^ ziusq!*W7<$U5u&fG~0MR*KWIe{Z%nLI$J;{$C3skUXFK;3Opg0&Q%kenl}h2mM1gK z0yp8tKdB*EGjQM;I)g;#chOBoMy9`p<2IazFGOU145XlZU55)nR7)@4$6QcG&36ko zCIQyEM{|^K7OPWaOHW5MRhI|z{FZY&{l`_v7*`6Of8c#qglK{Qry4Q!YEr;D6rL7Z zYC<(IRTM#nw6U5`3U0RebJOh#032X%A|Gu`{UZON`4yTrmy^nl=TP3W@bs$Xxu%Q7 z&vD`SVfq(7`(?@m2HaI|-L%!f5qcUOtUi?n?G-%dSm`eC zweV->>Hk+Gm``n{f3+ga(($e1R$5aB!=eCt3;WRJD-h0 z6JUi%WoOQ>tyZIgFFLQ%h|P?blba6)*;h3tWs=x=o2e%QlLAC#TzUL#3TBUu&IFS z1=b^AR4}-r%`;ShGbw2~0&g-fzu8xCu6O*Xn|kik6+#v42h|DXrKFt*y9812=bWp@ zd2Lw?XEpMa>7Xokfg?Xeq!(}TZ+P&Nhy64+%{Bu4@TztwWn@4XEajO@g&7mDNLj6u zn^9-vgTn4a>~xdO0)x@%^O75IMq$#ZyJ1`{=#}nZQ75ksK9`u|Iq~k zc(#RwVEZ(Frc5U>(qUO}SX_1Q85ec=Bl0?xu!t!P1)-pB!@up?xuj9+ihZHIYxsK| zJVMs|`Y4QBrs#JQxiU{I-V0Tn(Z$*j2fW2reLnO1W4F5wiq-0i&WGrZ%Y8vlH<(Gh zmIff{dZZ~q_U{t8@Hjpao-AwGqK^9y6O+Xnxj_b3$MPP zU}wuPYPs9%p>-M89kb>&Afo+80K!HKJdh!FL-j=mKE!vLK@+Da;@B8B96$R8AYY($8xxWqsS zmn`p%BiwS&`)tkWi2@&pRi=u@r=Z@}baAn&P{`N8t^d##4GxLJN0ww7OAncf zyV+}fM_x;Hs3MGlODMGYn@t&tG+Zdsl)N#X&t=y`If+wEs&4Tkv)C^rsKdknfh2WyaM8$rx0-dMin_bsV)Ii{%aCgrXjPRumd}P{$wGipyoTMcUhBe}W1OrS1 zOAc%c{2y1juDzpLGC>zOQ?d&K@C43a>APi4KHZ7+87{t zhD!MxJC~rUX7-TpeKDkZb)XLlJ6EX)YehKTZenag0(OO{n-grS7{ZT(CZ?_tg~FZi zX~$aXm`qzB86#-d_t9}>$U>{o)=C`l`iAllHS^fM!1z!WkMw$3%HY`%oy}S4>mI{X z{~nQ`=MB9t{qlAP4KSm9kH!jeVB(6C$d^j|h7U8WF9q|=x_ML%;W1d8EFAEQfqxq9 z@>?os~hXZd0QvjuqN#nW*!oOt>Jfyh)BDNgNe}*uqIq<(v+^j6!QW zhf3(?EtPKii@zdb-oNI`Xy0H0>%&g@%%4C=mA%Kbh|?=yaDOXBX4l%<^c3m$t@z!N zzgw^GyVkbkb)w)Gbb33sI5<1qiYDXdvYA8S=`oiK(4_Ps`?sZxX@Y{R1z_D_i7sXd z-3@d#&lJXj`rNY-wb+KzQg;MOetsluMzcF4YLW7xSB}9m2%98CK~)W@cLU#|8yXrn zS-H2MAg%u{Vr%a}P1PO32|oBtN0es1VRx0)nQq&~$O>hMkWx9xH(MBu_rt_oFdaA%!QZN*1TgqacKJV0fxhujDfXEaB#z^7tODJm6(BkLh? z`+}DD|2izcp}tp(_RPYfCtx$KpTLIQ`*#R4-aB&%z57&zLS=*nXWQf4M*<|D7~;#P zN{ZibH%O3}_NgEw@?1hlAWF5-A2xe}?EEkJ^nYI21*$YZ}jrw_`Yc zP|QHPuwu8Vwc?dK>C7|rG#|6v_>0a1(L3@;ynPY1vZO-<9$vLM_*otzef?<@nc?&P zS*A__=t6&*!o11GeOfV#q6#b@w(R+&69i-_pxhIFs--<0rVM7hpJmT!SX0uU`A@xe zo!%V(?U!;a$$Y?t;F^UqfHLWV`Jba zK1#MC;%B)27z)vMpy?Dq_m=hN+?LL8Di*nNcO#DgkkW9ZF;;2xy-rocuUEu(uU6RO zQa&rsy2ip{X-9|2A2DeL=E4@yhv$-X@{R_V%>q z2pQKhO=Q<41e_KIJohrRd0UP!g4d%*S84l|vZTNAY^mHZi|kHS@U6o3+>%pHE(P0w zZC&WpzMF~5`!2vnZ=*AmmJizY8A<0+Tr%bWm8g?H0@h*>^FEr{*ll%ItZh&lVde|1 zzx>j+45kj*I2Ts=C4qhvnTB7L`_o-J3=^?ipP9-0tpo$$Bj5Z+4ZV+Un|x|;dIxJ2 zJn#(w_m#f>#08umir>GWh!M{V6?Y(oR9dKFz8-Ui<*{?ykw>mZ>*NF@OkC`v7nSP< z>P3C8^aKIq=HNCcse}}Kd^;1m{pgE>Aj+puXY02b#hHz&W%I5sf zlBrPp-;x=DRA|+6@!@|!x0Q8ot3zmD*NGeZrI>Bu8`kYg`YWZ=k&3WPcfkT)_N_7* z#{Q7oeP}zfbpn6a3QFZoE~3wdM#Y7TKmV{N7C?8-Bkm7^q(cA40MbcECg4@{<#R3a z55O6$LCjRGZcKKgQEmLj@lb5+0mw!&q)g};XII><$vQD+MfcmsV__E%r< z*)M2@LFA3kLRXoC_AT5_O<#CV!!Np=-fku?-i`VWoL69xWMN@B`c#3yUeQ3L&$gVK z=Kv^)Y#>%`({fo$G_>{|%_SB^Qo6VDRV$9Al5X3L{7SN97{vTb`!7$D7UWZAm>X&` zF{k=cX<*L2hpyY!(J|>^v)uETKFd<%I_%{kLC8k*k}bDEQ}(c^(>AWbZ*h6e0TEHh(~Gfzrx(^G%LVbxuiZpXI`1|I72 z|4Ox}k$A7W8xUUwi?V=rV*Df628~1pDK%kP~2=k z{-tVVQQ+Sl{Zm4XX(1VVVZ}pHQ8hz*^jXqMS~6QxTh`(OERB4fN{m-xySIQpxbEps zJ#2Rju=y470RUdNf3Z+T;FE8%ETg+4zQ`xQ01+y~66BkK3W%5&&SaCHvhx~2n?1fE zN`+Eir|8zuMoE-(TO5IhdBRQTgvp=uymSY^7ay33Y!pCiWshQ+e|noQ+11Q;Lz`y( zs40x`uec3k1-D6gDvdJzOC9~w?J|7N<+yB^uuosYqm3=e^_aB>J{SbfAAV1KwmqtJjhQ8%u7e6yRuj#<>XZns-xi z>JI#1_Fvts*G9-o#~#e^|B1Ex3-7_7$`yllt)`XnQ!VM1p$SY$s$Okx-OErl_7{?Hz z_U^T7y!7>X83^#U+p@z$2pj$|!1V)*KJJH58Az|xXF#41D~UYv8`^hf(=lNU9Dy9! z;9x9PHJwc_WfGJtI=vMrAUls}ud89)6n2~Wsx9#pK{BI_9ck`8u$8$ z@m_ps=Jl>oki(V8#f=hIzBp8SuUVfjeo;t6r|JN+t&!b@l+9I|@g{0ubLxBMkC-#Ic4RDja`r`tJ>s?$H*r>$%1pA*~ukRq`5D zk^2uM#a9-nC`ksU>Y`Im0v9Bz z8e;y#DwN4q@4L+$Gf~Js#9X|Js?tfL$|>A)NXk)!i%or>*)O(#&J^FW=b0xmbU1}R z@Wwj>|EX;eU=ZWfqB>d=;RjH~6&Q8>cCQi%#f4T+`NH#HdjS5?m(-Zf5=;S?qFrVi z{w{G37qHz?!mJ7IM_FCYR)5_t==^VUXZxC|l`~u%!=7OPqih;w!TTvsdgA?EmzUnP zaq|_K*bzIC)bVp@a0(euk2~<}`1E`cu>N{n)%jUAo^+3Z!2!42WkkYKo?~sQ4&R{A zy3yli2*=cYNG~9el zvG+Ui%(r{>aTl(n@|g6Z|4m4*|E~$T7-!seQI-(nj3C|cQs(sYT=oO>&%<*n&{^|c z(PDzQzjMY0#a>%Rtj4WW=+com%TbKD4$GeiC>`U33wksynz1@HS?-PK zf1v5Ue(7U$L|z)+jl4=&P$G`gQ|5^ij@J3`COhSn79fHG_BdieLr4_c(~FM}jkAM8 zN9;$mMzu$Ep(=*(VB>L#y3Zv7X7s=>*UlxANEmX7e5}@B2vW4YOLLvMuFCk*+at+a z=$=lcVLTQ+ESw_1tK99>KluAycV8}PO^_7UK4~KHkQc-!#*~})R&nGgCGp$O$D191 z`+NSj{KR$u%LIfozqwZsNiCJG87z}`&|ae^8(=Rfg95`hLX9s{pr5R@h?9eyN(^Sn zZ7DExDLQZQ3XgDaXj-z>Bd;Eb*6!s=g*;f#{8^2ym_@xCufX%WU1s@TSA>hs+vsmL z2fw+55wVP6o?y;FYE>XTB2L({24jD}$T<18^t|tN2e|@Y zbXoHnOUEf_L@wVSSov7>t+zGAmfn;3UEXF5ne}{G1+jm@VlL*p;8+vZXon*yAra0g zu~ofR;y87Of6#qI0(<*=w)~W$-?#GeRd4L|r~f-d+WHefS@`TR&0~c4S*&(odP*@z znQt^T^)x}Vgt69=uT5~$Co}r_1*I30lG_k zJgSj6_Kvll{cP}hdQiI_(%`)Q2ViAC_{P+z(tat#mOk<4N7&8E1URJ6Q$bmp39uu= zVd$Q}CHEOfoIYaUeKZkzq(bPZs;FGr-mV30Y#UNK!B0H-$MDo6iwS+8&zbgVekk9* zJ~>=ADI`$crHMbI^+%olG6!r#B^V29G{72Pjy_Xuz5T1xJ-t8<2H|WQ#!mS3{-^n=@o<1_YoL{Gz_+if3W3LRn_d}< zPrOcR^{59ED+drD==I;h+3s)(v$4bCB@W$bj@Nn(G&2YF?!e?9s-XYF&#^HM!lcxQ zYVoQ9mK$!Di=`wVxMYOI*nvT#Pr~9v779N`F&GNQUCqat3#ycBTG--@~1>s?QF|Z2)iKv2N@4ks2U9wBjBJ^Lo)V2C~iGn0uTp|Qm z8P@g8J5RO%fP!Wu;NZ5a?4qqkcCNcWFhfOz*L21XfP{y`x099wn`|I(&@c={8fH^A z9%daD45E}bvBMAVJ*eZmKh@>9$=Hr#9Tfoq7^eGx_kaRA07-+U;Q*>UJs&WdjY_k; z8OHAH5RgH3i1x6Q3yCA>w+jq^67+Uf)X*XCyBv zdni?-Bnagv3A6m22UfH@lq$JD;o&8~ol8@QN7?0g_D z{!>?*wNq!4<=aCq$=wJE@98<`d-mu$9&SM=bim3-_-Q{EYz*^SWHrsjdmmxpqUr-) zfxWK3sgll|LTrcq<40=GCPx$eV@O(8Uas|?sqB$L2yTHEsE0#9$_D*CrPorl$ha0k zr5W|~{$)o1K_CDE_m1lB`j=AHXU_z^kbPWNj0bm~j&G&gI;4i;FeG^lv?^U%2r8bws}c;nfYzIBW+PV?z@}B>kOuTKpeZvD^Oo+%3kA zr6rQCUqQo>#OFVy6XwnQ6yd`RGG zn4P-Lc=3@jQ*cGOR4S`uQ>%~d+g^opU_)L0Zo?-eerJo>AdgTUX9T~}?V(N3hq$m(b4m_tf zAn)6V)S&}!u)u>ZDIf|91V*;Pb~jXGJM`{x)Lbkf@e)EK8}0&6(vEqm?|B~W5uVOf zm!1OH$Izly1Q{ehk4$P3J|!-P4)=UToM{w2qsJLzS&6omUupakK^s=X$F=e?JK_v3 zq4H+ZwWwp@1QI_35oo_#ccnG-^xLtsW%&=sL<%?SoYTj1qD*1D6T5X`k26oZn|^ym z)ngqloo@!h0IB?;WEw^uju##D)*=*n-glY#cOzjGF1ciST1BSp>90GLY|-$h%G%pd zNK`>sl>@b6Amrn%ILC9`HcjX7gXQryhKG?x`@eqwg+3TSL?QKQ{G_wstgS?L@joE% zx7EjHrn>+SM>C}?z$TvGQAzrlV$d_x+2yoJv~&QI%Mawft}z9k6P4^iS~$kNiWK4} zaFCW+u{44;$v2^hCkGk1{KA8krsOLiAq5bT(h-}%T^}Qa;S|a|2OZ9M$V-71uu~^5 z#rGf9#2t?`@B6fi|1G`w-8g+y@y4LE0eE2C<E<%?`gro@un~0Ix@K6SQGn7N?ezs&)pFai z2@>zf!;6&gzO_M|D(2lWg$&%th~TR5zMV< z4~=R8B7$|L1(k<;sI*PM6sGD5(7hL3jzjO>!kb*=&a(LU_aj~WB7gS<4qd!Y4t${1 z<$9c;=k=Yip^;Uer0Kkb55AKRPrBud+ydPns?8Bc8hYPN4z3;7JHHA8ZL~0y^Fp&RZlxe}aS+*K4tZH*9g7)35{&YmivTBu?Ft1~tbW z7tsoo5%&eeF*+sgeI= zWm)@i$zw593*gfz&3`p|hiv~C5Q+$;JF*3S)+-9Ory>Wd_tv$ApE+R#%5JIXq%W*K ztvM>NOjklXO5lSD{C8C4S&~Y=Sdp~49Va1y;@eak)iNp-*T`QQk73*~Z z*?l5+UmHjs$n*rDlxtJfbK#0&wibTpFNMgNH*3-*EK@ytmRhMhX~ab|77%v z$<|MfzRTP3SyQK7^C?*{$Y)|&eq137p!l=>opU7cp*W8AR~8BM^0F4|$ZO}lrel|f ztTNX>@+I%DV+BTC0(N=X_itm;Z8HZ^&S4WYYqIYwGAgKE*hMISO$wQc^Yl{7*LX?G zt}$Vi+mAsh!~a3?HJFZRjP`5tcHaWx2ExrP^Z$uMlGqr*Sr>U4C$U!qYGG1fvq-At zqJ2H)=1+Quw|@B6xiV z;mWrl$B?G<4o0WLBQ8P1Dr+90j2vPLYe-sf@02^KrkijK4qhjr%mzE%X> z!atjr7{gBkqYAn$5&_@gxN_Gp^BK?N08^FkqLg zNxFN%{U`;xX?R&!BR$Eq1Ca~i5thF8CPcci{G2@@nH<@V1K;W;gEqeE-YfCj*u-l? z9z`tEk>0MT^Z0Bc0IzaF*dC{cTewy`IX;N2UXoA@mTC9ADM%}U6ZT&wsypLp+z-NG zsTbE1fobYhK}fm1oNlgVu{tt1Z&od{31o6bnvNbZ2T+qg37DzQBWJ05OW?zwf-(r;fGqBo+VFi^qWW+;|jI`e+#*8-O6(G)OU>DUc(}ub%loB%*1Z8=0n; zC7&#+crEQWZ*PshLdS@Tir`*bcx%#mYTHvivuG8+evg=!>X2kv!4&tGuo9XN8AyL{ zH`Hlk@6WU>y93FjzwjIDqlXM+P>JjJobXgpb{?XN$A-z&suo37H9FmSq zfpU2Lz#vFSbtnP=gK)QD)|t1RqR+Fkl($R+J7pD>i&abekq%oxul{Ji}VHxG*J`p$%fZj?bl@Gz&7H#Yqre7)m; zoom!Jy4H%FG`1QWjoBnk+SrY)#*FGPf+LfF+d$ym^a*OYd1&m)6XbqakBKe*0x#7eNFk} z@`ngOxMk(vmAXuJl$``fjQV9tEC#^#$w8@oaFV5J^FRkmJL6-y$suQMNAgnJ@!vpG zUp-@T(JLlkPlQB&)cwPS3SAv9BqFXgI>a+-jDf#TFxxxle4RkG+U~pQb!iKRAn1!gy}4Z%=`!Az0NP2fg#9aB7tBWc3goLynTGh+$aw z3(wqn)!Nv@AwqJIP*P}lsPs{ zydrGUXSQhqY1Qn?ITW4P#&J0RC@7p+a?xjHr$G++0%RcnP4fG9ezjUpM#PuJ^-fFQ z>r9C@N8jP_x|#7dt_hS`I6jCH1NJ5eomLcQ%4cp_P7*H-A(J0_!6c3L@TzUJ)su;2 zuK=PgV7YQ^8sT0Z8{&|2efO!i2mBUrGvJ5NTn=hwyH9|>gZ$_!_;ke<+b z@nS6tzOK&PP*f!`{P)0l&WBRfYkAHDIdC>{X9fTLS3{R8e$GT$q5I15ot@^$@jDOR zdm7XhWmrrP*ZsibndC6P1KiWqv+}&ct#8taiy=- z?AgaU-{O1ySYu@=I%z53o=Yms{8z@n)lg+5`Kc}6nydG!s9$+#Weh$ot2`hasa-N> z0`=1~(`)G36=4QEw3tLR+Z$d3KHbh`HGS3b2B^xI19O)YINS=Ri4u8O5Hg4RJCw2S zs3bERZ5`lKP|-_YU~2}Ct^5`aW`Vt0jekoPYi0(mo+jDKH&b8VD);~oKOqL!b~(l; z!p3TN7B>?0=rLeou+VK;CnYg6?74RQ*Ks^`O1k4@sVcBkcxgd2nYxWRZP8aXor_S= z?8VRN^kUDncz~v3--XT2Z{YXeK_NtIH&?%YF&Bh*WTq@$RG^sdnh*ihb|?v863Y~A zNpv>oSD~>`2_5gu9SJt44zJ4}&}R9L4f`G`nLdgY$7g8TcoZfQ#T1kb4*cqT?Lg}Y z+8TnQ-uYV5iM3VOP$NZT3tYB(`kD}eV0)D>d=vS4O!{0Pcz=VRUe#!Av>QD)Pdi^W zB^be)0lG9=z}j$@Vg&8vX$9dMiUyJ#Q2H&O)np3rdml(ReTBWW`-{2dtmus(5Q5uj z{5uG}|K-;y{o6G?$@-`?1Ic+C^SRd&J+?Gztfx6?7P)f8B<$TcLPWhCy-ul!2zbT! zO^sOv48x4XSp0(>p~+)j8(YNt+TlD=Otg!`!(OhCCNBiQONA%H-TUj<@?C@NdYzW^ zz10zVmroAC=HH3}mv~_~@Kg|253)2*tvX^9kC#;>9Y@|%BjY}2bv@I$DAhv-G#VVa zf(wfQ>1)2Mv3k@1ubFyMFqTX0Pk&Up%aR0>0}cGPX5y+)Vv`U1$v}I^q!a0-B<=Z5 zr18-%HEH3CYeUFNNq`&inmB=O$o!gCwDPB#+GRp{G0W}~qrM;XrY4S4XC97B=dEc_ zPl4E@$VsOmwA&DwJvto+hg$q&o2`uT-1EzV=FPmNdOP)D<`0p+8H;A`wJ#@R}pSC#mv z;q`fPdjSw~xX%8bu7CGA=OY_<5qd@p(uDrBl4vLe*);cwyh~;l2)&_)qmyl0g(UB> z9bt%^!T}qBcJORqvrr&2KwEeH3NTNX^FgExb}|BYU&eA#PL1zwM%bf2i z9@7WJLJO8Ihu*hMQeXY|mx1NR=wi3bSUQkJLtHLY1|S8*4<*9F2ZVKZG1U%^R}pBT zk{!PKh-f5`%&k|N5DC4;ugZU7N`|}aE=JrX z2tOe_5AAaFJp@-R)g})&X&m^!{X7X;Yp{tE!`s3=79;q9S*^#1KEmMcjt^|(d%Sih z-$YNlK?)>8ng7yUXdlOzKAS6RYGMXzymtG`4M?8{cB=nUzkE^~!aRv~`PPY1bQ1h6 zo-S&L3nnl^ztu5aDT}n$gr#Kb<&lH8+bsiDHStI_5)>xrUgkhlZ}WrAUn17f;#VwB z2)yrf<8lMc^Z1BUGf_90zDgewC@C0k7~(iU7>hlIVThLBNx7})TI1kZ;4nt zbl#VwZ`m|_H^NUBO8F77gtVlxT?7bvcMxT34QMsjZ~4>><6OaUzW}m)!p!`MZO;6< zCRv8;{kx{vO3y2L-&r#CLA$vjozY@>>F#2m6(?k$VbFaDBKK)q60`YN?nCkaJq`Z{ zmc{?U@+2w^O|1e7@Dfm16(VNM?h7&AhRmFYtWrU^-kV*s(AM0Z#%E6*8p5Vr7Yqz&`w0y+;+~N1mRSnl*yiXX*Z$H z<#H#{`zm$D<#NS6Jv);!mdE1R?t^qtUGdbvZI?* zoSk-V*x}}EQR|qrQM>=-buPo5`!CI-n1D za2c!fU9;)j=iT}F$hC5Dl-tq@{rd$95_TOVHuvkMGC-gqg-lxc}^poTm$`2Gu@ zi8xsZ*d16cYn-n@yrf+ZE{go=`>FHDN`wyW>KnGmD%y^m>Q`=g{`hKXjeBxRy4|1* z0zE16IZv$7@njnpA;ajcPHDZZTmWY4j~a?-&qayU?{ks-92N_|FeX(thh^ zVee5g^XFRD&iLqFVpDSnMo~8H_PVn;#acK{y&b<0X@lN?GyMtDS?sNR01_oPisZcM zD%6Jjv`P}I?@mviob!-mvJba>d7j?hz1`=Zz~`DM-ZO!p$5pVxVZmBm<`)m^H-)jB z5_$r;-Vdl9R^jatZf}G;d%gtR!E1$g%(*eq{o`q%})}Lp=U(aPlm!CLKL5g$@$T@ zX?UwYj8G#^iMc5*DC0L-_tfr79o}cb3jiroai)V#rwtVU?wQb-wfFs;%Wn)B4zVql z6BFSu_ASofj3Ts4-mH0IlRRD-q&DkQF+S_C9moGhy9TIi}Jdn#kP= z8u@$?h^~8wZoXhKTzgv@wEBIltGkF%yPLriD$VG1NM`jole#m$zY>lbhiL7q24Y z{m@7Lgu!y6>Kd4w1N(NEU}_cHLT$q^9<%mvm(}v|9FP!>0ixfFW_v^4^Z)?t4-(I&#WUunBmXH72+ zRa4ey@Ep{VF9wXGIsn59^`45D8cxW?e;R+yM;i%aJzVtMTRWUoE}8X?ZV!#gj4p7a z5Kb#pjFFBO;pXB3Mq5s1Hi?CxE+^2G^)+Wx|B;^?&ldbq96hmw#n#Q=p!(Cjj+dHm z97xZwcJE|DAd=RPpeU2hWc-)HO96@Uz>a=4!ccn@L0f%l3eCq;#(6&5!5pf)v;tgg z3|D2)0F?LqF)isY-hWzI)3SSXq`7bqZ%4y4)t?Qpxx}#woW--BO_04I`{I ze8+NT);MO-mXN#pQ-ONR^qdgcOV@S?d`#P3vLet-6ErSw__eC>y(XO-7s1wE8Wx%1+H^U|6> zYbB5Rb9|7VgTl^%iG-N=)48*ughK5#Q=+QMn-g8k8pHa zmgQ`(NBNUuJ$3j*34WIow`>~o6GyDxCv@D=sLl~gUZMcf3lPr-hrR#-cI-O}pNoW5 zc&wQ@>(Do%tis<-cF^1#^^I;Eo~W>W$4U87RfGnuJ~Q8mV91}_D^nz*2b(@4|4GAbC<2W;3)y7 zh5%OS`+EE#dABKLDZ7?3U;k-T83w^&ByLfXrHg67);L9|MfdNR*r(5A#NBpGHY&xy zeS{8${%5!FSXwH8#byMtwIKp+MfsC+EY75Cb$USD4a&f1oiPxdb}KUny{vDW7s;t= z23EulK9F2N`-w7hgi62xridGGc3m%$Eti$) zcZKtS8QI%V59x^tY$4Wx93*?^&gpU(@V8{}Yo8U!wYNF?6_Bf5ENjR@Lh4H}ht^y= zF*lNbA+BW!j3GSc^W2Z2u%13o>NVwun4P8;vp@`H-aS4CrABvsn?zhP>3y#jHkHc3 z4|}t?7crjvU7_Y0*z#sUf*48h@i&XVR=mt4;VEvytUCK)b773PboaNEeGmQsjr(t0 z6f_$tgbL?7F`<$w8)7M6pS~oQe}e05c(jtO={!`*aZS~Oh4g_0?%r0gsD@ux1W^c+ zeMM4=PihqvXbczNK@cQTNY0qc=}?n^fw~p zv|@Sm4wl@zvcq}RhS{KZmdXP)y`7}63-j$5a4S0+8tOBb>_#o&FdLl9L=tfCiil=+ zC|o0$Sv@nw;Sm_yx^WN=si0Ar&$dT8S?gWt`p`A5m+h^zc=njRR{BIEHo zz;^hVOoR8Z|F7lXF`D;Rh_3JDQ+;YmTtjA`%e{A$*TC@w?93HkXW^#zNlJp63BTG} ze99+#Oc||T1z*E8BACZiDAFU0+PDL6d>F%@c>iSZIkUz|0>I=bcWoa;$exa=Vo71R z10z;SIg&|8OHnX-D&uLiHFb;@u$4*Mds53cMG=@OKNA<=;VnK-X?ziP{_3XCbL>)G zm40EuhLp9LU^?)pRPOkWyEyZ^lsSlYXiI82(gX8h*I_C>xXT_I@nsB$+WEFA0W5{H zQ)okZz~Fot2cuJ4idA$!_O-#N*>1YF1{2?2&gPdk49_os9+l(ki=M~(A2T7Nu1Bq| zu#kQ7_7Aq81(HTwAh_!)scK=q^XU`B6rPnS+l1H<_Vz%IBVUQbp02`Ihti_`Rg zW0Vt0tL$zFjM(ALptpp=Yh#ce$rN_R0b>MiSw#?b)?N z0H07<_9WaEzd7nlA@S4$jE7K89bwQwhnByOUq$rv<_JMa9I}{gtB2+l<0AA0YwVtG zlbmVQXB79@+`=rD?bp?M(sq~S&g<9v(_KiB{i$al$1s$i`W`@i*CJB8Y_b9d(N66>4E9NLT zEJNY>#9XHA$jJEzP)#9ew`q!bfs1B6EU{gcS{1jt%j z{jTFRN09e1?1PdTjpXFEFc1efY`II@IPVer&xN0!l8Zv*$i!0J=hq7Z@vH6j^Uq0E zvr(0ZT{G_jCCNEq`T@g&Oz;o7hBHe9Q|3jNYkS;eCom$O&U*@maXeLwwB|M%gVI8S zKQYTmNP3`;YQ%6nzl+nySF+u#eHre2iBUi8z^*Ioe{O8A{ep*e68j?v(Lk|!)5V5B zYuZi3Cia6544LdPyt*QuIX3NYj>$h`(Qspr7{&!^Kjj2;yboj8kJLlJ9!wb)qF8GT~hOvh|fpG=0bzFqOq#4F-Vl&#VIPEiPj(;SS^HCmnx)j^F zw`6^vvc?ootS8d#2#JqM;>>meHoG96eBEQCYCJhmPO;v41A^j-LNszvZ^N_9sBf9tUDR7o94ap4U$b zdD_vFVz0&YOF{4A1#MhGtG;Lf@&Cer<+p&H@C$+*{FW?U`!LTCW0ca+8`V(|3r~PvC8*;PDZ_K62rmMp!I^3P0v-D$38a9rgcz^x1L^of0X6_UK;}*r zAQE1lQQXf!A5as_--C&+7v2>G@-5&afxXTKzUKm7RPSQvsl+Z@8c8ng}6vOV@f5)HH4T+t=`e1pob{aUaq zfDO3unNC%5%mZca7xG6f1knvj^xS}+uf_CfM0xB)Wtitim6haU>HDR?s|9@yB~TJ& z0B>7Yd|kP1)lyTJ=jz+&{aUS7g!7fzqBy3l9gg_l*!&)A+LIV7(Ol0RpeAT2BQ@23 zG}sz+hYHv@dyR?$thIX6up@DycG(@=CHZZj3jMI^E)Up405BhgK=73La5^_Rki)mS zt?k#8vs~%gYL#LJ*P}xf7M$CAXr!#@pO?p$t6n?%a1Qv(r4@<4q=bCrCAw)-52X2Y zsa;j8AKQD}R^x&hn>?nChI=y7zkL@LlL2uYWHvaOp)Tj9=2=%V@_j#}|A|d%QI8?m z=r1QIE7Cw3cBn|Efh2I3ijAV&{v;v zHuSVi82!Z6rmX{4UFolsKuHfhP~K(@X#Qp%>44(&m{}G_tzqC8+R3Y0|LGOc81sU7 zqwQNn9V4Dhja`l&>(GpjpB;93nSoLH0-jczrVk?c1s#cfVf|`}p0E{?2EfgIT3%JH zuUzHvJrz%GWP1VX$}&2BHRzITTwKOst|Oa*hls%569|S|vd0IrsP~W0Hw;%P)k~Gw zV~)_1W?m5C%EK*59W45MHEtEmPtSAF*<4M`w5_*bPTZUlJm3Bf0s6RJb@uzCUiE(V zJ2LnIA^Gs@TJf6u{;Ck#MK7w~v3DUCz%QcdH|mmupvjzWk-Bq|+SERR;`f**yW}hMZ z2_#Stjz=V<9S7o!5(N83uo4fRjA!x#HaPA&&V44{cI4mt-tKJQ|Ni>*>twc6+0Cbp z{G&15Y`}K55Q>$%*+*d?iwhPJt=gsd}Ffy z>AsGdq~-E*ks;{*)GX+ImZ;;i6`08by?_kR(9i$lV!cX0XxZtX0~Yf4kB>Iajlv|Z zS2ag*f7;qS5p2$&+cv>WYr#F0OIVlGY%Qf<5CpAJ5ymxf*KfcaWwrQSBE~3DF@^(7 z(vZOd28ut`c~(5%r*UuDP~Fdeh<)z2M-5TlY|@=Q|Ew9Ss`T3v!M*0UzD{=&#gdRF>Lag-U9FJ`Rgo`z1`)F3bg@_7_u7 z017%s4Ie=fO$xl@&oe0Uw-a&krxusNqG>1CRX4)irAhU}>g9)6r7JF5Bq!%1724b} z6Z}KuL%DCX-IfJ3+L=~LVvLpp!7*7Imdx7gV${Vr4IJ%QqlgQk7b{@69l5J}=`w%|=>aG7SZSw>t)$ogMS;-(=80@Y zLKNe5BnRQ4VoWrkN$50}TTdiER)Bc-@|0X=Be$=pm@n-Q6yb3?s!!F1Y=!6LUaqk? zjPq)Gi*&Z~m)4K@!5yh~VK=li7#Y8?G&Kb-9nx$$yTIAh!ULh7bK!sD;#GYT2uiXT zE?PLKjf(o4bB&sAtLyn*)Nyy`c^9BHdiVAvYuz8cETr|vB==fDyJu$tR!=)%fn%Pk z2T`3yHIS;$zS!Ny7SPO%qkEv7Hi zEo&-!OCTajc|7;vVO8t3To{qU&LOiRGn-CC$&a1CCZ@e%bauLsS`){S9&PIqj-3g;s)ASl?tTDorcaJCM4>#~Ca+S^=1{ej8#BTQ6_T{G)PFxa1s1a4=6Z~PG(2xR%Ar!AS zzVy0W!7Ob0%LFAyhg_15&otyKF)#YDM^z?%)5}kH%V~+WGBKgCmx0fKKG-ljSq5CJ zzsR;9L@%B$HxVDatlf9o`aTu={#bt)n1|fUp5-TYMUQjkceD`53hDG|(n%i-fBj&D z6;kC~_*{bJgbyH~Q`?C33<4RC%G?soZ~-NteHhLfJ`44s(~_jC`(Y;{S}6&>AKFzX zveBy;U?bc_(i8E7Qr*CCwd_-`fZ&lhm$jkb2Qhio2S@pBi(|$YB$+dz%>}G+m(R}oXo2&C>ykPAN)`>kYt$mU|xnDg#jtVLEnM1C?a?oti`2e{5oGHiFA}Qq5?_I zFwIv+4p%W#VD^JB(N`adw|s)*I(5 zD*>7xbO-i$uu0oxrLe4uk^L+gUgG^x2(4j7tg|{LnselyKyIjVJE+HmWtD!vu(B9f0P$%%__vgnl3DVCy}GgXS8-I z8xr|=w;1H`@NrDi7)R;} z0vSpHf%IO;i99#5+u@tU;PYzzZTAl(@BZReV#Y^{Gg3iryTjvH--`E7W%JC>$^!0y zf!Ie<+j=OoVW&(n=O$ZTNH2HQM2WZ?r$&0j_S9I^@(4T=%Jsa(Oiugt_R{lZ3|Hnz zG42)ZoZs=xlQ!BYV%rRyjj8K(;=;=Ou0n_C`*K(k_a2hO`_HVMPL?uFp1W_`?w+2T zPAmAO8>@BeURDeQMicDGQ@bGn<89-0w0U}Zza2#%9g~{_F{f|`I##wQalftli0f`Y z|DN3nd6KqK`C|XxkV8eL5rF{$Ghh$!?XL1?E70;8^1oG2B(v%T)^L@T5_OpmVa6AI z-f$ngm9`@C*xZtU>+%J%*aaPEngMqL2LX^|mGk7nnA$1oX}uRHAC~QC*iK=!R*KQ0 zmf1dJFQ23G2ImzNhI#cu&$b2|?tD+omZ*7~0dSN9WS9cuZcNuhtY`vMBHcb)XvF<( zi2hALBzl)sOG2Z2|1k&6yfE^{1L9>=dmj$Xp1thUauF)orSaJsQ>rF7@sdu}PRBG! z_@)E>%&ruQJkiw>V}WKL`R`gyJY)K0al8j2HlrO=c_R3IrI1auI5I9raX?-@4739) z1`(r=?684>VEIfwizcA%t@8Z=@NLZ2XJ)&CBrUs%0MP8yST#mMY0jZSO-64~a-Z6# z6Qjx(ox{@v|Ldd9dj?7m=TL-dPUN0s45mzQJJxP4?W7c0+DOpz202L=Eg~M0NW#-J z@0lMe3(g_FdS^0e3+`$SOOT=dy6`bzvgs(0-=cC^rAD?S4B|^aYu4%BzN5sIUraT! zT2j+%LNyRrda)vv*!(K{fV;y?rVZ97Y*KL_N8(q02C@dp#kB^V@OYO-4k1j)eOE`+ zMKPRgmvhCq4B=)kux$60i2&wKRSY-0VsnFg8<;cJZHq?!VO=^;0VW4Bf)7Z}#1F5s zf5Bqm3IGD3oNV3U+t0x3BD}!*T2(4UqMg7_z(|PaZ3#$7mPatnICHNrZ_(-3&frxM!0b z0Yw{vhA@N>zUEKSSJ^f&U1)986+al~%aMomo<@1<1XO%f&obfoJ+S>6k~XkC5y#U88Sn zoAB0md{GnhOH_T%Ib$~1^x}R^IGEnu{_IZ@p#$|JgZ&f4d`sRRRxL^JUEu-hc-ifS zFC3(m6%~v95y>wd(&P%`S%Sx&Dj9t4OKaZe9i8a3;XonD)i-q7ZI5N^&YM}5nbp6( z)w?>K+Y&GOVQ%IX(rAkZc?`8yY0^yo5AIaXL0B**@A)x9*6nB7nl1krjICNf5YlXQ z|3EuO0M${P`pt(FHwI)qeT#K^do5sQ&YSccEhdpTND~WctrUB7q!@*>H(+f}~IZB|^(pW_J zm5QwHpKxh*dbNT5{U&unz_tqk;PdpyLI7;b>-RD(&GJN@vi^40LX)ghMuslZt{ELlcHoT(lo)8xta$aLQhVNjXj%MgY<7r zl=K#6>%pHIa9R&txPBsh^Q`gl_=2@gK3eV?R2YSaus#J4vBEq~XZ_HR%9cEz{2RK_ z>C8CJZFK)c&+EkE`GEr$KzeCK=SKn;0oPFD=rBq=;O*ATY(429#d!pUu^$EPM-V->9LT!p~_mGou`cN7riB z+>>V>u0re{`=eK4Sm(ys;LFrOPv~cdyjO#LmX{7M?2(4cw0=T$!s%Omsd1gl%48(hUe;-Xu%Jt<~zJMFa>q4h)3r5Lu|SGQGt%)fTP&bi7>9SSCc_7?BFBOYo)xld{Wles85q@62t z4pA+nF06x-yh--O2ll7xe$2vZQkssp?Xa%*^{>~BF_<55bpDiSJ=EoyOjJQOaY6C(9MyHbkYH!i($%en?LwS{6!C_} zC*N!$#=8n$(_GoG!<`72!fDAqW9_}O6?zlpsGCoLN_-w253i`6XD7Tye1flsX(k?@ zyAiB^@}h%GXaFnN!bQES#+2=qD5phhy>t<B`AWVOc1wlRPbcpNrY> z*J|tyd`#&TY=SPC_pkap5bO+iycY1xFb30K;`yx%C4{10=RmC^5MJs&_VEo5e8*0wz2f2L6({x~l{F`;<)#ei$4fv8<&j#^Sr z@73{$3v)>guT|vCF?vmmxE2$zk`n_YI= zz4|?DG@bpuSWrFqMOWGU6So*JRjh5pdngLvxa^kQC}d=mP6P(y-Uw+X;An6)1=hvUwf$kojcd6u*ru|)TVeiuTK20?$OR>YCc zPIX{sf2q5M=<(I_a09oJ&sNP)%a->D$b{16r={olS58&NM$hmFkN84qCi7gICYyf5 zNt&wrj2MaVtoo=TWYNwHw6#kag)8fR#8ODOvqXFic+oO3HzqIP=+8p1Z8uV1?~2&J z&+Cw2d#BBLO&MxU?fbqWntOW(1dVI7z04}#-6+dH=M{f;LI9AiKs(X^ zv;}Vw4BQ6k91Ca=+}P2Y5*QaVWw}E9ra#B}s9B5Bs)SaPr`7qaTYRNp|-Nrk|96JBbNbhk}5uclX5(A5~pl z*9L;ipTIU~CwF+Dq*CJ&`{SA_ni~ldH&9OyT~hXoAN3!9r9=YcQ^b$gSD-Sf2F?RA5sH8V43YyP3F22i&+*BUp9mS#2|)$* zx9C1vaAf1dObCmZBcGAW6o%xktYHn3)|oVspW~X8u1M` z8js!9Z7Lm2X5{0sUOiqAe(&r(lFD}7WLixT)@p{%=(=uV;0 zl%u$brt+-@jEy78_H*t>&=?zx4+FIu0_$W)zX>VdVbvn6Q@>WrJG^&4*3%BW9(%%b z%I{_NcCE_|=C-Fvkchd?~oQwd4ml#zFV(N77? zL00j05$b|wtt3g@-3V7$T_JEvX%SyYIaQ$Su!D7RI)MNLQOae#`z@WTDqek^Eq~;Pip~7=ll{Od&prj&adeB zBRM&hZ^;7XQCtzIBCB%QR}YT>lGVU*QR>l;Ea=g@16RS`uR+PDg6%WOp^{xAEZBT4 zbOR%duQii-dPwzO#X8+Z>|QlRLOhaCj^(dwKS!GXK5Y58ymQodbR^jxOw$wvmW>xa z`5aM(SY=Z_-m06JwG&s@+G>@|oZXcDc9>n0{W6?=)4WthlaA6lFu?PIOX9=*)c;JR z^KqDX$Fi6{T&Ic@em2FkY>p1ipQ6>&%*@)<6vsVj;W^h}Fq))^yGmyn2P6S1!CdOU zUElRB&bo`ICXd=TU|}*-92`u$&XBN7SPQ<1jbi@ySK1rFh5?;0+hoEb`f`_|2@+^L zw{U;)VI<6{|M*}Ujhp)luL{zL(rek2^wn7Px9GpTHQ$OFssl+5G<)qPM7-9-_w9?9 z8s?Bqn=mcuN7hSB+h5_+`uhQ6J4+e=9;ZHM{BxY*)U!Eo{BIxs^@XFI$?PA=DV74g zH;S5ji98_mZP&w{g|^W(D#a#M@XxmIa&YkTE!qm;iVI zivDO<&36y$^~Ef3T3uv)ESi^mSzZrVVZ*WLB^b-djyYJ^ez;Tg7t*=|^u^iRNF|wB zS^j@pU)SFcg%?R*y5B9%J6uhBJ2?&ADg35De+n`Wp$lBCNb!Aw!*L0oJp zgjRN?477OGm<#@O(9H+ntQ#O%mbAzPW=PS=OR0O?OP`|OMXw9QiC#lP?#~3EyCkAn zleE*kd!+m087`G6;-&LO@layOrVen!g?5F}C-?i=<1bM@gytb-JXlu;T|!5wbh2HL zwww^K>1LqLJ8G4pLAx6|KUNfW!Eg7G(`kn68{cK`wc$7z${X`8FbJpwc^eh_M)8{y zodjxNA~EvamF?4D*jq6u?kY3~at8!?}K55E0Na0r&m1|ML9RhE1T zh6w@hta0yf$1NZ}$?s8wl<2YUKvgQ%%X>Kd)+F74V^W!B?_`8Seqk_65F)TAtueYD z3X7$-Hk@|FJ9h`z0oQ?_;Z$%o7hvc}VO5b!bB@ zD&$lv2}5=R<;^=;>uGwNT6FEhe17+c;QObeB3qBJ=TBtZSqpyKh+$h@INhdHKk>q; zXn5&FuP&8ekA$>)+Y9&#`Y8|$Q2iXweYL5s35+UaGv4xWfWKvu*tbnb{vNxxbvBQ~ zCcB=_9XFk#aJ974$UB=`CN2C$n?Gy|IiH~db+HX($LkYhXm|}zm8PBgbTjE zT%RD=j|f&`t9^?g(zH^6Qa!FOP%ydH=$enQ)iy0O%zq$KtBKTY7 zUrdXO{fFs4h^W(~CI5qI&Hp>52g0vdnCOyBIA#ReYGeryNEI}|wuC@p4E z5!cP7Ctn0&cvD7aY8_Q!5{AvcwZpkqt$j4|E^;BzaSnTXk*>j2FhwM(Ep~k8BQ2l< zKm}MVXAf9fdS-^CYys49Tqyj$t_2aNr)9aE3oiOcb7jSY9(~ScAlkZHtuB-Oaly@8 zc|?Hb)t>4fGk+V9u!`ISsAMPeaG=NXePI`a5GiV~eEJKiL4ZUO1}g?QOo4KtOc$!4 z{DP*=?RgH8jL2Sb{Ee z2Clhy6tVSM+EWBTfUX7GgA_!ky1Lmjy!Bfr+-4qW#$M&*uAgn|S*=>W)3i%xq|d+%l+ja=StF!&K!g~Uq2L1Z?sZ?zWu-!P6YV_HUNS^$pYr0t0H zDhTrkB3dEHkExBoN2j?uDEq`=WiHT)p`vd45|(O+i0$q!AjNIt=mRlMEcL3C5-kMFOnxIon|$G_CdzmT6D%mk&Er2sd|Hi_>q0KpvNn@pc-vaO*SXqORCn)w z*cbHNzw_p5hS(93D*OeOYN>ogDG7{|h3+StO6HnRSY3Gms3`INgUdx(NYaVZUACYj zCF#KZdo8^WBvQXJJO{x6Gz=0-7wQlp-e@-RutNQsmUgwg*H-?WW!IhM-L>%hwad+c z;(fiE6diHi%%J^jZt>ZBp(Q3|+6Q00^b`3US*8YfdNN%HNDdl?#udPKJF5K76R_d? zi0g}hHrU?2oaE^@S`_ecMeWN?st{67UR-fi;@9E81U73$dYx{zQ-K_-zT_jR{s02$ z<&6W~w$&($@lj{%5y=^m-q$-O{?)N5J?_89^3uy|4-Rq5Zc!c9UC}I}nKrqrmu($Q zaB(00c{aRnMm@fl+At&xm4ya_e@pRiIHzC}6$mRJ7#sKga~W$${Fk3wb@5dYlG2Bq z#%9B}pr(0@KGa=8&84^u`c~u5fU|1*!93K{+$-3RBS)J|6lec2bGffn#J$rSxrrT%6+-i&cf^7;(pO>;QNTxc z6+~q8P$qpD>*K2KYu{_Vcgttj_tCC8vn+Q+7Vz$5)d}eXb>tXi6OB_%h>K4`m`SwN z-=7)&>mrEZ0o}P7g)m8nCfx6f4bX+iF}aNSy`So#HhdpKe9hlCgX)$n*`R#P#{hpNXH3x3a|P+~*Mp}Q-=#{vq{ z9vAqFoigvo5k~#c4pb4vg<1AKY1~N$WAw}6+`poB3NmoM-q#`m*}a=Y&gUI9f!);B z-=eS5a31i1j=(%n56sWxa*6cRL2SZvjS0y&)U4^eW3bkjPHn=#W%MCt);UqVvqDOL zFdruxoFx|c`0vI7wt|p))0b)IDq3bHD72hJCO+23m1fQ2& z*Q$L1$a+=7l>j=JvN}-<-J0%e?5gE~ZTA2avN=nHDwiM)1sdyqKhsOmnn~=V{$8<3 z*NuU%Yx5B}I7d+gY$w2dpm%>Rz}z2FVBiVt`Vi&B?4BqMvJMkP{f^{>7KUQnDmoP6 z{Dbr4swVvPqJP_Ex0L3j#f)Wn*yuWtUzGHdb!BTX`E0e|*Kim-Kg~nQQ-=U;?OK1> z+u>5&q}WPhs3&JB-)2mUQDTCzdOU!z7iAy!dV*;>1_ z)aYJwuHUHc5`9KB65syF$@uLvTyA-oDT!o8*r|LBuo6}wgDvv6xX@r*W}9zF4ZQgwv_-QHmtq>E&*R+l^E^xCW?Z6Slhj|+0hPJ z9ubc$o<1ZOj`uvMliJIL&5L}KQRlsFs}CHc>NmSEpKtiac(j|OispaS^$xLMR&}|| z34$RxLXtO)PT*fcE0jyi;iqVA?E9gN(bjs?x%t`Ok`W*6SdViAdZ+#ax5<#SxO zs$>mBYM=qh0k<+R3JN)<)=4Pr$##=E?A< z>~qJ_mD^=cOr1UgzS$3mwqai{h)M!CP;+WoMLe%SaNU8T_LLWGaGEe32|G{oNn(KN zN%inHfzth~%_FfDeL@M53kq_DJydy(QbYxbP>e&_wKPzhs_rJ+%RKaCOKRVqa~tSI zZ8_dkzG$}4QvZi8R1N|(vN=PQrcUPXYQI>w5Ty1sX!xq_kxXS|PaLr_jwL{yiL@Jb zmrI-Jx`%gn=WS;4X+Q2cAj9={c$2sD6Z|ed6pZ;`xjNth7SLku;&C7Ðhm&VN08 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�nvA+aW&w7OwNFj|OLkgg-zt_KM75H_H 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%0Atw_C&mqQWXq`b8#i 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

{8Z8XFYV0f>aFy(_0bw{2q^J!i4>7M5SD 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/interaction-str-d9e7aefea121aefb4e94c6c9f060d016.png b/docs/assets/images/interaction-str-d9e7aefea121aefb4e94c6c9f060d016.png new file mode 100644 index 0000000000000000000000000000000000000000..99ddd4e900ff2910ec33426ffa94279a71d72016 GIT binary patch literal 237747 zcmaHS1y~%*w)Nl+gF6{KxCVE3cXuCLg9Uf@U;!c!2*Eu#f#4E?y9IX$7XIek`|dgC zy?g%ozM1an?&_|t+O=z~wRgp+smNlWlAwY>APjjqDGd+^ejWsZ6+%V?j?l||JqCf$ z740P@)#N25A!_a}Hug@|Adp;4hAxtx<~M=@Lk&uJWGOL)pUU7A95DrCmRA>4(F$^~ z;W(BOYSkrisFlW2RmJ6ySaNW+xv4&0tD`=1>GOSyuF5tP7|%J~cHR}<>)+RfT#tDk zM~i}7pz(zp4SURwC}Nc~ssy+PV1cX1^bE@QWes{Wf#Ijq4uRVnH?QlIr@~W&T!qcj^ZL|)*PFo$ zVx)X@#${tFcjELLF0bvwUIzqyh3NE6>JGqIG;>FZK0GS*Ke9IS$A)lJm}`%vNAy0o zjP&!*6XsWnnWp>=k&lZG*CPet5u)84WMt=*A;;*>mGHpw6KBfzr~1SdNV7%jl=AxH!t}7#8B>JV8&LxQ&zO|65c)0_j)ya_dK2>p@Xo1jPczzvo50$YRsFC*g^%n66^1lxy;wh^ zH#fSGEU;r?VYRC_tWs!1bow@4P6|B|X`3#pyvCh&NxF-356x&J?sYr6pABih@pEh(N9LH6mRYGsOAu<8i3!$4p2k5@#}uRA*5k z@z0dm8LE&OJvGqpa5?zRu!s9Q18K;!Gt;Ol1r?!zvPw+Imk#B!REz?#JhW~x%mAGW z26;qbIZzTM_3tRz06hfuNHV>Q!^eVWW*uB)1L4xfNQ zM-fpy<NW=pnk>neuGIVg8Bl+bfW{qmTs%DloqEn zu>IJ~w)D2Vp!EHuz3VHw78hgjY?hVgn_$ptU|VD3^?(oS1s~{cagA;5#Ah@TBa5IZ zC|{IWZQx9stg;QfS{R1eArfeYJ{*D(-%s2G!?ub9EB-th-VK7H6uxZR?Z*nI*`>se zg%^TTMOFc`WrjP8`mxiw>e=@&I#--L1i~(BSMtS>+7EDTpruvvU-1xRlp;!Wsb?JG z%-H_D#OBl@auA%vUWmLLV`_*T7=aTvCn+7ml;UoMrjc+UiAhbLf+k1mPU`o{lj?Jd z>hs8tB?6_`4iSk`bI*}5Bsa!U><|SISi}h5C{A$J;Veb`D59T;`{`9j9vE_E2GZ=w z&SuztRn5Ul5JPLZn~k2EfN%Luk5(t{MfY_8zGHt&RT3Yz?JDyk%;+juh=Ooc^JMN9 zP8-?h?){UgU)uLD%L&2M1G+C)WsYxlHlM7QtHMtow@l+LPq~&r{^kwE`?B5y{d#Z_O)|dX!a&aJg z5hsvjAoJ;6LDBNNc6CinF3oebI33*b5p5>Tg>r9`!;pDdFQ}KGSLMst7Ky;JTg*$` zy~gR4aXW6N*UwmTGGz@F%HQV~FMS9cH?!k&IN=T_@!)3U-s7&cYkRBtGt(0@km}1T z69rMR4yohGw{`~h?k{d$*S=ul#&TT#elTHSmoORoeQ?^KxL$KV^amF-wIRd%O@o?$ z$d%5a=6n(nQBPi%H8RmT@dA-85xIaAxg&XjN~TK8sB^wfzOymZm~aVx$-V`@Mb>K} zhiEGHo8>lp7RNQ03%e)=7s*#*I+6xoy~8S|p5=Xvne!>!UHtvSiPp+%`NDV4N((=A zNOYJy7Qi^0*@B_$(`F@I#9@_d0zF?M(IN@4Rz&Z8B)^Z3vVV1rT+`_x=%JvtEHR@l zn-D0`lrjFQWGTAAyfOW?KVDFoh)#sgB5j(kU%8;xQ=d!+vpnAG^)%GMj>O_4`;x`H z!|mMgJo9qJxKq-cu*XOK1)-&YdcRt~#)z0cy|^5L7X%%K8q9N3Y-i43hsm-&)iQ2ujY3zo#HQv zCbFTH6n?pW=U*Cq8}F(DGy-|<>h50Oo&_=mKD*7iLwRVp6W*G2uiT-!tsTlH%7)%vR+Vuzi-I?p=q#BIch#b1aobyaq8g{p>wCAuYa!WTD*PvP4f zOngfHe^!i7neUlbn{Sz8^&ECvuO(PcR2Nz5CVU|^C#H-kO@dEp8_-U*My@ZD{?dccGVQJs0;U3IobC$}uh+jxJq85-Gp) zkES?zMEUi%kyaY+5@%PN1*ah!Gx5iAZpsV_%^Y1XyX#O0=}44@b9_B<0&#*TL$o9u zEcQmfv)#)D(RR=$WHpFI&&;4#y|l9TNiIv4U+yHRfeL8r8M=LF6Rg5lJo8Qt}0q6YEVwd z782ijWSWK_q3Dw@ej0o;4xQyH<{2bgN-n2F-(~(f08_$#BbX%w2cJm{1mBlMV zC*z%AjNy5s$XsUC;Ue3C>BmM=C$_oYUQt%E{@O~@yAIcTd-;)qS<`P`#J(OiW@u$S z#++SJ+gEF~#_~}8W>TeFeSOpZJ&^Y*>d-}`Q$)>w{A~4BGG4OJOK$0+<>+?!_A2si zWJ6C;R4(Zk5-f5zp_-C!b!F?NM-$flrTqkC`@$x!Z9Cx?QZwJ;(~@4(zgXdaarC`@ zYT|?8Sa?2vFwf6}GLJlu{xSbTmzGt(wUf^Wru%Fy#ubikQ2vYDeU~VMC4+s|W>bfz z1GnaCsM10;Q@gH;2}aY)E0W{+zJ2VO1?S$CCNHinn>&`ZPqvL7&K9+sm|z zEbSlsK3}x2Jq(IEJV7N!V!9Ts`vYsVt*)o9sN61-@bbcpoNwqdUoayAc?>a^K2Ui`8Se3Y>F8V0U&0rd=^t6mem;m3WUQ!Jm0|es?w*k-$P^`6{yp6Ilh!NOF2EoISfDnK^7~m@cL;9b68JOoFxId1= zf1%W%4!fv7k6t2 z4=Xz>JCz731OgFqx3Uq?kdpa#ap0dYm7S-js{k9DkB<+l4;QP8yDb|BKR-VkJ0}|_ zCkt=|i-(`Hr@1eSvj_FRZt_3(k+Sx%bhmf)w0CiaJl)sa!o|x|n2PG@LI3&utDe@r z_J2Of+2h}@1-u~J(-}4nR(7`k+#4t=^mJ4}&ED7ANngqy3bYyU43QVSoI-zG|9{T> z`NY4J)cdm}2PgO6ivH!)|1PTSVeKyI0tKGwDe`B3{rkCpJ^Al~LTpd3{+FisS3Cc4 z6liD>R3Wzibeafi4%Y5lpdZQXrBtUK1Bz+U%rE)*ySq0nKJRb$KYv6$oTSo0hmq_Av%~+> z2EquBN<2Y;ALLy{X@*P$8~N(LZ&tzV#UqHJ|NZ2@3ns%M6HR2oK@9N!=`R1e5F5&a z_)qouqpl%jVx7?qWT1(U|6K8>3*+r-IsSi@HbdS7!OGNafueOH{#tW=sw%|}hV-q* ztG^wN6oZifo(uau$D85*_Xamnudtzh;SZI@%(lnI63_*ItUIfJY&)@0Dz(z_cK18A z1^258Bw46TUBuj20p3Eh$A^>k^Q*%J>+|iA)RYv;TpnmDi(!MDjm>+1(^l_KCk9_$ z*1!GmVd$fFxz+CEJLiRB={T#dP=v}vc2$>F;(zQcFg|R-!kg5$Z)wW3%QLmgb(A$U zG#1O1ayT`LrBKSW%2L0V>#F|B%gbZ#i^We%rB!UvwXi70W6+R7C1gD?kr_W+qLryT zOo+OJ4?#3<@Y>hW?+ALJ=yp0??}L^9%F`ZZwNPytb>}}% z259aAlDhiVU

v`w{s&-gB!x{O4!WVhbvsTw7 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�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

hzHQWUipfBu_UW`fsx3s zmVO0zs>|x1F|(&gi)%9({jl|;n@JyVa*ay?Q{hz$GpSl<W=2FPVE~13x{RvycIHN@OA8=rlbZRYzTegyup*3rI<=$`Tg!t? z68q>X16yg=tP+POX1-j7r}?w)B#a(XhA3!XO`XY23O5pK_dj2h7oAUsSO44%(!$9{ z5BR6(Ow^;F&O|+|%=3y2rwn*?#)09CDC;;XMELNh+=u`j2$cj5&^QICM)#w=RyqP3 z;}fwbzvqEyi7-WBQ>j&B}3Fb>=)7TxIfX7 ze*vo1Lz6Qpa|3V`@OO|9qBdWVH1P@)#khr<=0_ExAGUUKCwMTCfOX=Zo@6^OD43Gv zHAlmfoOlPv3kBgh$5)ng`%y0{6a^-m^+#RaDvp!LpshX|O@9d2UF3=652kAMv~=v- z*=QUE_cm9Gp@n(Fi`sOfU`mkcQwUXfehB;gxc_dCKf<6zDk8#Xe@5(xT-2dWb=O!; zxUn*?o?rmtK=zjFK@flf>4a`h5}Z?V_}uTnPV$zy*YFXhUv*gWj=|B;;wSgOW+r_V znKp*Zw2IRgPjwZn_XA`s7$OQz`@SJ?!>Q6@eAZ9fl@ zs7vSV)=72dA$ZdwE8;TM*Xr@MCnq7)Qj}GI2sj1_BHiJCD!;NsAR;h5MuS3HI_b3g zpTnt$SQW>l{NeFQzl|*YSyu>+FB(HzEYWy^1)wRmQ00zfDPAr@5wsslV|=K-Eqzw7GLMdtii*o= z%zui!AMJ65N=##i#gK3AVW&70KM4I`u)ZEgd+OyTt31EUhpXM=$qgwMZ{}&_aK_m3 zsp6>JVdG?TMy+KX@m^hKUIVy(zL3stKOMvk$0fOL3p8cYv7n?nt6U1fQVQVLNmviC zGp{_93yYtbI{D&UigoGmdA0wifAHtKwY<#rki?R)`mpq=>C{-e&sGSmot69f53Im@ zsEQL0l*4;i89d#|;*@zXo*uqob*w8+MIJ{!I z9=i#cDK`=9c=1Zgo(@$7wximeYV)`*a5mWW?kpQpjL6ePz?@mJ9-C=o(|GKfL0k*$loRd-~3KZAar?3&0?P$`f8y$SGshrd>7VVSW+Wfu+yEpQdHvhz=FocF2;+s_56fTVe11zoqD>R5 zlbScKSJdFpP8-)!j$nhjg@%QfG~0u@M>YR}a+08GZ~<0i*PZI#TjnWz|{*o z-d=Pj@gMkVc`}B-9qbKWxgH&kCP9HOA!1y&)G6p*Ojtfj=F-6R&)Wo4LZ*<22NYmj z=e2o8{8;W+?$3G6c85%BeO#Ez2ESll(S56Z=4MipFCBcd5<%FT+V_E)*zvOfnIwiJ zcD*_#7S ztC_S9KPzDRGur?Pw7T6f`f4csrxT4CG4y4~!`A9@(5Tz6R!ebU&V0ey`&>GBNRB*_ zT`NvjbgxZ-NOSX`GC8Zh0X-FyLIcxpdcyzno?FGDV2uwdIjUuovH*uZQD}Dl(^JdO z8KxB-Vgnev&opCn7HVctgYpbynov-E830^=>$OFZ%e#Ng*1tsc<=*FuzHitUQ@fb> z!I=9H$hO!1ybY4~>VbwrKEOt5bYDUt5;K?kC5KO}ZU?kNNcx1oxnzo^tFwp0(yC2- ze>@8kt0@CG0h8oae&2{yzST%grn>MIS=I8xLZf`pGv30+v(m|+!2m5X=E(gAX|W7) zB~ynJlJF3OjUT_~3Alm`!NUOEJQLy=?O; zElJhnJJ?0W29EzsaBjLMt`9TetutnxAGRaS*ZHqe3cS>;>S~Or>^(|C^`Z(}mB*xp z1wRvzu`8IjenZ#Ye>@zzmY`xY8|aK5fgdY`NgDCC8hdVnIF`xn+cG{cX3pt4l}CGR zEVk{yq57IU+K?v$B4_oc_maw#l^V~^x>NGqVVhr7D6o`lfST=z0uOTMqitMt|Kna$ zIzCHaPGcQ=l#isXjZX0#l51N3V3z9wiWmFtQt)6$r9;Y+CMH4U5K^%-#HcTR7&1ik zH}DE?_z~JE8)=pDV*1#Z7eBp$?$ZE8pm;p9+WQt6kWkj}h2XJ?*-h3cZ;efMDT9B7 z2CfTt9P@epcio&*ZfB1)Y;fPzW6s_rLD^jJDFWt#b>8*(y!~mf5}qr7+)i{TIbLYW z3yAqFde2^%ah(A3UAom>0Ov)jQ>C%_xQYRb9#0ZWb@G&9_qE$#z!2gpx0=nv=w95B z+f8SgOC7sPkXn{`5i1 zA^q5dhed-fPJ<22MBpCFPXwP}$|i^H&>SemVoe(A2K>YavK!`^WBlzGHuV68+cX2n za#KmYr(b39$*5>tYMuv%39Hmzv>E+pN0QP{WHW<~2AbqTx|eMD!vZUN2x?>dziY|U z1-v6&bRPt&)ZK9;ZD6GaL(LDnV~4E!GWnKKNfZP=zBoFvVTZNT@d7^DO#I;X-Z!){ zB(Fl=>WhEXnL{6d_p}>+!mms&xF^|Ct@2xNY3$LQkO9T&CZ_2|?g)V%e!K>t^K4%^ zLNrVFOkB+3fuHcC(BNyUvVwb0$EQtCKccoujnfaFVU~!x$d=X@w zU~^n(0p&orATNnVa8O^Ap_X=X4rk5emwd7kSFn;DHlLu(!}3uumm}U{Ai$M??GU?4 zd`;d1&j7Ypts?am%Zu-TpnoMW_u{>_FDUKfMaLaJk6M=a9YQX6z;4)B2*>9BQ-6kg z??d-x4dpoLgQhK--dyjZQD9~Pde!^N26Az+`p#&^e`@Tlw5{qgvBr=B-1A}ZBFhFa zv%wpGDTz*6gvZy!$mY-HU}WwNQxawX;FLvW*E;pS?|rQR95qBY6i|o`G?d{z2KJM& zS_l|1vX)xf@;gKNmx6Ko7b=>DQucp;_gFJjWBiC&N#l4dHYwiz_pPe%Z=plc}fbo22npRhp5T+d1GDK~`M%8YdlykQ8D$fY5aJsGd!lwFnFkvQ#rCtr%% zTbcuXx^L_@n2Q2#zL7V;9q5zX*=6{Q!&7qz;1FMmDa~B^=zQ_7bu;EFXoo4Sg4_l0 z_tS*z)#e=6dOwvrETbg0b^wj;N{J+u*tz^vU~sv5EdQEz%OU>#zNB?`u#`%5UA-K|cY#lKF+NOB@9ygtN%LnZUjpH(<b@0{ z1n)1}CO!(*S#Ab4{&Taa-&_@YQ!5N4YD#hHo+)^pn=_oY;pl;px;q*^C+b92%b2XE z!DECglc(jJT;1IlWEhUQmG_W@IAKYl%vhM_p6xr?hGt;SXG@!!RPQ|T&pWtFHylue zUg~E#v3-KUp0PqRR%*zR+2SR2vGHa32?miZbB6!MCos`=g6`b&llNk^ryuyOEC)!e zH=```<>!=6u&`A($6+VN(Ly|%Tq{)Q>2py@&-p!0JSshUC*SO`Na-puirGAV*gz?b ztTjlI3&z`%?ENC){2b^8ebR?PS?;M}`FqOt8t?=SRZQCMTvC{V2WTgBG{OXgq}{B9 zjd?VEZ=3G`l!cW=nA1pS-DO(dw@zg|O<(wHHxR;;kPVZ&T%yJCVlg(af-B^gZ~1lm z!c>xM6no+1znwGCBD#N{uu%g!(?CBeNknAX^(8N|2HUDF=}5ln|stYDfVAK^i2br4gk>S|q=7?%Q|0e|*pLuHRoQ z7vY@ewXYq=KK8LIXmx@~Z;1pc809^joIV~kNws)G@-G#vr9~!r`j!jCPUSZh^*yg4@petUKx{(#Yd z&OW$}BHPK1Cd@x!}?&i)1Xn=Hb7lCFxE(C@*5! z>FcGlmNx@z4-A$UQ5f1jkm$8d*{za&3>jEM#p01#YdE|G%%5THoMvC;Tu-P>urSpj zI>bo)>pwMq0L_&AtQ=nd5>jHrQVI7P@v6Tx9q3xNuyBQ8FBa$(-E34=&`tr9B9NdOUUED<{h)aH1m}2r0E6^vw8wUE>nWtVCV93 zkRTuWrEo7H3X&JDY^j+L!lpQNDm+X1;&W&cL8lybI?=n}uMS#o>+RK0GnHNf+gX&} zI+!>zoNzxKuAx)#SF|(5Z+&0dY0&%Js~~*n?-Su<+1W>KZm;&X=*Nt>JJoq&=hX9N z{v8;pgG}(%C)yd89TjnAAw0?P$BgFVRl<nTz-svaAw)jlR3526J&xm!$ zXrfiHrj+m%yaJL`sT7!rMMv90ltXL9|9rg{1FLJjSnP^@FaI^NIIqc6yebtG^#Fu{QOXk?;>aZXY4{NV!I=eUSS-R50t1z@E$sZ|H4SromuM6`_;%+aqSfJh*)F zY)rU3*h+MTM^yPV8%Oid+!5zvhNUH!UM7qm1rAXsiRwOp4~Q!)kRNsO&v>MEi#tRZ?*j;}Ix1 z)E7F|IM&0^z4YtitrsTScyF}5kg%xbE|NZ_e*xG#N)?C*x#ojB4{_ z5kilBf4?stGKM@|3nZ~*D27oJj*rdg^dz|;@U+Dl!`ct-PrMq5e&zw_pI8caaiK9Gp0@~~Uyp~aTOVTn0^HpM zs-8Du?9ip8LBzFnrDFuiS%}$+Oa<+Tfz&IK{_o~*5yYq1p6$Yf2V)O*WKHslnF?^& zU9|5WY_Ly;U40F+s3ff$Q+ALb750g|>?yLeuMT+=_miiFf(61x<5|$xQ8S$DGd2iU z@K0|7mg>o7!=S?CtJ^>_-0`$1bDvE9foJ5hP&9T`?$*w8)t+?}Y`yo;?Q)MdIH=pd}(bO|yB#rU*vAYtHU*$t6nMkAUUa|$k zr%{BQ9+{ItK+3lZPttur9j%naiZydj{s(Pk`R)7-T!Ow{ET>U|wfpBJ`dLd5j6IW1 zR?!!S62HW;=uo%E4w^9dn?D8jvRyO7hD$3Iix$X(8R8iwc2S|ZGPeTC1aK2i;8E&b zp#*RHlOmYb46VW84?6jujM%vuo?6TDt2&ViuGLACbAIXPQF5_eA z(fdsqV&B@NxR0_`yZ>s9&ijbeUvYYm&rNgeE}<;pMJZk<3UJKVHu#rQlE@v_m$6*v zricf?_JZLca zAM}WpGaXUA;A=K@mvgiU4PA=SO`zEC9JW5}myhr7oXW474L_2}%pm<9k2mbX;E6B@`!jlk zT=AHU#fjpwCw5Azv|w$nhh!!51XJ-?B?lqf-)tx*Q6!0EG0{xFxHarZ&g?PqK$u?G z@Jspwmmfk1%^KnxRCGzKe=ge@gltFQw-sI$UG4)5<$a>Shw`Uz1AV1SZ8plC;v>xc_;#QfL^dY-Wbc+aToa z&0D9BBNl5WB0mQcr%NP|1|6AT(0wwDmXacbV+#c;`;>tzQuMA+))=$2TAtPV<^0Yt z5o@$|pTLHey`c<4f2k#;%{}^4TK-ajw-J>})+Y46plmM^=TDu&H@PNc2C$A-sV7&O-am9DK+(cd9%0+m2|Mb~Dhv#@kM(k4-$u&uS$ezJEX816H*^>{*bUHNv^al=XG#Pjb_LNJl~6ocfTCV_cF$TowbUQYjQB* z!ETt$fo5O%?`{a5K!~C7;Wkj8BRF{OI&gY2x(5*@@Lx}1>2)fIwk}oWiko`OYCt8* zj78S?zc!|hc+e%$y85R-jcT$NVM!NJe(PlGJ{ zkYBjCnYEM*62%nIb zIKiSI!upcIvzBj$xXgD{JWW18{Xg?dJbyMVop!8EP(IVb`7k$giE2jLLCTY!hexvb zgW^Y2Lp-{4&??MWjosURU!fdPeY-L zK0(Uc3-O?M-CrEPVg+kd*ho2z&Mz`h@K)5#e%19MaY>~Vx_B;C9;xS8mJQMQ zJ}}jxh+=%0{gbVM&cFkOfAyj=N)JM8`dZ=!+)8sChqy!Q218T0*^?^sjlifvr0_5i zEOP!`u=27>a_fc)E;G}*&z$OSTiVOP23heg>^Y55cN92)}fP)_)cp z){B7gdq?-iG)${hY#LSaXg8_P!erq`Z$>uq4z|wD4_;2Yl^>2tyT|Kot=y1jGQ~9; zw_$XSz13V}rh**Lc(J1oNgSFrbKYk{IJ zf~ui3qrJf~jfaZ9xtDFz5%iC7OZteD*jEN($My@W(o523;MdPUQ#1jy=j$RBTy!5( zB1Ho+kRLSpJarGcS~5no`%)F))@Kl)ht0ZY^hARgt*k2J16i=o{B(ejz>O zy)Vq9JTjCmE6r#dt=>D9yS3uy9xEOgio>X0@wBCFZ!jm(jE>Get7p>Mj9yI$Ao+&r1~bazK%?{L-gZF`4z9gRJ6b^fTA_ZrLy zpm< zLru1Ox(7?^Oe14AD~q(fW0bu(xy_mn3%;?gbX0Ja8Q$Ak-#f2oU4q_U{am`D8*W~U z&7>CR&(yssDEM*Ot4?LbS^s%et^j8BQOJs}6f;cSTDY25xhoH4ltesX{3_%)Pv*0d zQyParldqbRN18+WH#mZNo~qtFUc=^#`QQyXp5_wDu`n)2F3T%HHfv3GhnZi^mDTtY z$JkIUd07N61|mLT=Z#*c65ViySnZ1W>E1wxCB#!Jjh^5R|K}Bp5_5Gb9|8^{FtqFwq=y>EaADNm>*YoDk7bhi? z^2WC`c-*sf95xK-L|HhiX<;xcwA9~u@8+%T7W$$AE7~2Y7mae&@(GT8VB*F~82m}Y z*CZ}Mr5Ks-PB|jtuk_Z%J@9pV9{#D`h#uLorS8?{!rjN)0f+_3C#GE2$Hn&-7)YI( z`^&Df+(ySd4U^f3RwE}0rniuFCS_Sm{r&zdyMP_>%e-vb^q;=$mKWdlYsw8n%nD-Y zEtVdx<@lXJAGdqBo+2Nl*rHtQb=e@h(%PoVp6o z$`?c2j0*}UPa>yy!Ii_sE-qXhsvYRhC69c2{0=FX#97)YpWPol?4-x3H+Dx;sn9us zu&%QPucSZ5R%Pr}BtcGza{R-AbX!XDM+0KPq(5=bE*8J(GY#Y%w0bnPlv@`b=AGvW zXX*G(OlJ_sx-29rs_4hMk@mj8*LEoPfZS-#J`#HnsaT6)mgc zg7)(-$5Zq9Yw~^CeC}RB-P+Ch71QWwjArs=qM1DJDQ&G$wr#w(tG*E8V)T$CA2!S$ ztk4C#Uzw-*EIKM~^nC7<+R#enFALJ379V4>bTN43v@SF@z_aQ%Fm_6qk*Zl|yKF+l zF}YPKTt0`CP*T0rwWU7|w6Z=78?!OU?6_M|iT0#WTSCbE>H;I&;F|N8M{GB=tSU0C z6CT@J-@&bJu%~d2Xvv&M26IV89+n0#BozclNIjVN(k>#L)C`*&)&FJ6t)jQlLM(SI zG`7dE{Ai(`NHayiMvNDl+DAl zc*l8I-mc<>Hg~^1D49C zD9K%(2}%c}A|o^3RyI^xyr&S}pf*M%*g~FE4@k|uuapPUk8F9(B9ohJvR`oNh5j_M z{gKy3?auUBl!B_X#EDB)K3BE#%t@bTBr{ z#fe`-@o@rDa*95&`WRDvv@uT6g8S5z%5)BG&fc%&lrO1LmYsbZl!QBQQxmscq%AL? zTiiXMM)$b~SEt^@6W>;QK?c>Lq7kE8dulz=$a3tc_1)I%R`!n7^UTx5Yxk#FrUg0F zHV==;1`R2X@S_`x8aCd3~R}wl>8uU-4S<_iER~ z8n}TWU-W1lQ^??D>V^3K5EU5UpQYtmING(-J##Jvvq)_=#gr$1Y?0^~QtUdvwP>wCC|9GDt{IoF*Onuz!vM*{;BvfCXGoRjpdUJ_>L`Ek4HrIJixP`XOmhsB&;t*~6F z+;e(KfEyHZO6tJDu6bWtUK=@f$B&D_qvSP&&+#}L;c{%K)=3E4B4@_Nt?0lOxWNO- zBduE72JM(%nusyKMf_(5%#>0up0tuxnxpQ#6}1vwf}F@7I6@v zbyc9J+VHE@{&fa7+~Ku!%CRQF5e$@svV%{BK2rFJf|0$n5sfI>%cCy_t{C)@Xx4#c z(j8xs&lzI;jS5dhVCC$f9x~8J^C4Q9e1h!Qu4X#X99h`d)6Vy8)R56OvZ=m?rOxpC zKEJji3xA;1*X{lstXG?u+=1F=g6R{06amy=Gm6ulPSgq!7^3Jn*#0{mPkaQ6 z2mgX#U3tQnP|a+e%~TFTbt{9=Nb2KulT*{v*PVwS|8WTb&W}Np@Ys_tO7c0{&C-Ax zq!Pvq2e*bg0`&C}F06&=Khz0`(LY2QGw--dNEg{C{XNa{9a^^MM1a3n6g z1>K!Qiwm&vk$JUK@4RPK-DGF^^DAazjYe8yjd%uv;xdI}uLj`|S+L8TONB4HMd$Ds zCQrRMI!G^^o52UuJN6D;1D@n`I8v*`0meF$l^UNHDf0L$3`sWp0kPcCIhLlh?|5xs zN&eeJ=|lD)-Bg>En%ij?~9 z_58BZXQLyGPh&W+0KtA*a?5I-Ph*(_u8D&8D76*;lOZO{X9BCR$XseKzq-MRptSIE zq>4vNpb-CZSFC*C@IqdYQVU$2VC)2mmF56sh_I5dKv-q zdaV(y%goA&+VqP}>3CK&mB&8xE& zM6(k!fNbwvnK_zhv;G;`NI=EaH5VkikrRW=Yu5U; z-R5{9#xL{;T=?RL?aB}D0EOVrQOoE15K7h-Fn5Is2UDz>lhbV{^(pB|dDq%fn+2-$ z&;)q{*dF{w+0S-QtQ#Y6gLSLTQ3dsF`!mG4kcyc`#D#i zL`cI&T_zyiN4@tDBOulPbS10?(SfO^sTmK3HlJ)wRczZ(=^Nb9M}PsYgK-T(wV@2L zLgV*NBDSMBuH~U53)JB{I5o9^gzmMNFh6gyIhq@M6lLcgEO;$6d$>+KQ0XV&e!~g^;`^h`FDfsI(5ppsFJcug>NF1*cbexRVGy5K zYRc}a`{4Q0=ml6iUtl-+&J{2W`oPXWEAVk@+&A@RTVB+HhpyT1d`V!k%;5Fz!Uv7R z??cuj*|G=4cQ4iE>YnBQbo|<&6>zr6&GZFGS`}TYs;b6!1moF1IjxX;HqP;9BR}rd zl4!mC^puCs0B^DF*YX8$%R2S5HP%rLYFU6E(QKEHn8@}v;H)&3_EKB+_|dc3nnHRRL=K<`;+taU$vwhx8oRM2~8X6iN{Qh`tI!)---fZC%$wxyBgL20BI{^~_mOyS# zNC%Iur?0+Jx`z=kqmzCR9K2Ec4bZB_SSF6QCX?#wM6s5~$XlYP3Hl0Q-eBcmtPkJ$&DgZrlUd+@ ze&Pz^;sDU}pbc>Zz9bcs7YyY+@#mbl?Jy%W+w4)cGvD;^>a_Q+dcEDG6(GuBmV5w1 z>zuc5KU{oy?O#FEhzFlXnFlLMF1pDeDAM|3PS7LDdu!Gl`d1eujhlpnsDaQ3}*E2-%DvKg_1WHFG$2)WN8Y`<{dY6Ah_V=6E>r`W>u`A45fjK)weHRPA z0=R)wNdYt^v%p);Xx7PigX7l=m*goTunr8WVgJ+c!{7H!jvoQmXDC!Or#(ghY{RY< zxz2XCrutp?K)L8GdpB2C4ne_R@m}SY`lGJ%!rvVaQ-?%+ryM%?UJ)q^Ts2D8TYx9F z|L-l|MlOR8Th2;uuk17q*_At8#%kUFz4wthwf3b~!_`O|aAIKXnLr8jyNVzk-{^iBwI|GXrP{{TV-j=f6G8W_%J1$%!!EaGD>n*R)+#)QUvmL5TBu)e{A z3byPiu1H`_#eFH#N@58(RZw8mfBNH%TP#9L6~n4#1WXxMPDM|fxWxnv4{?`&LHf0; zlnZYTHoC0UWormDDfPZuzqywfG)*>2W_vayvBaac*!14^9Gn42D50q8s}@&HUBe}r%cpJ$5#;m|B%4j9>P!S+~~Zb z?Fl$|+sZq+CK+t@9Vg;Ant`k|LMXa|IlMVSoT$bP$_%{Io+j$)r?3M^gjR+qMb5%U zMq7t3MHS7ru&`XnzSCX3{rzj{$@kCc`Q&7(VJeuZae!G+ik5>Q+=IBzKiU~Dj54BI zt!$ZZ(wi=MaPK)e1{5P2qEyaMt@wj+goFczS$)7D>r;m*EzhDK0cW=m!!K_E;p|8P z2T7iWA72o+6IRde|NR>Gqcn=AU?kY&G zm&B=&*S}w07hCph=Lw-2eSbTxyq6Vt4}Y*qI^+$s6^ug);dW@Hws)I>={#8mxKI*U z>hM6Vz81#Ac4{FUKZEx6ykCh%A;RSluLB9kxdJi)Y7`fb7D}~+XTGG-d9NI50himJ z6C`w2*lg;XeD_$xJGp4ROe-2ZjATs=tSHVeRgEfPLCUbUeV$XG#8%!;lH)zD#?4Cy zHg=sLU7~0O^>xGQS#;xOLb?>N&#IZW6-=V<=wOjxxHlS8sU(cjz}YPNRmzo3QUaae zSr3;$jL(NAH7ZiQPVg^b*-%@M^*M?!t87+JOiDU_6Ze>noPyR-{(CT)T#2K_3$?p} z-qfptm^}1&j%z_$mtFf^d@j$wn}q~AeyvN1GI3A|cW`rb=OjvuNa zRN1@M8#lcsV_;cM80Z3LTHV$71kG-GhEInrw0cA96SRFED5Vw?7&KOg4+`z$R_lHH zKFVL!k_X*@+&K$bXVnjyAfd*FQ3j9k*D2T%Ls;a00dD;ly6~=hU6F~G)$v`;+UN~1JB32nEtkE|G!yBO9R9tI8Ip+{&-Y>9F=FRW^90J} zN?(gVad%oqKI$RzKF;BGOwkuc*&?dzrn2kp|BV>SwV1e2f9S-!+c<2x?d=xW7PFQA zxHu&>USZy=*>AZ%Y}!aiL=#942qBH;%ZlQUswGEs8! zjBnlE;L(*XMJcFyQ^)=;r)_P1mV|dchO73(77MQ8??5D2)pqs{qFf!&wVuupa@1QE zHJ#hNjpsBN{aSAH$@9-U+s``TfpOFj?(+vM9zp_V5nQ?5_L*lhah}XCFI?&?yHYaO zKAlth_~}-Wz;3{a?J5kV|9a#H`rzXy<1}n(1>WO9Aoj^uXSn`(Auz#HwvbmmpNPgI z$FORz)m6n+#j4vkJQc5c@jX*YMwQm5j*k15kf zS-HIrBrb2gd+TrrVefqb5vz;sZ0&K(h#p1i%(sS-u>>gjOPjO?I7oo29gFj@^7xyS zbs@pkS|TXRiPrVOU9Nj>IWD7P^gVQp&g~EHtVB$zw)FNVaoa zSA~)=^r%mFp`B!!Ve}NmKgZAvOyor%s;$mu$BN|DsD)5)%HtjQKi|4|0POg#RO$~S znQg`Sw{cxY!aNllv}9-08kZIqXsgFPmPL7L{_7y}%0X=BA##|^#0&$EeD!8mwbnm( zh+P1_fqW&fHslQvoC>8cyA%OO5}s<~pJMs@5iIz?M@aiLYhHvTL%VDRrLw$7G<)Ud z;aJ}}`FJKtaYiLw#^|1xbI9W(`mEasu%fI3A{~*!CCET!tSDii?V<7ad3A#iZQ=5$ z)>0GWB{R6Y@7dwrw)Z=w~QM; zk9@jOaS{&Lzt6nBHaMPT#8(q}O z>ef2Je?-R>-YSNJ2~G~K7m}JTX8t#KdIcU=uvkYxwJ9X|ki z<9#3uT7j+*=Ec^0Q!O#Qh!Q%<1|cQk=;)|~9GoBugrwXQt}OU8X~@(y3&BP`|>6lL!in2T9ow@mHXpKzex19&Ro9#0+r8X9&Ecy17-1}@D&Hnd&55;}3w z(W-FnVy&P3-EH|!DzyR zX3wARD*JJ69Bq;qKE8W>;r0Sl2a^^kkQ(Zh>Tw!2xfU96dv1&>1YDmlX>3nbSg&?P z8~{zZ0kA8haMm0nj`NoM5U9)z#qI(y;Tuqc;eD3k>6ZpReK!!p$z>uGMOV zVBGP#XAdtK+wYq)q7#3|mp#$+gvTi6u1MF*v*S73%D$a@Ogl^EhPN*nk#*LCP{TUg zgk~{rZtiVQxz2%jA5bMcZa^oaQusAmeU9rEq&&7tJR1#a$<_{gwEbnAg9CP( zetZK})dM7<)wh=tmfgoU{OzVID~@|k1|k*~Umz0dd(XPYlk3g9sd*|fUnwG(D556S z(bp!5f}akcbpD36Rc+vMTqLZgRz%QmwTNi?x-Cz8?V!L1O-sIPK#6n(f*L#%pK!bv zTV47YQp zwWUweh)rohp!$_vCH9dw0prEd7oGL7UgpOOx?mQm%Y9?EPTGy_U`?(jc=?b2JAT?xSG~0 zcGpZr^6FCJ!0)wRp|>Z!yLnT6ycaGxh4vS4c-R!)zrGNI1?{zh!}UXWbv1E78TL?8 zy8IE%DJXtvk}-%QD#D5OzS6ZYX#u_(dO+5SMs#qK&#sRO}D`l-^X^3s&bcq zf{a8TuBu22!?GF4t~kbk271FKE%w7atU>OKgRiCtW#!zRK&P_1DvHo5hs7GhtMjv$ z=rtfou@poK^B*I;!b9?Z-;g{z+pZ!aC+AnoQLHj+wF2 zr1FG21#)C|HDtOpgE~31WH36gbmXp`i5iT-rC#n=%i+WTY1*?wZ^E4Qx@TVweiV7v z&paq<55Pfj_2}&vWjg6aS$`>X2G?{04)e2~DgGM-T+kIzW2VTqGd(&=(`S5k6{SYr zbf&Ps2m9&F{+;axtp$=TH4Kj7>T(HI@IISYu)wm&?Q?aqZKuKe}%$KC5v zXb8IgHafweRy)CTXO#1643g>D10F`YtTW#VRK6na8xemDv(u;E%rpKx)DUbdfI3FA zfNi3z@d@xmICS+)l?53BK$R~iXGfd)H~hhFrY$Hba$U@EwdfLz;HhAM^|NZ{5Dml+ zpb137r$>8f+0upD8Osmb@&sZyr3{iklWxta@6)t@iaw4smfM~M=EsP0aB$#$NzN7c zYY#})alVp9=`{iuN&aQa06qY&~}zk(6NRx`8|X_r@kHb+_INF(zTa8|oxl>;i1?CPV= zIr5noK)6aWs=rRLgH1m@`t`o>BAEHxz#6jGg#@-a*T@Go z8i(}lE2YKRlot9Hvzvi%2<+Uvx}Odik=@Pqlj?5b$n{>>-9B)OHvTc%`XF57xYM*3 zW@oa!^*e~@(OfqHr{1{pPfoirX>R;Co~){)eV>@=)T~Gm+V_d)t|KH(Bn7?H?sI9T zIeVI!3eR=f)8WBDq||O2 z1sx*7iGsruAK^gMqm_DyHE}KyFfx7uFP{Kp&OGbuTEHgSiI8)Ebc~&0WFh5qI8qb4 zlCeeeIQ?_|dk7r5FeykzBN~$$?<76Kg-7v=rk7#l!A^Wkr-NK5$2Mr0J)824H;Cp&@CaC9xVJ4?5M(~ar93rN2vkM*|Of*Jxn4Fw^Z;AlY zzFu7t;8Lye@nR>FWi2X13jES17@UReF~k}F$QWclTz5A?`X^`kCyash2lny}Vf?_C zjb|23Vcl%{FXeBSlU1vBQBvg45kgzt=%7B#G6e!7-RaYf_kF*%yt>t8#nEG7j!5u+ z1?R-%QCn1eyMdK%yh*lC{K0*5r+xL8X>@lkjs;AF>+BS$>)9SqCr-vALg9Xml9uLo z{7!}LY?m+bGI9Xz_4u7>tA;B823AZ(*vc<-z2F$;_;H`IA!qt@e{CH^p=r(WMs3Po ziuX3GY%bigC{@=?AgA_7(hFjZQ73O=QWbIg+5g*(2@H7c%;eHmtVqY-N+!~{YvJgU zODx*X_FXqsXh%g;%;b2(z#QlIU4ei=jHeGC>fXeP!Z}8H?dL-FaU%rrM>`Yayu;h& z=kuyjYZeKbJsjK}A!*p0jc1qxk~Scd?ow#1ozS9xZ-qdZBPeoy0})OhNp`ul#|EaH zv`st1)bdL}((9dnI5x~x;FBpmkunUkDNu2tU5~Qt0$hQ?wEf8;;WC*m;RXkkZEg8Y z?+~MfqQ#2{PPX_&coIbQOl6#=MjVT<9~xuL-V4FN2fU*Wp_#I@vC2y$cMo)dh8Ew5|{xtNQBDWu9;ijiqnqzu0?MIq=Jt zo_2&kXF&H*LQAwAMNus3t|wl=La{({|=M zzUbX&_i1u7|7MYajZeLr;L;IYNU9%M*NG!IC6(GV@zCkIHn2O$XXe9<0Wy<8UbyYN zrH3i)H~bdWd7Rt*U|f?`_=_1?Cjnng_mVh6ma3-k|5 zz3muVMW!1;ukKW(Y1voR>>y4K35Aj{ydTWvgr#`DEm&E9$jEVT3(^;YT#KX8)lJTd z7_RL~te@OywC1`)gW&Pc)r$QAKO5Ad%DK75IVk22X%^w?F+pSQ+NK(>1t#}vfvA70 zEyHP_7VUiNov?9(x8|K;1|x1O;`*q^-rf4fb3n>V?Ye(3mY z<`8NGSrt%m5D+kF+UTYXBQg+BnvILnvv`F;($wA~7Ekn2z*&vD{mKO2O<^!ZG*!d| zwkFpnXR=o-Tc@?P`ia?|0m+8L&n8eQ=$fi*(uk!1%EmI`{*o}3#iNJ-J&{_G`nR)& z=kGDFYt80?+LgXm+rRtH&3^pa8zgG;ot?e2 zdy%j_EZu*`*rp@8^o0u=F^}INm0**Ia&B9h4~cSTq2)%mUSG$MGLJ9i5&pQ*P+ah6 z;?P`CF$D92tH8?qYW9&y=bfa>KX3LA7lVrz19t{JhdX8R+2i(_TQ6IGw6ys9>~@Nb zN9k-j*4hB~hp&&(_B)m4tWOMWzWaR!Q9qykEqlL!s1Uumd8fn;sf=JHpnzB{D$C?V z6Fm-?z@!Nbhu2v>efqAO^;~4Sao8m=YMUj3T#}iH9_Bgo_7ygqYDJF(jy-DL5v;5S znlCh>7P${+LWHx{gHA!m#`$N}1KRtLTveP_cu_!kM5A*N3G0jJy5I1N(4U463of5tQDi zApD=Ic@W(KM>2V4Q3AODfW@l_SG<#_Zm)@h^+|g=kQK;&ys;wvvYRIV$WQp`XF3n9 z@3{Cs7>4h`d9zlEHOtY=6B;)iYj7TTtpXU97{9%{pisGtT@?|G$(ceI{mn=i%+sQ zB*SQKLgI)EIMg7p)u3=1Vj)sE0S^a1|2`vz_evpvd0p4}a44*v;v8XIJ1bvwvRtuN ze636UbNJn!5_c<~3BoptGN>}kP)gTf5AGYZ%)v3drm04DLh80(c|eNjG^#V`CE^~2~h3Bj=a{O9GChX7w*$X*-H-PfJx)fw?^ z^l`i0jRs1Svw{0#|FVd#j{5YYe>(m(t6H>K&6e`kSpu`Vp>XMfhwEn^fklixfPo2y zjuo`z3k zFQ~PpIMgtvWKH@)Upu4HQuURSh~s$ziOV5s<+z(v$F9P0lRzG;wRm^@^8B{}l3=gP zZV#vxmMPxL;aV$r&hql2I+mz$;0FhSH4uX}xq5kA(t3azgLHLEwOn=XQzQkd|B6Gt zeew+83kC+y>mX^P%=>f5?7A?{hoVt|-L~)SJu)#v_>n0r@)Y*APM@4R0}r2&uaFV` zO7OP>XSY^B=O06P|Cjl|f2|yR53G9k_zTU2nB4^Y_G>vH$Km=#OM>^JlXAcCwV9qX zJ|jmeU8*lq6-H6ja-d$Z4F;BVRn;0E!LS0I^Y6##mC2UVy3pd{f-PX5(9O+yX5wE~ zl5h@OdU|tkOcxyQb{+7uz9xNZt}%sdYDD1__dOrWuc4v%OK*UlqgNY_Su+eb zo8)T(`r|aj5Th45J#fSpXq-+S#8d9fUj9BDfnep1%OVgLB)A?z}d49%PyrZ z5xi*xf*u+SChi}h!o^r;A72A)NIvKD%U>_6jt}zbynC^TghTiyM*fqR zm-R;6uEfxY=sy5>cq|z{$tH9F5U0oFgcnva9OmsF84c*-;Mv<}L`0l0iaW7z`;9eD z%bdG#SfaUDxCKHOKc#}?-&zbL+Gl8s*R(`;3fYZ?8{YrzB76prsc>WI&48QLI2cb7 zps*dJDNq{DH~K0I#CrcA#>%3aE&xtJT|mK4j*nN+xk@%|Gau{X@jXm1H5gQu56kYZ zlGNPYMRxIZC6WzxfW;{$w-|mku94Qqf`mxsc)7-p1CgLv4(udS25>Frpw3if3amWN zRMSsQ^3^Ia;RS+lO|-`U1NbTUp9VapO^f#u3J4pe09k2!imOs z%Yvej5Q*IY5cmB#Xs@M5L^oG8?Te8{WG!4GPi!;+9%oB46l5%+OSKT;@=pr+KZV!B ze{4VVKidBM1R5a{0WI+uyl~^H*JFQFeITq1LI~tMU|YhTnx3zg}KH zbPiW$)sH^P1qkvM=}(0gT~v4qhtoV#*`#KS@V8a$C6M8<0^}^$;X6NUKSC065frL@ z!i`>Q2U>}=^1M}n-qFF;WDMe(6%xPN&YkG*2DAjp!X%&B1Kf8GcPeHK26;SRAAuFI zi!Mgd-8S%rRSsQY&9=~^Va?gd>ejyyoCO;7@6aMaxLjTQ$%sk*#x4Jz{T5OdoIxdi zZ5IG5IOZ$PiQjHD{$7=e9u&eU!GE<4nvD(DqxZ<3F-<6YPPnY~Y+mhrE!JVtI#R5m zO?->U3I|Ij5-!6#!hJ>0#hm8T?h#U(#8jVQLFE8gOE{=sWyVg$t(}ZUV3R5l^x+=g zK%=%iHEE*%3VHvGkd;$-5D*-wVTsY9(c|s+Og^{_e(#u3`}E2Fq+5&8{@#2&Xix>F zu=S!#i^Ojq z9m%Vk{m*^uF#PBHh{1!pRCgPZYSgpe>cZx*?z7>x;OA^W3VC&i{m?HTdqBP}+Ja1Ts| z(l~e`QjzthJmsK#><`Hk%ji0lo4D+5B7K})H$6F~3Xa~M1oPM`v1RWy5$8Gnud5Tn zLAPEktfX%I*Ruwipz%?nF57xi_cc5L1O++1?qMX}=TqV|oW8Y=Hu=g?|5nQj@1lTJ z{&Bg~-~=RCO}KN|qiE`ft16Rt1@;^CUVkf&G?5K_yz5rt*6e7@#_qsSZrPQue_29KC!sb~FqYwk3x<(nx zROMfnb-~*{B*{E)Rl8dCk1GcPSpWav4*n`J47d0=p{~wm#L4_}E%Z&c*<;h3xNnW) zi#DJ$u(cb5Q;g22{(Va*aZm%l72}j#-~9CT1}PS^S^lUj8V@8kB|Dk>`$Ms4)0zK9 z4=2{%W`9Od_VLXd2imfOzWLI)0_~5#L6+Q@-t~q2j`LR;!Xl9PuEE~xKy_1wkzgOrK<@5h>3J*hDf*e)Gz88nzORYJp@4Seo zVdU3X)iM(PH>L^UusuKk){jqTWLhtWm;Go?U{H5{oSYHW``PPM)d^T*6}nJk+|5G! zzA$6 zmVW{EjZ`_Zkd z7p|Ry^4yrehsd$TIlX)D&Ek-;_+Va0l-0@3>;YIXFo49sq84ayn623ecGO5fqf2@j ziW2{{A~rsu$o{7lfktFHh75srhP4v1-&BfD_l2wR5kPB*#PJp0=4 z(>#v1O4_;lHR#s>eVtG=4-8U$vF9}3SWSLC@V76IRsbTalvf|@&B9y(qUjjm! z0BC|V9&Jr(2%j)%*A<#x7y zWmHX>>4%0MOwh8-N6Sl}H3E5*^;cBd@z7gFwoff#9H@YD`%8d&$#X(G8h%=ozy2VwrUX(A{c~5z zZwbu;nFIMNG>pDpm>y(MM*k&);*CP=1F5Zt5YS0uN~NBy?!sKbMt2~nGBD_l3%U+uSHV~M`!*C zBawe!ah?%EXUjeQ*OJlKKSB4UYH^vb>N+W^mK0qLX8f0wCfOPlK6!IC3Yd(yA@Hq$ zHm(80rHZQQK3*JXgv5cR7#T)Fi7yf_G2+mzVnF5_1iJLxcXk`szM&av8a>NTIX#U& z-D1S|1^uUf;8WgJj(RH4N*`Lv{^NXd%K7D0lhB#K^*1~gAKkO#pT%k>180qwH{JrX zN*4WZWo&D8#lCvN~*PPmZ(Hi)30n*qtp=0s@{%(VHDrKnc6j3JuQ zrgcBamy$7+wR}6 z)frBDN#`6Bu#Tw%4C>WWbHG3MFK{=-vhNNJBt2%Rv06XVoUM~pq1ha3i>xbo@_>@b zSW~@Zne}-zf%U@QfD)boB5Raj1$csW|IINRkV2Pywr`a_E=%os(&Zy8Az=Wznnl7; zwRsWHO(CIXnUC($*H8%RHqI$h82+BI1l=(@9lrryIO+fP!Vw{a1qF3fMKC$KtkYRSKgTo>R!&Y7m@!f$Gnr#v5{VkYbwcH0?8oL5+^~@gL@fHQ;XY1v(aqr%;X>Ap$ zx+bOzLiy7CZPB(TPmfNy_PNJ_`OB0|VWB@P zH@j9&@qYJng7tRI|3}zcMnxI5|H4BnWgr96Dj_g{NH+*5DJnJeFtl_@Nec)ANC-%W zAOb@-C=4jw-Q6uE2qNzuAD?sH^R9LN?+3rQmdm;Cz3;uR>sOcQS@X=pDV_U8<8Wb> zqq7@-raN(3|LkxopHx}Bm})UnQBy6U4qv!C;q~{Ob-u+enN&2kmgxPz+%JFz9;W%M zkT)N2x_^JKMXls*MS+l6C%UCZd@nwI)U<;;A%lg}D;?29t=Obgic}&{R4iipI;j=! zPd}8c9m0X+gNBAx761Kk_A|lvwAdH>KkN}2aI;#`zvKEv0QH^yz%tj@6%}O7XBJof zRKHr}N!4Dj>u9EY!Hb?2O%>IrQODf=T@A7hZFK@M*^a5Ec}AQ%kyg6TCxr@`dp0#; zb;v0!GK)L71(gJ~S>b>HUlpQPVohG7pAgKSJbt?kv7MQH}-&chLHDaumZ}?EE9*^b}k3^1i zUL9<%c-c>Fp=LaL3uZZWkST`U}4yx%x8;dBkL>uqqHeO z)oAs)oGw4^jd%%BIV!KeV5;;N(CY8ETiAhG3ReM?MLDeLe5jUtW04YAv0AuI%lPa+ z-kY}oEbaWKR&dPdwwWli;Ghz@Uo8d~>Ky!D(@UW}vP-DQ$;i3uSz)d9+_Um&+$^^w zGO1ik#dS0+j{ccS;fM8`Yjn?Sri$n$b|U+FdSV$9_TqTfwqw{2Pw2+)ENgz#RUE8W zH51u7rFl{O*r^@*pPvYp_8nMS@dKSh%;IWKGFHi+^ri@?dk%mEd07v(y1Lp4sKFHw zlB!M83PeJT9(ZQ2)vzZ-*Xhmbg+%Q3c;@rBsMV*%mg(*`dCUmMCy$GM*Vw%Ka&|13 zxb;vfBwlXqkA9C12g6!S(UAk9G!6Bx{SW3lM_y>1^-ezbl=F(*#0rwP=+*A9O>VZx z>FLns*MphgGY|V@9>+AkiRa*!J$l}Iwja#5sZd@AwdU2J_4*4fN{j#JCEM=Jek}v1 zjjK2IfVP=yFaTm2?B#zGvGn%FJyTGHJapUDPn7a)mh^2db_A!NGKk?e0 zd0T6!z8|0xh^mUm80FA>S;NfzU(91s8w>OF%>bpx@`$!k9MF!zU#P3kT=rbd zLWbXHF3mRux_SYflt72_GS~Z_dw*3Q$(&P<&Hf(XA{yB1HP#NnD_po#niJ#K!m{;n zW#gS-M}THxnYXr~|AH43WkHVS_D&^0T6Xl#tihYe)MXCqW)9YRqjyb-1xlAktyrH3#{TVj8#c2Q&hQbX?cM0pJqqv z1I>Fc7r8uhfJVy+OlxTef~yU0)4oO^8y&!8dEfqr?fgCP1Ctg0_ulAr+NZSl_9@(+ zRlm-W^(_;Vl{+-fSS3ca39EH?=St{aLHMr9`nN1+6AxAyhlOt&84$iIg4Mh2#Vf^e zC^|WnZBJFJ@syOz&Pz_;PT~ziGlnNtZK$_| z5w)e7>OH?eq=es~r>5HR^n7y?c(#GcWp@qUd=8hQ=1ccV8cfp`ml%JnmwAEs)BpbL zHpP_eR2JhGi^xPH;yw0t`l2W9QvG}y>JmQ^q>chF2E@KFRy^6~&)La3TZov@Gx?I+ z^Gu@o{6<5h&qj=-hv%Cji(z&-L^QTA=xAHHcwf1WVVJ? zFwRbUCcSWbe(__J+IByQ$lLVw!km3EpJ0G)i-f2@*zn~f$TNXWdHG1Gag&>{^rc(3AG>Cq%82Fy(kmOBox&?cY}1a`Bu zy8wpH0la+vq|^^E=j~~}ScR;={Q1LwlF9cs{(ddsF8}+raF8HMEs}{JiL)aWMv4sd zGKu#JG#pE5Kt9!2v60c{NI|Z81z=GLZuKM!jh&>tYcHGlq)LlbLmEa^zZ_AjzQN=R zbfR?;B%T4w>Wotz&9`-50moGaqyBg~kMuW`eI>GmI7p(R(tRIEK)|J2(f<-abzA^G ziv=~^=9*rWO*ByAyquB_0>Ib0HALB6%I{W%=2uTwD|T#au({ zRw|7r{OW3N@2{c}vO_0j+`hOQPmOt71rW}UhsxeI7UJtYf@fW&?|=B9jT#MkzUTD? z^3{Djmz7$lomwZ-eQpHsIoD}v!C5{kG?!udDAt6fnL#Ce#o#{k3xs6eyRq(sT(Emi zpT1z+ilw&7Wck8qV`4OFUT)swqJ3n-H8^^((sf*pMQPGO$5_xoKTh}snI@8Ug1LXz zYCUQLp4@*M#Q^%HfwM=KB@v<K7Sr-!DzbAx<^gwX+LtXLKKc{<`N_y;gH_DzjO{3;+0(u7Q4&(UWJM1)5%6U~~A%uBii;$cSj*fO* z2uXed9@%WYKXb6iKeELBjLC z0*)o5>nV_R2IE%|knXdNtk3Mmc0!UB{j_`;t-|EN6Tl|Q-PC*c1v zoWiP?E4k(&^Cs<4cZgp=pcTq=$2qseS=LS%rZ#xvlXGu4x_cEZyRGA+(gi)!JK=NAZjhp7OvrU=z=8=?ki% zW)epn3WH}{5Cr!NUO@W$g%G4r0SFEM;aO1Ry0SzCs^JJ#CwaDhuNHWlC=oa>$3wgm zrFt!nNIomlhNE~hg^nG>5Buxg>?O!c@aR@ffdrRx`jOORmL0#vERHu_AKusgd4La% z`S4bw-%%O5%Ut%Ae4-}0zQ5 z{r)I*332Mi6K5jgfdoOzWXT67v--FcKw*?OWtku#t@pam&j`(HFX3fta-*xpGO!dv zlXngxo5%Y4Lwuf7Z6$jUNR|<{`*by6lvdNKKIpY})WFAvRg;gpXq^EE;xfDO4Qp|+ z4(IjQs&!uL&1bXC$<5^~AaNy@FN#y!2kiVf{%o z4A6d0tJO)KTXT;&n`ykcM zCnK<$hlv#Pz-d__DA!O=`VLIa3iU{@o6VNjaCLHuic9=Qi$#U%9F84?s+eo_!_RR- z;iE{RTV)KuoEF>2lk^~=`<`^)6qU8&HDMfl9g1}^>rog1>gd~0+ZNGiDR#pTBpg?!j7}X1$3W)WsVX#+J!e(r;dyvr%=N&qug8du_3xJC5q@yvKAHGx ziszVto7Ez;??uC@Ktj(wY!e3izm}nk0WFCrw=ODjn2)G!f@ytt-vU9&c%6*Ah>5ho z##m_>GYiy3&Ga%02^0NvPsHQgv?EF77pG2UHGK-@q_w?!pNq&hvp74$#;p2hQZ;1u zQeOYGht~-T{N%%^g8k>NVxIbWTg8z_#VTqrwZ&iv{k3&k+pG4tOVxgdN( zPt!bBZ&zL?x{HTa)~%Q;TKYBf3UB_Cw2~8n(V4;EAIcMVY&(Xkf3*!t+rP{QHMYcc zpa6{Y--;SMievAK{d)+3BmF)qB&ag}XCMh3=iRhxH}RqB+v8+?K}_7#j;bbO+(eYtbPu=u3GAokYn>AbMt zpM1$8w${Dv`u?@+A=;1xm+4B!YQm=r9FbFE*YsNgIm{?wb`yzg%44hT%RxG2&VByL zrj>&f*-tCwPJUeLH#0N43y=Bu-z)&-r*@IJOZdCHaV6dG7%tT4a!s<=c@y$Q7Ky<# ziRVSsyUk(4F7}HRf88;;%42o^RnimzsK7x!>tq&#JgVR#5ul=iN$&5ndMtI>-can% zmCZkTnarB1`$=h}GxT64#h`4k>DwH6(H$xK?idl}llI}Ddb3}_bQ9iJI9vK3(~c;` zH0%s5$1GGbS7!NAS!UXf|EE*x48$$B=o^(2{_f5kf8T-kGj>G=9JTHq%*31QxhnC5%eXy{6Xwz1C0C>{xMx@IEl8<+_Sj0Vox{uHX2!M}v#&c`#ip zYyGRWj-TNmU!WpJ1s-(=<LzpTcsRErD)8+_FVbXZm2P4~+9W$iwmi(~ zi*pdeKy_X1qbD3`JNADY+_$)iMl|QVj$B65;(e1MYiA@;pPN138UN3odH;k!3k}a4MS;+TIQ-pZxmuvPDZ>a(P-JG6&OAb7WIaW)X+f@amm;T8~Ubbh3{?fo4?vF+lo#KmE3CLc-1pa!1Vn z;hk7dCaK-S|NWysBz{#BwCRaq=bq>cQFrScl$FK=SH>=Xx7&zGc_vd;`ytHKx3#Y1 zv1bf(ElKLiRvEv#%hDwKrlGv~IwN!^dZOzml*3BXO=h?ir`74b`s*fJMcL&D$T)Ed$wD9n~U*)s^ z6v}juz$Op5-nOQSwfa_sYijG4yd~9-vYCm#XYX6B+K`%j$6AomM}Fv&RhYiOm#S`^ z(y?0AHAP#ZTR14%=~A(oAeEVXMe_TsiY#smu^ajs9oHo${96*0iHT581XQ9a>a)B0 zcQ;-P(bF2XThsugWudJ?J724iBaT!1=WISpFVLJE%mEjjwLUM*`RA_dgjh9wyL;;L zIva1>BZ}M4e9g^2=^m6sEPXBWK7X~4HO;C2A*Akx6J47+fR=KAjc>LnCN;Hi>fqp~ z-a8Ek?GM9hgl#D)bTh3j4chtIZlx@ong_F;MF#apO+>@W7ls|}?blbQIENKyDr7QM z&*T{&9V7INlOD42?9zB*RiH5M1HvOl4@Ym^O)M?IXGNoB3nvD#lM6}&U&IPL2t61WIX>6<3+sk>B! z`OCZ6IbJ?as-bmM5p!3iCwD_&n}|j-dBnh4LxfVWZ9l$O)Sv1>vkMP z)yR2C65P#1lm-XJ2n>b3vw@HR<nt!`kL)uCHnvbQ zKj)pP>IAUdD|iiH9%w<(J0d}>fAzedTG|{S51!)vd4TV&i;#qTgUG1oKGl3icprDY zpGO)RWd(*q5|@g<9m`W^Q$=Isr7m>KOhd8xEo~!puGUx_Me@|R8wKSWtg`}q^yJ`I zFE?8%;a2zCRG6z6x%%)_pAxAHARUR_?W@Ua1ntn|Xmb#W86dEJIYjc}-Jzy3F$ChL zO;vOi5K*unWs_ff`I05*x3P+}*yI!1)wpK&uadY`e)g8%JRiGln%iI=MCLH8nt{ij zWOaTlCH^DK4j6IAO#EZlTT|3eeOm+}_gt~udVi|m2flf_$rAd))8C+>j|Z*U=J>`~ zYXt3~u`?hPa;%0v=?Y!w0?4UINYZllORb%(TZK$DP^_?j|76?RT?40De>78}Eb;nr zI!@=hY@&#>`JWFPREL9QX38_c@!=6m?60NPg@QzuydHqY!Mo?fFY*DN&7Y&hljT4C z+ige)YIUP8*eQq|o*EaHKh6S2QCPN^a$Nm3NOJsb&@=Tu`T77de^xqJ z}Q1ZB)u_a~$`G7sF0-D+_ zL4D$lB{0{#AS%oRJ9>AADk`{+5j402rWGWRk46xYYp@qmkf?(#qf1?|hjJXEQNC3G z>Qbx*5kXHqPjt4d zDAAF0A}^{vGITggrOY1V?0FHTL~60`AqG<8^3KZtbUQV9Omz_6S|bw@ztf9!j4OxhuPt%~vpO~*9rri&9U}>Q#WDgklnX$)s!=2C zVT<5>%Gz1?Uk^nsIBD;Vp=+Li-CX3fvLq~pxvR9}P)dJ_%|1;w;6X)lwB5pvR{q7;B{Slj50n zk~B0vyQ_3*U#OuPR5C-x%%{Wi*!`+QDg9#WQgx7=27^JUk zNuVboHW11xFK7ft7&ct8n&pGO#y(7T{UbT?F|OBr$b~zbt1|-FBRpc)vO;i-pD}C+!44tD!}2o_{=Ut~J_!!TSQNrAQSyX?t@on3p(V;o>0xZG!J-Qlh1$rL7zEy zlup7g%{uu&5OcrehVA&fli`TfiU_-ko-h4`1aEshGyAn;OiRq~!{MIR(UmQ)R+D{r zACGb@Ayu=kx|)QB3b5G@@wn_y_v3_AbkXryV1fMFOs>%^A)YT54IuWQQ#q9n_AHM! zql*S{QLZ(Rws*x7H!1O6)j+Xj>-@lDk_i~ zpSVWU)Ld`nj!v>n`QA*<`b+8SX76T28j0AV-6GCicE9ftQ_jk2`I8C89pckw1Eo+ofg{hdVglC8kpNvwN8`WT;ltEYD!4 z{{hDl{4eP`py}s)V^zuRRJikL4XZR+`~b=&u&{@ahduvl+yx20Bwe2&J0Ll zXNBuc$NPED4vo@L=wV^#-q0MD^9$qHC`1>LQVD& z1|}C2c&JiI*-@!~>w^Tkrqc02`PUi#EpJ&kwTVuzLTevPq$YA6>i=A`Uo&f88+s)& zhQ3%0)$hOcYQgD#X=#il{GOuENNzrCjc|Anr9Q8tFYE2AcG;_uIv$t88UW zm7B1v9G)G8=mEKpT#Fk(Y3rWEwS`?{tQ<%Vln~(xMK^bB5T$YlalZmT;y`8PlPgWD zyLG?l#TR$A3NOA@HlTV^s=5?5m}`=R+F9=AB!3PR$d6K}XTGNZx3WQ!L}GYzW(yw5 z)UlN~@Bz5kV>HCuyT6tZy=jXI=m{Q{4 z`Rj#EIw~(-p}8plO>OkZE9wgVztVYB{6Ao$i5!MZ{y|ojfi2-*Ym=-V@@+{6uiYD9 z?~spIbJap^#KrOl9%V-Imbl+{MLH+@w~VJG#2j^Ekcz{o3lp3_aITmebe7v@3?~I^ zgwTr@gN>eGE9aV7jhZ4#`A4d&{wZ#=@&RP@xl=F02^evgON5MxG@03-=`$_jf)yS#QOJr z=U;7&s+x!q@G|WVAAV$J08o(ohn&GJlPE+qwT+dP)k6fvZ;;mE4HtzPX?qKSt8viw zXRJ|R`EHGW84seH(}t)7vGA?M9kip(4_$cBB~sTT3jpqr3kFfF#^h>gFA@L~>RM)nJpoeNqG%AGUlh8Pv!#`3Tg>6rPl zXM#548P0MCOb}1wvtq!-x?1!^Ei+d{=_HE6oo8vTxU#Ww?g7<}87TAWQbkO;zJt-t zuWO5_ZdSwDlZg?93U32IQ>A#aJL65i9PKCHoBsORVxfa1S>LBrStWDrnD(%nY(d;> zby7!(%n$Yf3?n#t`CPuoh~T8JJ+MQ5$0Yq9D)0f9H`C7u5&c05E49XEvH&HwQ-6?d z1>sbIHV+sqX`Q9{wfL9@ex%v^P+KPo0W`M08d0E?+Nv3dMy-Qv5k-*fX|ztj^~3)A z+Z%)Vnw+XOKY+CQzCO}VUj_FqL=|kU!EtBhcvv(Dglz}9TXl%EXMn>{06ss^VH*0A zoM1)VKuE&B%7hU7oyA}&3=Be8*vuG;~7stfw`9@?oJJ9;!i6hn17~ zCJY%$;G&?WcA}}gS074JG3VNsE@jksm|`T{H{W{!)LC61St$<^Me_KjCZuybL8YxG z0GEjUbpwzYETlYX#^dHLee|u4gro@we_whtKd=HFqplRPDTLtF=Yl)WpiCV>0!+@J zy4GzxAyUr5I_bpS#a<474y^bfU>%QDjLWb)9DuOu_&c(}>nZ(I^BW+8h6h9$e@$C5 z^jM(`${K*kLx_8GyQxOKf+(eF>hR1z4umvM!a6LzQ{#6^{{HbzG+}{v9rDo9XCa8H z6Z~r5s1Y&eAJvT)stb3axmcNX3K&QHODhM>BYk4>PJ$J z?r#H+l{n&UODaD?n`Yt&k^_)irH$=!xO@DvK`5%`me;&LQMTLOtmi-|3T6V)^(44| zx{_c-tYwc4$?bn-*(48L|Ly~C(f8V^B=T>$&1c?@Z6iy`wnhrr;5|4u9Y@UR5d&{4 z=}RacbT+_ePN(3+K`byFDS2}Zx9uP9&^v1Sad`l)LB zF##yUQ%v8VQ%&usMb7k3^I&a1xA*MEE8f#In%1<{2~FI#)^<|tL{?rmavYoWj-g%j zj`a6fnpAwj8!7uasU=GX*1GA|d-hi_1|a@SY=dO_wFXP#p~A{$4@m%?->)33*nhJ_;2(>WX%A@o2`8nk z6j>;4X%}D_wZ8UPN?Iq==4sf(1`P7`Mg7Zw;iCBa0z)QL{XOs$7L-=K&1mAex`&3# zXk3IfOM4Dmj$&ZaJ}vDSR)4eSW%*yy&JjzT&9nA{(hIAxl>zxX@rtAV$+_tSZWADg zQpq4QRGqqz+CHQl&fK~H@COcf61{UbFEP|#HZ6#0G^|Eu>5noyS&6XSv~WR`R}CFxBU$0h6VOm(q{Pqh*ZrG?SEt(?liQRisFp#Fe(o?=EW94g z3sWntYZ1LhqE>-4_`zWPXkI~)3tAfRy^iX_QHO1TL^tXO5tB+YJ*={1JdCA8Vf%@` zdMJ)AhzP?i`aL^6>HHcP&bj9ddg*=iNa8h1YI^)zSgf6vV>i6ari$Y>NknBK{29dLz;3??I9RX|&~ODd|zDmIxgj|H=){Qs6ET zecXqPe!~Ig`R>2-9d`G}|B?G1ypzW?*ROECn7_po-2l{5OGzrhsNa?W@;B{yEdbD^ zb%j#Y0xmzmvr6eU37iD^Io9ivGL4@ayYJX#9Fe%0O}FDzFfZTf=)Am`yJUY2V+Xe6 zTU$?Jsv(OwsG50-z1TOmrJurlLj!LsgKVa!m!LwVIs*MF4m%`cUOcjrPjUMGQ7~dIS6ryed)m8w5(I*troe2ii}SDPS=Oyq?GJ z7`Q-vlcvjLO!;Im0bBQQ9cEpH4g~*9EdGH{IxAQq%Ln6BaCw##Bx$Uu_`1ieE8Z%l zpNR4GGh;zs*<=B0R**3t!h^WcCHK(jqttwidl<-dud9=cZ6~buJfpBiL^D6>PH54B z^~BN4RQXTU{3)NU^XZB?Ean0J zX`8&2c>FhidG7E~|0kbT0G_vU?FQnBjcgegg>Q5>=KZ2yi#!V20gleC-{_%XJeMgD zm&JPX&fx>COmNq^`lI_Hj8zMD%D=zMkncLt>0~(4w{1p#@P<6U+1Wn_Ho+PFI|9s; zczX=P?qto^STxax$B!)*Z6ty8jL0nL@g+7kY&!M^76g^N&&hxOj0h2Jvrr>}ccWwV zD{!2E5TtVcs(XrlekrAd&?QI7!oFyBKLOq~re>Y%YeRj2lT;HRDeg)|>L0}6E4r56 zjE((1b9!@a^^4li8tO3dkc4L?a9$Camzo7kwka)(I(Ve8U~9^*z1mQVqW)5G*-@eY zcE|tU79amAG&F&zTS-;*Skq)$L&$FWvosm1-BL$|k_xssN&;(6iq58k+=U(A1^LrS zF;{|X-T>P|&sfwOPW|#?<1b*;KM1w4poI|VV z0~47(bTi*7G$!T?BW%}6r=WV9$=S7NS+sxsY3(nTTQIG>_e=uxa2uUD46;Gm@t_%l zOi_97I`q#Y=>!mq$3;4h??70o{z_+?Bly-v@7fjmw5{rbdJdPmOchTLa6puC9h}_o z?~~!E)y9h*du*~A2NQ0?o4^*36js!Za?Q8{eFM;_Y*sZ)T@PnX=gp;er!f#2qy(-j zBk6IhpA8My1WA7Z6%BLV$eQiy$!45&S3S8;NbJBN9^dgaR1XJo02 zRTPXzzo^o{XYQ`frH6xpXs-SSX&wFef;9ssIy41{=wHjLICCMAP^4$%r^e!NjTb~(QQrlCq(Q%E>=c)I1^F-W|*jF8qgxI^Q@Zo0$^dH$;z~`nI|GUM$&E ziu}e;yu@7DcLggqi}?!@V3h@|3Qq9ZxSje#(~)30ooX(%t^G(4RR;tQ3!9c2oK5wi5U4kr+yyzjWQvh9F)6EgHK9orseuj*fWA z+jHR#<@QfI)l+8vggX&D#1GQp3yZt9hyf}^lcJle35UY{)Ff5_2y406zgEu>w+$n{ z2G3^9Yt@+m6r5}k%+0T)aDwcqY*Z<|AZs!k2fm2#)P09Re z+OXqjrAHv%FIjZcwRGpJau=luR+(~oD!(+K`vu1t5lP`aE1HTy9zg(lCW)c z_ZgQ)2DNw3YowwgodS&iA~J{O<2P>YndZ)VvoN0WlSO9Ngd7}6V zApPa=BYvZ=B2N}FP9%?N?ZS_+p5MBEk=g1wr^rrdjCZf7+sG&g<_GH%=;n0O93L!s&rtU>j{GG9<=Q zGz0@npF5bE7Qt=&eNIe|%O-I@_RVsMjhv~DWN<=L9$<+I(qwE>4zO8Y**}l>tb1D?Tb650bQ(IFIYxE==5gm z&s-2E=jDTT`}ZI$&zKlMpeDcAtL=Vj_;g;|2{Cq(ci(HrvzW!q;Zj?05}^$of(W_Kbh?q?E)L8iNzfU^6S4|(%KP3zU#(mYCpCYn zG^te4Fvqf!K+njC1#$m~8(+DqfnJ0dhjo$m>^+pCXNSvfB%r|48s6mlCwRC`phOEhFbT_sNK^h<2*%0?tXfs2^f~+)DhRTf z=SALGn(B}-1_CKvR_+@Ks!!4Y7ZiRgoedy0%F#HauQ@Li#buC3f8_yl@ZHeYkN7M@ zUReTXL>a(LQKi%zN~DeElA-CFCnsXTAvOkw&w;Q;GR)&`z8~uB)QoYF4eI1;P>l-> z{rX`S$?2pbPXt7#43DO%XG{^ikJ(!5{`IrZoUp$XS$GP<5IO+Sd>`ur0r!8tK&DU` zpr#eDgg>xt%swGVEA5^a=FSEo(B2Bw>pocHe(A8?#5*DOVH_Ol9^w2O;@rbed}8Dtj3o$++L z!C11^O3-0m+6qKl>?tN8-IiB!Eg)e)b+AF^576OXq7DF^>fBH^bJnhd*CZe4KTNzB zxeY&(AH{Hj|Gs8sJ(S z;-nR5jC%~sBy@188?W+g`TA5rb1b=d3?Adyk;J2MW4*#cC zy~wi$6oO89P?XI179YsMFOmV0Kwit1LWzHMC`d4+EV%+(A1h8j+MX!K1TkRzY-i>F zfK7w%rkufKH@G!ctZkiCYSN|zy!y)kg&k&`gtUX1N>?8g*Osd=JKxP%0J-zesQO0> z^*Emab5FyM`NdS!xMkgAVC1yXX)}`r-))2Xt;R92QClE(c<#_lhSSJpwJsz?hV5vu zVFo@4xA97@t}oB%Q-fhjk6L5G?azPi0BHoNY82+z0zmd`nYM@#q99alL4OSBYZg|O zux}Lz6S@@HQnQ&hFU#E+pOtB9{%I>d6v`A{m3bnMPr;#hJ&NghS@sk1Gij%1(pkhY zv2XqEpF$W#)|kZQjH6{VnCqTVzsY$kiYMAS(B$ha=$s}$q-mh(U0+x4nO>PMJL3hw zAGcjF)n{+QD}B}3%8k)uIa=xbWzNFI$($6z;!x7{ccGz<+-}J?a-8sy+&VlLoq}>* z5YFGjx%1QV&IB;_Xw86JvJvn%+FWJrcPn{b4=7z5HDm4fQ#~1k2W-lci!i6fg6TnG z8AFx=)~>3*E>1Zh3|>z+-^$FqW(g#Q`ku6{FM& zHG1&(q_$9eKw8FzMI$~m9rdT=Zo{HkL|l&1CC^B3*O&aW>anNOPVbo4M7Pis-aqVp z4wLWgh+dxp)7j(%R^_vC^Q1YVh)HuXa-e+I@RMPTrxWdzW>Ss=sp?}32lsjt{JBeh zfS7DeJ-b>nQcSWjNiYb^f>fh0-W{NpnvACyBIE-9lwI$AwH-Xqk^ z9XM1pu!$Kp`NcJhVO%GLCV}VV3K0LM`Bgc4TfPGMeXH8h$e^6mL(3r?q3h2tzOD)s zhZ30hfb_Yx?d66U99;2 zxe6^T6JMj_N$f}LS2ubUon55+wXAU#?{^j$4%|NpIQ##J0VPkFvMl;ysRO z?b^T0f89K4424lD5WMi$V4}Q2z)B3S_<;YpEe!vCNeO=SW8QfN@1ucDU_L>?AEC7| z^1O|3mL5Qw;t{+w~dYx-Rs(yVUHLA1^oYkCX1;At` zl|qG^uvOWyr~W{fZRY8cD#2fRfTPXp)tHN4hJ1SVL%m#IST)JPDpEsk%?IJ8 zV3HmHohn`Y@FZQlWy{?&5ae$~=W7IiVqFa}SR1i(G}2&*kM8Yx_{?K@hYnU=sRL%( z9DL9kn7jOQ(%*Z`G39X8)Qq6$f}TVn$FTA+{q#HAVmavBTHjpTB4=^{a~F&aK1Ue7 z%*%P?Jg+&EFLf-d9>2}6VYnxF{K$<$LwZ)6?Ctt2(Nh&c@1u{5WMg)FjOVqI=b!O1 zVkvWe&+s)QNOAK17!&-(5m=X%>ebxPIZtmY1Cnr8 zq7@dNUr&zDL@tfqduPRaWjnEek&?oL5;0Ti*fmxlU=78kAb>et@HwoMk#dB2Sw7ImVA{~R*>pfNAlldpX40NUkXv%7EcPtj$a9L5qCAXYA@ zr93oLRd9kiHXCol>db9R;gK#7H=dgL0Lx@686yg17rc{U{}aM1 zB;sYCE6C_FIUVxazKSHCcCi8K& zi|RJP1l2D~I10u>!&_j!-Ub~1i3Hfa5xgA)+?}*FN4-dSsZoUE-C?VEV;f2bqxutw zE#hl0|7S$$(};(~p0^ZAK7gzNF?MIg|9pnjZrJaT|JfR0Pe3OmqJ;=Wg4cx|aEkOR zH8&<(6x;Pc2VihgUm~KXs7P+@x)5G~X`{AqnKDmDQU_;{L@4(M^HGL*oaiOZTWn@k zC6SDM(L6q?=jHO8Eaf_oO8jRpDDvi<>1mULw;XlEekjIR(0d+QYBE7~?%z7U3sn#ak0qF~nTlH_&uD3-;s#y`h? zUjd$d?X$uVIK^Q|Io#+;uXB&R&wP;Q=f%BWcvO(J#b4fiF~W|u9oLrdbc3Ysa%q*$ z>dk-L^Xq%ZbyDirJY`pIJFT`!Fa49jWQN1sJfNjxcvGdj>}4`$^QPdZ-WRNJw0ci> zK`NN0N&%~?mvYhr*BH3XFu*XJjOH~_TVxnHR05K}5ny3GCi zh>~8ih!J9;juo1~dLY%{LB9(V$o9_pr@v(u26MohW&sj^p>IdSUG6(NH7t{hIzqB-*sL70;#9u*}s$ zL`ANI8?Op937U>^1a}OsJ^N0hEB5_3Nj|$O zR1Y1b{RW9}C3`56>+Y%VCG$+{?IfR{`g!H|7-fyMbT=Qmwn1IJ)_^m>fP{JL%tutV zWQmpwlSGNS#5veCPQTQ#8$^Ps5xz3#`r0%3V~fOOKLUc$QW6xqY$Qc~wJ_B#xtKbK zcOpNB)zxgLiHh?^4ZTv`pZL9oJ?B#TXo!*JCC5RyUR|!UJ4V!>X%sW%>>%CBUQ&5c zA@ET;Pdr0DtIeMPDAf-B(T9aU_MKbQ7jgB@_30wK2j->NAlSBZ!Ve7ACGANu+%OI+ z4Vdv(esQ_!gH*r%!}YSy?NJRTaa@-9MNa!a%cvO9EHrAQ~4KMLbXS zPhz6cURcd8%t?5N!n2b4QMoIZfD5hc!8~XuPU{cT;~i6T#mCL}Iy;TzEWb`=@BVG; zTfqL@AKM}a9g7I}eiLCt9s}sA1DaDM|hcmb02ZNv5mp&jr?02Rv|$=Up$is0~zl$! zKf3G9ZQuSsY`u3p)$jj5eg?C|*O82D&awAM zvS*=eA~Hkv`dz12@6SKq-#`9wyYYNp&+B?zkNf>`f7~C=&KaapRYR0n5CbRL_()nj z`6eNZ;a23etK{TQ30kiH?-|imLC>c@aM2FCmz85)*`bPrPGCED8gnS$T7E?y`qmmq zr?oZ4Aotr0LcQ{WlnA`?TZw%nFjnWx9zh_O4%@R=fRS&{9L!y?ew{3@rp{>RZ5Lob`Fp{Y=A4@t+s z?U#xG@bR`-js^YV01$h-P1@}LrF9=$YU7iAKzFWT# zI%JBYcm;o`z}z>BHbB9AAhdj$J&;+{5_B4GDh(Xt@>*!5QM#trH=1e^$Ha0neNl|n zAt4VBS1V1bzCQ^-r=BmfKmeq<7El{tkrGyeJ8L6>&Vv)X2PgP-e5Nw{BC%BwRQB5r0VrAm)}}x`a9) z1c!m?RaZI4NcNs%4+rJ?hfo^TgQ z{GzP5CY-rcL8qaxa#CvggG-f_9fvJ`@dPR=zxg&Yv(fVqml$=UrNmCPp3kXHN5!ME4ZFeLPBNL|!Z@unEcgg{_C7QA3mhUv)-})j z&R1-dR8Zcb;=AQzFT^b2;79rsMx8g^w_$e?z9n}_x}Irh8PmNizu0xv3runi**HcT zK0OQRb;r>ACJmuc%Km97%R&sC7iZmD3zvKv0V0XQXG63z%!gusR!dZ9)vuEa~C zgK4@DLil-bKXNIWo4vh#p8i##G)OZTWM&@?emTDVV1dkAQK^yk#@w4H`(dQHn}LGk z>#+_St@8Kn2(59@Nc}6YtR-BiKn@wYGqSi_iK5pwp=a`yTdn@ zhD?RBC7K=y;`vPG=fZ?&PruxIb;n}9LbD<}}t&c4_L{2pUPEpeJny!-!j241AqlO!{ z3mxjy7N;qGo26a4&Yt#BYT!9z+A=AXzGV1!t8GugTZY^T7Gq%M4IN$QO>*S;bQqN~ z;qFyWCPCUi(!dTAF5tJ{WfIXr)%1dtb@>y_wt6}^E`q4xyo}8J5mb}Ra*>4{Ab-Bv z^(u!_-%{omGBJGw6sr0WZTThNW+mEopw0hAT}8k+XkbJF$yb7%Q4fL?@O1ZLniQ~v zZ^tr> zZ(*|56%kvkB+b=!gAA|qfG&zVr$iDdy4Cn2cH#uJ!8H}DMLQj{8u7q?{*RB?u(pv= zyu9_914g^fnKH7SMOD_{vAW}H$2}zj?rj5udEJmAZ_{7oB!h2;Z(<}Pt*9McFR0yi zOV>DFZ@}a(d2(#$u|qWQqbF;!Q}EEGm)i+4ff~DsVjZ;84>eTwXr`o#OC*IK2=wQ} z)|_@L4-3~wW9d;eCW2Svr8WWw;tubQQoYmd@SnT|<`?hSx*eIH$Pu%S4&PJD@Bd&| z(z!)4^j90P1o7WnhJ#*Wc(MLLm1Ig>E(um$!uVwW5-C_YC_^7EA=r&)q)CdC~UE zI$o5o9M|0p!+vhMZdD$nM{ar19D2#SJ?I^;^dKGA8+F=k+^Oh|!EC&H;vI+9#`f7p zDb!*HZBmsl=*)ZoRmBvyIfJ@WvmxqXRLy1+{;T~;Ck%zg>4?nytgzV0g_Dba&JSDW| z0XL-s(ooXjswZHWTK(hJN>CBiJb$K>iTp~($;`)|;3&g-=E#CkG3q$j{C9J8!%9QH z;8p=1o_hl0{)elvv9m!+edq8wQvxKxzsWzo?4Qbnce!CbUY^>PD9h++acKQ1V&qXo z=^d+$J!`~soO$YJjye0x+^rrAC1^Y4QAXVO3%%QSJ&gau4i8j=`~#KnYhbioK@lL4 zmcS4_TA-~(h)JCSJ9#}nKov#ye)W7=EHgfg`U;6C09@G2iLR9w@oN7$JwK$0_ap-3 za(tD`e+lmQcXd?OLb{hGiN>sl!O=+1E4IT0)=YrEIvp)EGI9KPl#L{f0BUl4YDu1F zaH|0q&M`5@O1ydY+e7M{_VnLG#^qZL(qBv;aqgro;OLGUa2NYDSL&Ik>mPcVGvt3> z0K3N^T2c5Tkb+O?ui=`K% z|Dvae9)^_a5C0K?e;x(-2eq==?`d3qas24thGeRgts zJn-IZO_Qxk%XZ{VK1Cmm|}P8{$T@>6F8|irYtG-cl7r=aDbdOca1v4v0Qe;I?(r;5ePz+<6;N+0%oBLt+N9+bx{{W&#=tJfbcrYIW^^F_m?-l z$4?9kLFIal-n~!2u)dic;@E{S>`NWP>S*-EA%P?*Q&R-gYqsY_q$T6fg4q+91e#ny?}L}sWS?*l92n^JyU7vy%Lr8*0>R$j5MjLj)Y8bw{eZ6Oh$Oq*o<3u z7;ty{Nvm9G_MKiMIodkk_YT}9 z#fujhwXB#PxoQ^(6X&@%Dj@B+)2!*bEs`vH(r8^xIGebR@A!FJIn|OV)d`A&vzDs9 zTIC-V`g-Xe1v3AIU)AASZJRVvCQ(Er1r{GHNf?Z)_*fJ8{qC_#$REwn!Y>T20deh< z^7c#E?$l>HsHCe*K4(#`-G47!=O9vK&YVM(VWXb>h5<^gEW^6*-8SxN|l2aTk?d*17)V~_DfCQOQ`c;83q=o zUn;exYx^5%DX6kFfw?8(o3oVgz|Q3POKQbHt|t}j?!g)YuFyz{U*~QVyu)atVSz8Q zexrFqa-zZv4zD|u(xOcQ{c7!YuA#U1b8oD_A6pSms$(G8ks@_oz>kXv#2 z;8*i3H9b2T_qWQwH{N*nw(NY3pG>)p$C~??a?MXm*%j$ONzd7*H2U7Rc|`5@mvouQ zL@&p8u5X~aZr|AL_g={|;*r&Fug||?ljra^CDj>^(swKdGWr1#(qFCUuku58Vq|I$ z;t%oxA#3JYkC*z&TMkjnHy<2(cC8Og3OcAB|4?n<61}tGzg7|XeaV+$|BwhjcsGv| zE&c)S#hZT>#X_YY&ARUI~7QAQ~{k zlrhdXtuO69vc_=j$=S|Dl~M4}tCkd^-e9KDh`0(?NGB`mP0E9lPK=_!SSLhVUp=Qk zgNuO`CBq%fj40;5wmc&}w(@{ph)9u!eb{uJgyp4tsZM4BLgAL1+WL0Otq1ry?as87 zBE{KFUUz#HRBd@FH{r9kvhZ+E(rA&~(+Be0Uh??a$2betg!@qk_Qpfw(#?nOx!hJ+ zhUyR7j~_-=OkUTm<<4c=J*RGGTd}#7`iEVhLpINzYr%Cb3f&@MxFk?oQj6$N?b+Nt zu^rC1;E?R0uF{i)l}>P-=gwCn`G zHKpTtsV@)7u%k9bU1=lAtaj(@J9GnwmGM$Uv#KBUa7yo=4S%vkLUk%nG8VMoJ$zTL z6Vj+YbJ2owft^uA_fR(?O;Jpjxm^?~Ydn z9IM5@eYu!ymFhJc5aJ%P519Wv`jEHt=}>;Xb0P9UrHZ5>-nd^t)hvx-p(Y`1LC{u< zCtFN{QA~Mk?%ys-g`_Dt*-iq%J`Ck-2&JLUE8JUPhHHusHkni8*(vLfE73J`YTYP$JF=%Wwt6F3(R+TNlrHK zY`fOPU&ZH;RI7|1E+425)LAY6(Ixv-tMAF(`;nmE$^;F~^--8Es$C0r?ij0AW@X8{ zHOd!XLwfE}w3J|AKcTm{_d+coEL-JzmHN_aPao07JI`-MK(2=FL4wD3mqOg44i$0L z9Cgp@ySR4w1+VU^dQDZ^cla&t(_Oml+?c@iTV`y^DS~7DwwVF{J1eaTrr&at7Od-A zKEg6xYud*gZiqLBMah{BL$xnM2JPKkd~5v}P$!p1B`2><>I3ZmxU6(k#;)|x;L!f; z)z!F@?26a+lWZ;3H*G_njqyi+P4!r%{kFCb;hN9y>%g|%)R*z0MHsye~Up2f(o~|oKW6e5`k;}1~xQ1&WcSsq>ji=5#A~O z;LlFEPt;~#SrmiUf!REt1^kkqmZ(sTE2xCrC~Y@-Ul_9w#ze^>-be)@ED-@+5{NzB zLvia0gLj$T6|DDIIe(G+Z(vOdKDF9Zkg#|QwH%9xz;Ew660|?u%T>@$dxtsu8~%|p zhTkG*O9D;%jKXX>Rl-v^|7)-SXdb|wi@R9xDewZEzh7BQ%ZzOkx9-b(B5_d^lzaBZ zww9`6DuWW6ncBH@88Pz*_Ej@s-y!!-h_rOs*)%d{u9YAaQkx+iJ!(h&0{Z4!+oEco ziXchOI2}1|FWbv0tjsX)xk4eaZ+}t@S3dcVijK^qn<%IpWjPaqKA86#7!9gh1_nq> zxITC)D5`UQZe7yuUFLB=%>Zec+o^Tqz3D1ByIAKSroe2wUh3c=8BRtf)#2F*F3x+b z1@_N>zHcbYy{aYBH2p{U-lLAD#7S3iW)FEt@>2Kh*PHp`m_c_h!}1HBP-N^Wv69N1 zx+y*#-?&Pj;|WGwe44`Wa|${*(o$(nby_I&ZAM=2Orx1E>>YP$N_VMc`XvZOm_E-F z-=?4{$%(JKRnK7*PogSNDP@-Uv)&yPst`@CQ?({BUANEgeb5-!Y~9qVPGNfSPlmRa=w%vhPjl>w(IvrKhqP zqZTU38FpXDEGBYR;~J+%;dTk`s<`kQ{_Pi^f7&lwowN-}A@0x%bBEH!{}FxsSxvV| zvAVtDeDX^rvZvowQS`M0gz{0QKl1Pye)3XFZ<(cB?ian1;xlN~Cr4~h+9 zfd~%h*^XU=Q!D8Z0WsZrJaip@4<_L}*B`|o?HsIaCBV<}&*2OJg|#ZN`qb*`~+jXd1c6(07Li`s&b zb#jWdK_B0*wzSADEQwj(9P{X$|5oxku9KHvvqQdN@%J76cP>;txAvckEW8N_VlS#( z)GesEP<(_~>AcH&_|2a6QB334#5&xqbhUxcr$s&DTph(<&rgI4cXEr2+1$FdAmsMp zRaWoZqctTjX@_ddu{jaydZw;xu~N~MhvQzjVxxGmsylP5NykF`@mq1W!ee&PR@K6% z(nX7Q0baFzZQ_J zB@$7G0IEd)YjVy&7zM#>Q1$p%Kq{#2J(gWdgwxxZy(Oo#2Rz-3mzn8ZF?|x$sQ;(4 zcRsm1nN^kRlHe)ZzM`nSON#gWs(nZ23oC;dPs$&4vi~2Tc@o@u$CNI&b^V2;~f1 zEQ^TrwBljo-_=i`mNFz|SAI}SFV|GmY(n39nc%NqOYE3WWfVL!slh;=#b&kN8BSyt z2;nbDrZt)2(cP2rA31ZRk5!NFFiaHC(*i;=A;M#2O9e(L7j1ydAYo*WB zr&)_K{o;60A9TU79QK|KVZd1hzHNO$+itbN7$=9p=}!}>Tq$>j8PK(O9_P9yC}j

9j-!xYAN|RkP`LB1a|*6!^tqYu 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/mp-dag-976ff51caf25f09d977ccc10e70918f3.png b/docs/assets/images/mp-dag-976ff51caf25f09d977ccc10e70918f3.png new file mode 100644 index 0000000000000000000000000000000000000000..4a13af56c3b9b370b7edeaa02951488f56b666c8 GIT binary patch literal 148343 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 r1mm+HK){{m>A-7wy(biwk>< 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

cAw&>y6pnUyo4&r3J3wx14@8CAa{>a6$(@ELb4l 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%0Aq{9>@{469ra6u#yW6s9*92 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ΜH=h6o@3qrv(>|kjKVY$XW&6m-tcEGL#D=>qp8EP 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�P(8dKaIa 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 LR+cK4FbVoU1*mLz literal 0 HcmV?d00001 diff --git a/docs/assets/js/00b12b9c.ea8fba0b.js b/docs/assets/js/00b12b9c.ea8fba0b.js new file mode 100644 index 00000000..179d11b7 --- /dev/null +++ b/docs/assets/js/00b12b9c.ea8fba0b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7048],{1106:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-two","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-two/index.md","source":"@site/blog/bharatmlstack-history/post-two/index.md","title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","description":"BharatMLStack","date":"2023-04-10T00:00:00.000Z","tags":[{"inline":true,"label":"inferflow","permalink":"/BharatMLStack/blog/tags/inferflow"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":6.31,"hasTruncateMarker":false,"authors":[{"name":"Bhawani Singh","title":"Architect @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"Lead Software Engineer @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null},{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null}],"frontMatter":{"slug":"post-two","title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","authors":["bhawani","jigar","adarsha"],"date":"2023-4-10","tags":["inferflow","interaction-store","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"prevItem":{"title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","permalink":"/BharatMLStack/blog/post-three"},"nextItem":{"title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","permalink":"/BharatMLStack/blog/post-one"}}')},3086:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"},4114:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/mp-dag-976ff51caf25f09d977ccc10e70918f3.png"},8111:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/mp-matrix-43994f433f78905ccbd10cfe284f3c9f.png"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(6540);const r={},s=i.createContext(r);function a(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:n},e.children)}},8517:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var i=t(1106),r=t(4848),s=t(8453);const a={slug:"post-two",title:"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)",authors:["bhawani","jigar","adarsha"],date:"2023-4-10",tags:["inferflow","interaction-store","mlplatform","meesho","bharatmlstack"]},o=void 0,l={authorsImageUrls:[void 0,void 0,void 0]},c=[{value:"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)",id:"building-meeshos-ml-platform-lessons-from-the-first-gen-system-part-2",level:2},{value:"The Cost of Success",id:"the-cost-of-success",level:3},{value:"Scaling Pains (and Cassandra\u2019s Limits)",id:"scaling-pains-and-cassandras-limits",level:3},{value:"Interaction Store Woes",id:"interaction-store-woes",level:3},{value:"Silver Linings",id:"silver-linings",level:3},{value:"Round Two: Solving the Top 2 Bottlenecks",id:"round-two-solving-the-top-2-bottlenecks",level:3},{value:"Problem 1: No-Code Feature Retrieval for Model Inference",id:"problem-1-no-code-feature-retrieval-for-model-inference",level:4},{value:"Problem 2: Scaling Without Breaking the Bank",id:"problem-2-scaling-without-breaking-the-bank",level:4},{value:"Optimizing the Online Feature Store",id:"optimizing-the-online-feature-store",level:4},{value:"Optimizing the Interaction Store",id:"optimizing-the-interaction-store",level:4},{value:"Results",id:"results",level:4},{value:"The Catch: Our ML Hosting Hit a Hard Limit",id:"the-catch-our-ml-hosting-hit-a-hard-limit",level:4},{value:"Conclusion: From Firefighting to Future-Proofing",id:"conclusion-from-firefighting-to-future-proofing",level:3}];function d(e){const n={h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"BharatMLStack",src:t(3086).A+"",width:"1396",height:"460"})}),"\n",(0,r.jsx)(n.h2,{id:"building-meeshos-ml-platform-lessons-from-the-first-gen-system-part-2",children:"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)"}),"\n",(0,r.jsx)(n.p,{children:"By late 2022, we had built something we were truly proud of\u2014a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation.\nAnd it worked. Mostly.\nBut soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn\u2019t built for scale.\nThis is the story of how we tackled these challenges\u2014building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS."}),"\n",(0,r.jsx)(n.h3,{id:"the-cost-of-success",children:"The Cost of Success"}),"\n",(0,r.jsx)(n.p,{children:"Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Adding new DAG nodes in IOP"}),"\n",(0,r.jsx)(n.li,{children:"Writing custom logic to fetch features from multiple sources (e.g., user, product, user \xd7 category)"}),"\n",(0,r.jsx)(n.li,{children:"Inferring intermediate features (e.g., extracting category from a product to fetch user \xd7 category data)"}),"\n",(0,r.jsx)(n.li,{children:"Optimizing I/O and dealing with the inevitable bugs"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations."}),"\n",(0,r.jsx)(n.h3,{id:"scaling-pains-and-cassandras-limits",children:"Scaling Pains (and Cassandra\u2019s Limits)"}),"\n",(0,r.jsx)(n.p,{children:"At some point, we were hitting:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"250\u2013300K reads/sec"}),"\n",(0,r.jsx)(n.li,{children:"1M writes/sec (during lean hours)"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership."}),"\n",(0,r.jsx)(n.h3,{id:"interaction-store-woes",children:"Interaction Store Woes"}),"\n",(0,r.jsx)(n.p,{children:"Our interaction store was another ticking time bomb:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\udea8 Clusters kept growing in size and cost"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udea8 Latency spikes became increasingly frequent"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udea8 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale."}),"\n",(0,r.jsx)(n.h3,{id:"silver-linings",children:"Silver Linings"}),"\n",(0,r.jsx)(n.p,{children:"Despite the chaos, the system was live and delivering value:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Real-time infrastructure was in production"}),"\n",(0,r.jsx)(n.li,{children:"Costs dropped by 60\u201370% compared to offline personalization"}),"\n",(0,r.jsx)(n.li,{children:"New experiments rolled out faster and more successfully"}),"\n",(0,r.jsx)(n.li,{children:"User engagement metrics improved"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"It wasn\u2019t perfect. It was far from easy. But it worked\u2014and that counted for a lot."}),"\n",(0,r.jsx)(n.h3,{id:"round-two-solving-the-top-2-bottlenecks",children:"Round Two: Solving the Top 2 Bottlenecks"}),"\n",(0,r.jsx)(n.p,{children:"With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Coding feature retrieval logic for every new model was becoming unsustainable"}),"\n",(0,r.jsx)(n.li,{children:"ML scale was exploding\u2014bringing rising infra costs with it"}),"\n",(0,r.jsx)(n.li,{children:"Real-time embedding search was the next big unlock"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"We tackled them one by one\u2014starting with the biggest pain point."}),"\n",(0,r.jsx)(n.h4,{id:"problem-1-no-code-feature-retrieval-for-model-inference",children:"Problem 1: No-Code Feature Retrieval for Model Inference"}),"\n",(0,r.jsx)(n.p,{children:"We noticed a pattern: for personalized ranking, models needed features from:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u2705 Product"}),"\n",(0,r.jsx)(n.li,{children:"\u2705 User"}),"\n",(0,r.jsx)(n.li,{children:"\u2705 User \xd7 Category"}),"\n",(0,r.jsx)(n.li,{children:"\u2705 Region, cohort, sub-category, etc."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"A key insight emerged: Entities that contribute features for a model always map back to the context entities."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"MP Dag",src:t(4114).A+"",width:"1272",height:"512"})}),"\n",(0,r.jsx)(n.p,{children:"With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"1\ufe0f\u20e3 Inferflow takes a modelId and context IDs (e.g., userId, productIds)"}),"\n",(0,r.jsx)(n.li,{children:"2\ufe0f\u20e3 Loads a pre-defined feature retrieval graph from ZooKeeper"}),"\n",(0,r.jsx)(n.li,{children:"3\ufe0f\u20e3 Executes the graph to resolve entity relationships dynamically"}),"\n",(0,r.jsx)(n.li,{children:"4\ufe0f\u20e3 Outputs a 2D matrix of feature vectors"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\ud83d\udca1 The impact?"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\ude80 No more custom feature retrieval code\u2014just graph updates in config"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\ude80 Feature consistency across experiments"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\ude80 Faster iteration cycles for ranking, fraud detection, and beyond"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Here\u2019s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed:\n",(0,r.jsx)(n.img,{alt:"MP matrix",src:t(8111).A+"",width:"1262",height:"768"}),"\nWe built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency."]}),"\n",(0,r.jsx)(n.h4,{id:"problem-2-scaling-without-breaking-the-bank",children:"Problem 2: Scaling Without Breaking the Bank"}),"\n",(0,r.jsx)(n.p,{children:"With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\udd39 Online Feature Store"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udd39 Interaction Store"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"optimizing-the-online-feature-store",children:"Optimizing the Online Feature Store"}),"\n",(0,r.jsx)(n.p,{children:"Our costs were concentrated in:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Database (Cassandra)"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Cache (Redis)"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Running Pods (Java services)"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"1\ufe0f\u20e3 Replacing Cassandra with ScyllaDB\nAs we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency."}),"\n",(0,r.jsx)(n.li,{children:"Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization."}),"\n",(0,r.jsx)(n.li,{children:"Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"2\ufe0f\u20e3 Finding the Right Cache\nTo reduce backend load and improve response times, we benchmarked multiple caching solutions\u2014Memcached, KeyDB, and Dragonfly\u2014under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation."}),"\n",(0,r.jsx)(n.li,{children:"Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access."}),"\n",(0,r.jsx)(n.li,{children:"Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility\u2014no changes needed in application code or client libraries."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"3\ufe0f\u20e3 Moving to GoLang for Cost-Efficient Serving\nJava services were memory-heavy\u2014so we rewrote core services in GoLang. The results?"}),"\n",(0,r.jsx)(n.p,{children:"\u2705 Memory usage dropped by ~80%\n\u2705 CPU utilization was significantly lower\n\u2705 Faster, more efficient deployments"}),"\n",(0,r.jsx)(n.h4,{id:"optimizing-the-interaction-store",children:"Optimizing the Interaction Store"}),"\n",(0,r.jsx)(n.p,{children:"We realized that we only need a user\u2019s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Cold Tier (ScyllaDB)\u2014Stores click, order, wishlist events"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Hot Tier (Redis)\u2014Loads a user\u2019s past interactions only when they open the app"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"InteractionStore",src:t(9758).A+"",width:"1242",height:"572"})}),"\n",(0,r.jsx)(n.h4,{id:"results",children:"Results"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale\u2014without breaking a sweat"}),"\n",(0,r.jsx)(n.li,{children:"Infra costs for Online Feature Store and Interaction Store dropped by ~60%"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"the-catch-our-ml-hosting-hit-a-hard-limit",children:"The Catch: Our ML Hosting Hit a Hard Limit"}),"\n",(0,r.jsx)(n.p,{children:"While planning for 2023 MBS, we ran into a critical scalability bottleneck:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u274c Insufficient compute availability in our region for ML instances"}),"\n",(0,r.jsx)(n.li,{children:"\u274c Couldn\u2019t provision enough nodes to handle real-time inference at scale"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping\u2014but it wasn\u2019t built to handle the bursty, high-QPS demands of real-world production workloads."}),"\n",(0,r.jsx)(n.h3,{id:"conclusion-from-firefighting-to-future-proofing",children:"Conclusion: From Firefighting to Future-Proofing"}),"\n",(0,r.jsx)(n.p,{children:"What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency\u2014driving down costs while improving experimentation velocity.\nBut new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That\u2019s the next piece of the puzzle\u2014and the story of Part 3."})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},9758:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/interaction-str-d9e7aefea121aefb4e94c6c9f060d016.png"}}]); \ No newline at end of file diff --git a/docs/assets/js/01a85c17.5487421a.js b/docs/assets/js/01a85c17.5487421a.js deleted file mode 100644 index a84c5428..00000000 --- a/docs/assets/js/01a85c17.5487421a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8209],{4096:(e,t,a)=>{a.d(t,{in:()=>c,OU:()=>P,Ki:()=>y,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>A});var s=a(6540),n=a(9532),i=a(6803),r=a(4848);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=s.createContext(null);function c({children:e,content:t,isBlogPostPage:a=!1}){const n=function({content:e,isBlogPostPage:t}){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t})),[e,t])}({content:t,isBlogPostPage:a});return(0,r.jsx)(o.Provider,{value:n,children:e})}function m(){const e=(0,s.useContext)(o);if(null===e)throw new n.dV("BlogPostProvider");return e}var d=a(6025),u=a(4586);const g=e=>new Date(e).toISOString();function h(e){const t=e.map(x);return{author:1===t.length?t[0]:t}}function p(e,t,a){return e?{image:j({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function b(e){const{siteConfig:t}=(0,u.A)(),{withBaseUrl:a}=(0,d.hH)(),{metadata:{blogDescription:s,blogTitle:n,permalink:i}}=e,r=`${t.url}${i}`;return{"@context":"https://schema.org","@type":"Blog","@id":r,mainEntityOfPage:r,headline:n,description:s,blogPost:e.items.map((e=>function(e,t,a){const{assets:s,frontMatter:n,metadata:i}=e,{date:r,title:l,description:o,lastUpdatedAt:c}=i,m=s.image??n.image,d=n.keywords??[],u=`${t.url}${i.permalink}`,b=c?g(c):void 0;return{"@type":"BlogPosting","@id":u,mainEntityOfPage:u,url:u,headline:l,name:l,description:o,datePublished:r,...b?{dateModified:b}:{},...h(i.authors),...p(m,a,l),...d?{keywords:d}:{}}}(e.content,t,a)))}}function f(){const e=l(),{assets:t,metadata:a}=m(),{siteConfig:s}=(0,u.A)(),{withBaseUrl:n}=(0,d.hH)(),{date:i,title:r,description:o,frontMatter:c,lastUpdatedAt:b}=a,f=t.image??c.image,x=c.keywords??[],j=b?g(b):void 0,N=`${s.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":N,mainEntityOfPage:N,url:N,headline:r,name:r,description:o,datePublished:i,...j?{dateModified:j}:{},...h(a.authors),...p(f,n,r),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${s.url}${e.blogBasePath}`,name:e.blogTitle}}}function x(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function j({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}var N=a(6347),v=a(8774),C=a(1682),k=a(9169);function A(e){const{pathname:t}=(0,N.zy)();return(0,s.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,k.ys)(e.permalink,t))}(e,t)))),[e,t])}function y(e){const t=(0,C.$z)(e,(e=>`${new Date(e.date).getFullYear()}`)),a=Object.entries(t);return a.reverse(),a}function P({items:e,ulClassName:t,liClassName:a,linkClassName:s,linkActiveClassName:n}){return(0,r.jsx)("ul",{className:t,children:e.map((e=>(0,r.jsx)("li",{className:a,children:(0,r.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:s,activeClassName:n,children:e.title})},e.permalink)))})}},6133:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var s=a(4164),n=a(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var r=a(4848);function l({permalink:e,label:t,count:a,description:l}){return(0,r.jsxs)(n.A,{rel:"tag",href:e,title:l,className:(0,s.A)(i.tag,a?i.tagWithCount:i.tagRegular),children:[t,a&&(0,r.jsx)("span",{children:a})]})}},8027:(e,t,a)=>{a.d(t,{A:()=>U});var s=a(6540),n=a(4164),i=a(1656),r=a(4581),l=a(1312),o=a(4096),c=a(6342),m=a(1107),d=a(4848);function u({year:e,yearGroupHeadingClassName:t,children:a}){return(0,d.jsxs)("div",{role:"group",children:[(0,d.jsx)(m.A,{as:"h3",className:t,children:e}),a]})}function g({items:e,yearGroupHeadingClassName:t,ListComponent:a}){if((0,c.p)().blog.sidebar.groupByYear){const s=(0,o.Ki)(e);return(0,d.jsx)(d.Fragment,{children:s.map((([e,s])=>(0,d.jsx)(u,{year:e,yearGroupHeadingClassName:t,children:(0,d.jsx)(a,{items:s})},e)))})}return(0,d.jsx)(a,{items:e})}const h=(0,s.memo)(g),p="sidebar_re4s",b="sidebarItemTitle_pO2u",f="sidebarItemList_Yudw",x="sidebarItem__DBe",j="sidebarItemLink_mo7H",N="sidebarItemLinkActive_I1ZP",v="yearGroupHeading_rMGB",C=({items:e})=>(0,d.jsx)(o.OU,{items:e,ulClassName:(0,n.A)(f,"clean-list"),liClassName:x,linkClassName:j,linkActiveClassName:N});function k({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,d.jsx)("aside",{className:"col col--3",children:(0,d.jsxs)("nav",{className:(0,n.A)(p,"thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,d.jsx)("div",{className:(0,n.A)(b,"margin-bottom--md"),children:e.title}),(0,d.jsx)(h,{items:t,ListComponent:C,yearGroupHeadingClassName:v})]})})}const A=(0,s.memo)(k);var y=a(5600);const P="yearGroupHeading_QT03",_=({items:e})=>(0,d.jsx)(o.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function w({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,d.jsx)(h,{items:t,ListComponent:_,yearGroupHeadingClassName:P})}function B(e){return(0,d.jsx)(y.GX,{component:w,props:e})}const G=(0,s.memo)(B);function O({sidebar:e}){const t=(0,r.l)();return e?.items.length?"mobile"===t?(0,d.jsx)(G,{sidebar:e}):(0,d.jsx)(A,{sidebar:e}):null}function U(e){const{sidebar:t,toc:a,children:s,...r}=e,l=t&&t.items.length>0;return(0,d.jsx)(i.A,{...r,children:(0,d.jsx)("div",{className:"container margin-vert--lg",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsx)(O,{sidebar:t}),(0,d.jsx)("main",{className:(0,n.A)("col",{"col--7":l,"col--9 col--offset-1":!l}),children:s}),a&&(0,d.jsx)("div",{className:"col col--2",children:a})]})})})}},9158:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});a(6540);var s=a(4164),n=a(1312);const i=()=>(0,n.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});var r=a(5500),l=a(7559),o=a(8027),c=a(6133),m=a(1107);const d={tag:"tag_Nnez"};var u=a(4848);function g({letterEntry:e}){return(0,u.jsxs)("article",{children:[(0,u.jsx)(m.A,{as:"h2",id:e.letter,children:e.letter}),(0,u.jsx)("ul",{className:"padding--none",children:e.tags.map((e=>(0,u.jsx)("li",{className:d.tag,children:(0,u.jsx)(c.A,{...e})},e.permalink)))}),(0,u.jsx)("hr",{})]})}function h({tags:e}){const t=function(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort((([e],[t])=>e.localeCompare(t))).map((([e,t])=>({letter:e,tags:t.sort(((e,t)=>e.label.localeCompare(t.label)))})))}(e);return(0,u.jsx)("section",{className:"margin-vert--lg",children:t.map((e=>(0,u.jsx)(g,{letterEntry:e},e.letter)))})}var p=a(1463);function b({tags:e,sidebar:t}){const a=i();return(0,u.jsxs)(r.e3,{className:(0,s.A)(l.G.wrapper.blogPages,l.G.page.blogTagsListPage),children:[(0,u.jsx)(r.be,{title:a}),(0,u.jsx)(p.A,{tag:"blog_tags_list"}),(0,u.jsxs)(o.A,{sidebar:t,children:[(0,u.jsx)(m.A,{as:"h1",children:a}),(0,u.jsx)(h,{tags:e})]})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/01a85c17.9618aedf.js b/docs/assets/js/01a85c17.9618aedf.js new file mode 100644 index 00000000..d1f89fa3 --- /dev/null +++ b/docs/assets/js/01a85c17.9618aedf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8209],{4096:(e,t,a)=>{a.d(t,{in:()=>c,OU:()=>P,Ki:()=>y,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>A});var s=a(6540),n=a(9532),i=a(6803),r=a(4848);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=s.createContext(null);function c({children:e,content:t,isBlogPostPage:a=!1}){const n=function({content:e,isBlogPostPage:t}){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:a});return(0,r.jsx)(o.Provider,{value:n,children:e})}function m(){const e=(0,s.useContext)(o);if(null===e)throw new n.dV("BlogPostProvider");return e}var d=a(6025),u=a(4586);const g=e=>new Date(e).toISOString();function h(e){const t=e.map(x);return{author:1===t.length?t[0]:t}}function p(e,t,a){return e?{image:j({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function b(e){const{siteConfig:t}=(0,u.A)(),{withBaseUrl:a}=(0,d.hH)(),{metadata:{blogDescription:s,blogTitle:n,permalink:i}}=e,r=`${t.url}${i}`;return{"@context":"https://schema.org","@type":"Blog","@id":r,mainEntityOfPage:r,headline:n,description:s,blogPost:e.items.map(e=>function(e,t,a){const{assets:s,frontMatter:n,metadata:i}=e,{date:r,title:l,description:o,lastUpdatedAt:c}=i,m=s.image??n.image,d=n.keywords??[],u=`${t.url}${i.permalink}`,b=c?g(c):void 0;return{"@type":"BlogPosting","@id":u,mainEntityOfPage:u,url:u,headline:l,name:l,description:o,datePublished:r,...b?{dateModified:b}:{},...h(i.authors),...p(m,a,l),...d?{keywords:d}:{}}}(e.content,t,a))}}function f(){const e=l(),{assets:t,metadata:a}=m(),{siteConfig:s}=(0,u.A)(),{withBaseUrl:n}=(0,d.hH)(),{date:i,title:r,description:o,frontMatter:c,lastUpdatedAt:b}=a,f=t.image??c.image,x=c.keywords??[],j=b?g(b):void 0,N=`${s.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":N,mainEntityOfPage:N,url:N,headline:r,name:r,description:o,datePublished:i,...j?{dateModified:j}:{},...h(a.authors),...p(f,n,r),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${s.url}${e.blogBasePath}`,name:e.blogTitle}}}function x(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function j({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}var N=a(6347),v=a(8774),C=a(1682),k=a(9169);function A(e){const{pathname:t}=(0,N.zy)();return(0,s.useMemo)(()=>e.filter(e=>function(e,t){return!(e.unlisted&&!(0,k.ys)(e.permalink,t))}(e,t)),[e,t])}function y(e){const t=(0,C.$z)(e,e=>`${new Date(e.date).getFullYear()}`),a=Object.entries(t);return a.reverse(),a}function P({items:e,ulClassName:t,liClassName:a,linkClassName:s,linkActiveClassName:n}){return(0,r.jsx)("ul",{className:t,children:e.map(e=>(0,r.jsx)("li",{className:a,children:(0,r.jsx)(v.A,{isNavLink:!0,to:e.permalink,className:s,activeClassName:n,children:e.title})},e.permalink))})}},6133:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var s=a(4164),n=a(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var r=a(4848);function l({permalink:e,label:t,count:a,description:l}){return(0,r.jsxs)(n.A,{rel:"tag",href:e,title:l,className:(0,s.A)(i.tag,a?i.tagWithCount:i.tagRegular),children:[t,a&&(0,r.jsx)("span",{children:a})]})}},8027:(e,t,a)=>{a.d(t,{A:()=>U});var s=a(6540),n=a(4164),i=a(1656),r=a(4581),l=a(1312),o=a(4096),c=a(6342),m=a(1107),d=a(4848);function u({year:e,yearGroupHeadingClassName:t,children:a}){return(0,d.jsxs)("div",{role:"group",children:[(0,d.jsx)(m.A,{as:"h3",className:t,children:e}),a]})}function g({items:e,yearGroupHeadingClassName:t,ListComponent:a}){if((0,c.p)().blog.sidebar.groupByYear){const s=(0,o.Ki)(e);return(0,d.jsx)(d.Fragment,{children:s.map(([e,s])=>(0,d.jsx)(u,{year:e,yearGroupHeadingClassName:t,children:(0,d.jsx)(a,{items:s})},e))})}return(0,d.jsx)(a,{items:e})}const h=(0,s.memo)(g),p="sidebar_re4s",b="sidebarItemTitle_pO2u",f="sidebarItemList_Yudw",x="sidebarItem__DBe",j="sidebarItemLink_mo7H",N="sidebarItemLinkActive_I1ZP",v="yearGroupHeading_rMGB",C=({items:e})=>(0,d.jsx)(o.OU,{items:e,ulClassName:(0,n.A)(f,"clean-list"),liClassName:x,linkClassName:j,linkActiveClassName:N});function k({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,d.jsx)("aside",{className:"col col--3",children:(0,d.jsxs)("nav",{className:(0,n.A)(p,"thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,d.jsx)("div",{className:(0,n.A)(b,"margin-bottom--md"),children:e.title}),(0,d.jsx)(h,{items:t,ListComponent:C,yearGroupHeadingClassName:v})]})})}const A=(0,s.memo)(k);var y=a(5600);const P="yearGroupHeading_QT03",_=({items:e})=>(0,d.jsx)(o.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function w({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,d.jsx)(h,{items:t,ListComponent:_,yearGroupHeadingClassName:P})}function B(e){return(0,d.jsx)(y.GX,{component:w,props:e})}const G=(0,s.memo)(B);function O({sidebar:e}){const t=(0,r.l)();return e?.items.length?"mobile"===t?(0,d.jsx)(G,{sidebar:e}):(0,d.jsx)(A,{sidebar:e}):null}function U(e){const{sidebar:t,toc:a,children:s,...r}=e,l=t&&t.items.length>0;return(0,d.jsx)(i.A,{...r,children:(0,d.jsx)("div",{className:"container margin-vert--lg",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsx)(O,{sidebar:t}),(0,d.jsx)("main",{className:(0,n.A)("col",{"col--7":l,"col--9 col--offset-1":!l}),children:s}),a&&(0,d.jsx)("div",{className:"col col--2",children:a})]})})})}},9158:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});a(6540);var s=a(4164),n=a(1312);const i=()=>(0,n.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});var r=a(5500),l=a(7559),o=a(8027),c=a(6133),m=a(1107);const d={tag:"tag_Nnez"};var u=a(4848);function g({letterEntry:e}){return(0,u.jsxs)("article",{children:[(0,u.jsx)(m.A,{as:"h2",id:e.letter,children:e.letter}),(0,u.jsx)("ul",{className:"padding--none",children:e.tags.map(e=>(0,u.jsx)("li",{className:d.tag,children:(0,u.jsx)(c.A,{...e})},e.permalink))}),(0,u.jsx)("hr",{})]})}function h({tags:e}){const t=function(e){const t={};return Object.values(e).forEach(e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)}),Object.entries(t).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({letter:e,tags:t.sort((e,t)=>e.label.localeCompare(t.label))}))}(e);return(0,u.jsx)("section",{className:"margin-vert--lg",children:t.map(e=>(0,u.jsx)(g,{letterEntry:e},e.letter))})}var p=a(1463);function b({tags:e,sidebar:t}){const a=i();return(0,u.jsxs)(r.e3,{className:(0,s.A)(l.G.wrapper.blogPages,l.G.page.blogTagsListPage),children:[(0,u.jsx)(r.be,{title:a}),(0,u.jsx)(p.A,{tag:"blog_tags_list"}),(0,u.jsxs)(o.A,{sidebar:t,children:[(0,u.jsx)(m.A,{as:"h1",children:a}),(0,u.jsx)(h,{tags:e})]})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/0413d9af.cb9ba41f.js b/docs/assets/js/0413d9af.aecac3d5.js similarity index 56% rename from docs/assets/js/0413d9af.cb9ba41f.js rename to docs/assets/js/0413d9af.aecac3d5.js index 6070c9ad..88711431 100644 --- a/docs/assets/js/0413d9af.cb9ba41f.js +++ b/docs/assets/js/0413d9af.aecac3d5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9919],{7114:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"sdks/python/v1.0.0/grpc_feature_client","title":"GRPC Feature client","description":"PyPI version","source":"@site/docs/sdks/python/v1.0.0/grpc_feature_client.md","sourceDirName":"sdks/python/v1.0.0","slug":"/sdks/python/v1.0.0/grpc_feature_client","permalink":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/sdks/python/v1.0.0/grpc_feature_client.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"GRPC Feature client","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"v1.0.0","permalink":"/BharatMLStack/category/v100"},"next":{"title":"Spark client","permalink":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client"}}');var i=t(4848),r=t(8453);const a={title:"GRPC Feature client",sidebar_position:1},l="GRPC Feature Client",c={},o=[{value:"Installation",id:"installation",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Features",id:"features",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"API Reference",id:"api-reference",level:2},{value:"GRPCFeatureClient",id:"grpcfeatureclient",level:3},{value:"GRPCClientConfig",id:"grpcclientconfig",level:3},{value:"Usage Examples",id:"usage-examples",level:2},{value:"Persisting Features",id:"persisting-features",level:3},{value:"Retrieving Features",id:"retrieving-features",level:3},{value:"With Context Management",id:"with-context-management",level:3},{value:"When to Use",id:"when-to-use",level:2},{value:"Related Packages",id:"related-packages",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"grpc-feature-client",children:"GRPC Feature Client"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://badge.fury.io/py/grpc_feature_client",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/pypi/v/grpc_feature_client?label=pypi-package&color=light%20green",alt:"PyPI version"})}),"\n",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/actions/workflows/py-sdk.yml",children:(0,i.jsx)(n.img,{src:"https://github.com/Meesho/BharatMLStack/actions/workflows/py-sdk.yml/badge.svg",alt:"Build Status"})}),"\n",(0,i.jsx)(n.a,{href:"https://www.python.org/downloads/",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/python-3.7+-blue.svg",alt:"Python 3.7+"})}),"\n",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/Discord-Join%20Chat-7289da?style=flat&logo=discord&logoColor=white",alt:"Discord"})}),"\n",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/License-BharatMLStack%20BSL%201.1-blue.svg",alt:"License"})})]}),"\n",(0,i.jsx)(n.p,{children:"High-performance gRPC client for BharatML Stack real-time feature operations with direct API access."}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pip install grpc_feature_client\n"})}),"\n",(0,i.jsx)(n.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,i.jsx)(n.p,{children:"This package depends on:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"https://pypi.org/project/bharatml_commons/",children:"bharatml_commons"})}),": Common utilities and protobuf definitions"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"grpcio>=1.50.0"}),": gRPC framework"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"grpcio-tools>=1.50.0"}),": gRPC tools for protobuf"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Direct gRPC API"}),": persist, retrieve, retrieveDecoded operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Go SDK Compatible"}),": Same authentication and API semantics"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch Processing"}),": Automatic batching with parallel execution"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Real-time Focus"}),": Low-latency feature persistence and retrieval"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Context Management"}),": Timeout and metadata handling"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Connection Pooling"}),": Efficient connection management"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'from grpc_feature_client import GRPCFeatureClient, GRPCClientConfig\n\n# Configure for real-time operations\nconfig = GRPCClientConfig(\n server_address="localhost:50051",\n job_id="realtime-service",\n job_token="api-token"\n)\n\nclient = GRPCFeatureClient(config)\n\n# Direct API operations\nresult = client.persist_features(entity_label, keys_schema, feature_groups, data)\nfeatures = client.retrieve_decoded_features(entity_label, feature_groups, keys, entity_keys)\n'})}),"\n",(0,i.jsx)(n.h2,{id:"api-reference",children:"API Reference"}),"\n",(0,i.jsx)(n.h3,{id:"grpcfeatureclient",children:"GRPCFeatureClient"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class GRPCFeatureClient:\n def __init__(self, config: GRPCClientConfig)\n \n def persist_features(\n self,\n entity_label: str,\n keys_schema: List[str],\n feature_group_schemas: List[Dict[str, Any]],\n data_rows: List[Dict[str, Any]],\n timeout: Optional[float] = None\n ) -> Dict[str, Any]\n \n def retrieve_features(\n self,\n entity_label: str,\n feature_groups: List[Dict[str, Any]],\n keys_schema: List[str],\n entity_keys: List[List[str]],\n timeout: Optional[float] = None\n ) -> Dict[str, Any]\n \n def retrieve_decoded_features(\n self,\n entity_label: str,\n feature_groups: List[Dict[str, Any]],\n keys_schema: List[str],\n entity_keys: List[List[str]],\n timeout: Optional[float] = None\n ) -> Dict[str, Any]\n"})}),"\n",(0,i.jsx)(n.h3,{id:"grpcclientconfig",children:"GRPCClientConfig"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class GRPCClientConfig:\n def __init__(\n self,\n server_address: str,\n job_id: str,\n job_token: str,\n use_tls: bool = False,\n timeout_seconds: float = 30.0,\n metadata: Dict[str, str] = None,\n max_receive_message_length: int = 4 * 1024 * 1024,\n max_send_message_length: int = 4 * 1024 * 1024\n )\n"})}),"\n",(0,i.jsx)(n.h2,{id:"usage-examples",children:"Usage Examples"}),"\n",(0,i.jsx)(n.h3,{id:"persisting-features",children:"Persisting Features"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'from grpc_feature_client import GRPCFeatureClient, GRPCClientConfig\n\nconfig = GRPCClientConfig(\n server_address="feature-store.example.com:50051",\n job_id="predator",\n job_token="api-token"\n)\n\nclient = GRPCFeatureClient(config)\n\n# Persist real-time features\nresult = client.persist_features(\n entity_label="user_interaction",\n keys_schema=["user_id", "session_id"],\n feature_group_schemas=[{\n "label": "realtime_features",\n "feature_labels": ["click_count", "page_views"]\n }],\n data_rows=[{\n "user_id": "u123",\n "session_id": "s456",\n "click_count": 5,\n "page_views": 3\n }]\n)\n\nprint(f"Persist result: {result}")\n'})}),"\n",(0,i.jsx)(n.h3,{id:"retrieving-features",children:"Retrieving Features"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'# Retrieve features for ML model inference\nfeatures = client.retrieve_decoded_features(\n entity_label="user_interaction",\n feature_groups=[{\n "label": "user_features",\n "feature_labels": ["age", "location"]\n }],\n keys_schema=["user_id"],\n entity_keys=[["u123"], ["u456"]]\n)\n\nprint(f"Retrieved features: {features}")\n'})}),"\n",(0,i.jsx)(n.h3,{id:"with-context-management",children:"With Context Management"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"# Use client with automatic cleanup\nwith GRPCFeatureClient(config) as client:\n result = client.persist_features(...)\n features = client.retrieve_decoded_features(...)\n# Connection automatically closed\n"})}),"\n",(0,i.jsx)(n.h2,{id:"when-to-use",children:"When to Use"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Use grpc_feature_client for:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\ude80 ",(0,i.jsx)(n.strong,{children:"Real-time Operations"}),": Direct persist/retrieve operations"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udd0d ",(0,i.jsx)(n.strong,{children:"Interactive Queries"}),": Low-latency feature lookups"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83c\udfaf ",(0,i.jsx)(n.strong,{children:"API Integration"}),": Service-to-service communication"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udca8 ",(0,i.jsx)(n.strong,{children:"Single Records"}),": Persisting individual feature records"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udd04 ",(0,i.jsx)(n.strong,{children:"Model Serving"}),": Feature retrieval for online inference"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Use spark_feature_push_client for:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udd04 ",(0,i.jsx)(n.strong,{children:"Batch ETL Pipelines"}),": Scheduled feature computation and publishing"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcca ",(0,i.jsx)(n.strong,{children:"Historical Data Backfill"}),": Loading historical features into online store"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83c\udfd7\ufe0f ",(0,i.jsx)(n.strong,{children:"Data Engineering"}),": Spark-based feature transformations"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcc8 ",(0,i.jsx)(n.strong,{children:"Large Scale Processing"}),": Processing millions of records efficiently"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"related-packages",children:"Related Packages"}),"\n",(0,i.jsx)(n.p,{children:"This package is part of the BharatML Stack ecosystem:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"https://pypi.org/project/bharatml_commons/",children:"bharatml_commons"})}),": Common utilities and protobuf definitions (required dependency)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"https://pypi.org/project/spark_feature_push_client/",children:"spark_feature_push_client"})}),": Spark-based data pipeline client"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcac ",(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var s=t(6540);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9919],{7114:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"sdks/python/v1.0.0/grpc_feature_client","title":"GRPC Feature client","description":"PyPI version","source":"@site/docs/sdks/python/v1.0.0/grpc_feature_client.md","sourceDirName":"sdks/python/v1.0.0","slug":"/sdks/python/v1.0.0/grpc_feature_client","permalink":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/sdks/python/v1.0.0/grpc_feature_client.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"GRPC Feature client","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"v1.0.0","permalink":"/BharatMLStack/category/v100"},"next":{"title":"Spark client","permalink":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client"}}');var i=t(4848),r=t(8453);const a={title:"GRPC Feature client",sidebar_position:1},l="GRPC Feature Client",c={},o=[{value:"Installation",id:"installation",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Features",id:"features",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"API Reference",id:"api-reference",level:2},{value:"GRPCFeatureClient",id:"grpcfeatureclient",level:3},{value:"GRPCClientConfig",id:"grpcclientconfig",level:3},{value:"Usage Examples",id:"usage-examples",level:2},{value:"Persisting Features",id:"persisting-features",level:3},{value:"Retrieving Features",id:"retrieving-features",level:3},{value:"With Context Management",id:"with-context-management",level:3},{value:"When to Use",id:"when-to-use",level:2},{value:"Related Packages",id:"related-packages",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"grpc-feature-client",children:"GRPC Feature Client"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://badge.fury.io/py/grpc_feature_client",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/pypi/v/grpc_feature_client?label=pypi-package&color=light%20green",alt:"PyPI version"})}),"\n",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/actions/workflows/py-sdk.yml",children:(0,i.jsx)(n.img,{src:"https://github.com/Meesho/BharatMLStack/actions/workflows/py-sdk.yml/badge.svg",alt:"Build Status"})}),"\n",(0,i.jsx)(n.a,{href:"https://www.python.org/downloads/",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/python-3.7+-blue.svg",alt:"Python 3.7+"})}),"\n",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/Discord-Join%20Chat-7289da?style=flat&logo=discord&logoColor=white",alt:"Discord"})}),"\n",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/License-BharatMLStack%20BSL%201.1-blue.svg",alt:"License"})})]}),"\n",(0,i.jsx)(n.p,{children:"High-performance gRPC client for BharatML Stack real-time feature operations with direct API access."}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"pip install grpc_feature_client\n"})}),"\n",(0,i.jsx)(n.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,i.jsx)(n.p,{children:"This package depends on:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"https://pypi.org/project/bharatml_commons/",children:"bharatml_commons"})}),": Common utilities and protobuf definitions"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"grpcio>=1.50.0"}),": gRPC framework"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"grpcio-tools>=1.50.0"}),": gRPC tools for protobuf"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Direct gRPC API"}),": persist, retrieve, retrieveDecoded operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Go SDK Compatible"}),": Same authentication and API semantics"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch Processing"}),": Automatic batching with parallel execution"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Real-time Focus"}),": Low-latency feature persistence and retrieval"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Context Management"}),": Timeout and metadata handling"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Connection Pooling"}),": Efficient connection management"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'from grpc_feature_client import GRPCFeatureClient, GRPCClientConfig\n\n# Configure for real-time operations\nconfig = GRPCClientConfig(\n server_address="localhost:50051",\n job_id="realtime-service",\n job_token="api-token"\n)\n\nclient = GRPCFeatureClient(config)\n\n# Direct API operations\nresult = client.persist_features(entity_label, keys_schema, feature_groups, data)\nfeatures = client.retrieve_decoded_features(entity_label, feature_groups, keys, entity_keys)\n'})}),"\n",(0,i.jsx)(n.h2,{id:"api-reference",children:"API Reference"}),"\n",(0,i.jsx)(n.h3,{id:"grpcfeatureclient",children:"GRPCFeatureClient"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class GRPCFeatureClient:\n def __init__(self, config: GRPCClientConfig)\n \n def persist_features(\n self,\n entity_label: str,\n keys_schema: List[str],\n feature_group_schemas: List[Dict[str, Any]],\n data_rows: List[Dict[str, Any]],\n timeout: Optional[float] = None\n ) -> Dict[str, Any]\n \n def retrieve_features(\n self,\n entity_label: str,\n feature_groups: List[Dict[str, Any]],\n keys_schema: List[str],\n entity_keys: List[List[str]],\n timeout: Optional[float] = None\n ) -> Dict[str, Any]\n \n def retrieve_decoded_features(\n self,\n entity_label: str,\n feature_groups: List[Dict[str, Any]],\n keys_schema: List[str],\n entity_keys: List[List[str]],\n timeout: Optional[float] = None\n ) -> Dict[str, Any]\n"})}),"\n",(0,i.jsx)(n.h3,{id:"grpcclientconfig",children:"GRPCClientConfig"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"class GRPCClientConfig:\n def __init__(\n self,\n server_address: str,\n job_id: str,\n job_token: str,\n use_tls: bool = False,\n timeout_seconds: float = 30.0,\n metadata: Dict[str, str] = None,\n max_receive_message_length: int = 4 * 1024 * 1024,\n max_send_message_length: int = 4 * 1024 * 1024\n )\n"})}),"\n",(0,i.jsx)(n.h2,{id:"usage-examples",children:"Usage Examples"}),"\n",(0,i.jsx)(n.h3,{id:"persisting-features",children:"Persisting Features"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'from grpc_feature_client import GRPCFeatureClient, GRPCClientConfig\n\nconfig = GRPCClientConfig(\n server_address="feature-store.example.com:50051",\n job_id="predator-service",\n job_token="api-token"\n)\n\nclient = GRPCFeatureClient(config)\n\n# Persist real-time features\nresult = client.persist_features(\n entity_label="user_interaction",\n keys_schema=["user_id", "session_id"],\n feature_group_schemas=[{\n "label": "realtime_features",\n "feature_labels": ["click_count", "page_views"]\n }],\n data_rows=[{\n "user_id": "u123",\n "session_id": "s456",\n "click_count": 5,\n "page_views": 3\n }]\n)\n\nprint(f"Persist result: {result}")\n'})}),"\n",(0,i.jsx)(n.h3,{id:"retrieving-features",children:"Retrieving Features"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'# Retrieve features for ML model inference\nfeatures = client.retrieve_decoded_features(\n entity_label="user_interaction",\n feature_groups=[{\n "label": "user_features",\n "feature_labels": ["age", "location"]\n }],\n keys_schema=["user_id"],\n entity_keys=[["u123"], ["u456"]]\n)\n\nprint(f"Retrieved features: {features}")\n'})}),"\n",(0,i.jsx)(n.h3,{id:"with-context-management",children:"With Context Management"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"# Use client with automatic cleanup\nwith GRPCFeatureClient(config) as client:\n result = client.persist_features(...)\n features = client.retrieve_decoded_features(...)\n# Connection automatically closed\n"})}),"\n",(0,i.jsx)(n.h2,{id:"when-to-use",children:"When to Use"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Use grpc_feature_client for:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\ude80 ",(0,i.jsx)(n.strong,{children:"Real-time Operations"}),": Direct persist/retrieve operations"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udd0d ",(0,i.jsx)(n.strong,{children:"Interactive Queries"}),": Low-latency feature lookups"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83c\udfaf ",(0,i.jsx)(n.strong,{children:"API Integration"}),": Service-to-service communication"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udca8 ",(0,i.jsx)(n.strong,{children:"Single Records"}),": Persisting individual feature records"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udd04 ",(0,i.jsx)(n.strong,{children:"Model Serving"}),": Feature retrieval for online inference"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Use spark_feature_push_client for:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udd04 ",(0,i.jsx)(n.strong,{children:"Batch ETL Pipelines"}),": Scheduled feature computation and publishing"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcca ",(0,i.jsx)(n.strong,{children:"Historical Data Backfill"}),": Loading historical features into online store"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83c\udfd7\ufe0f ",(0,i.jsx)(n.strong,{children:"Data Engineering"}),": Spark-based feature transformations"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcc8 ",(0,i.jsx)(n.strong,{children:"Large Scale Processing"}),": Processing millions of records efficiently"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"related-packages",children:"Related Packages"}),"\n",(0,i.jsx)(n.p,{children:"This package is part of the BharatML Stack ecosystem:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"https://pypi.org/project/bharatml_commons/",children:"bharatml_commons"})}),": Common utilities and protobuf definitions (required dependency)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"https://pypi.org/project/spark_feature_push_client/",children:"spark_feature_push_client"})}),": Spark-based data pipeline client"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcac ",(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var s=t(6540);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/08daf6b6.852abb6b.js b/docs/assets/js/08daf6b6.852abb6b.js new file mode 100644 index 00000000..d12c0df2 --- /dev/null +++ b/docs/assets/js/08daf6b6.852abb6b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1686],{848:a=>{a.exports=JSON.parse('{"tag":{"label":"model-inference","permalink":"/BharatMLStack/blog/tags/model-inference","allTagsPath":"/BharatMLStack/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/model-inference","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/09dd5be9.9cd209bb.js b/docs/assets/js/09dd5be9.9cd209bb.js deleted file mode 100644 index d07ca928..00000000 --- a/docs/assets/js/09dd5be9.9cd209bb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6273],{1012:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/interaction-store-v0-68167b64c6e462ef2f177f0f86d55bda.png"},3190:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/schema-d699efc400ed0f83bba421c1f55ab211.png"},3518:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/old-batch-arch-bc2cedbc1fed0fc6f08479ba8fe52996.png"},3983:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-one","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-one/index.md","source":"@site/blog/bharatmlstack-history/post-one/index.md","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","description":"BharatMLStack","date":"2022-11-15T00:00:00.000Z","tags":[{"inline":true,"label":"online-feature-store","permalink":"/BharatMLStack/blog/tags/online-feature-store"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"}],"readingTime":10.25,"hasTruncateMarker":false,"authors":[{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null},{"name":"Aditya Kumar","title":"SDE-III @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Bhawani Singh","title":"SDE-IV @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"SDE-IV @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null}],"frontMatter":{"slug":"post-one","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","authors":["adarsha","aditya","bhawani","jigar"],"date":"2022-11-15T00:00:00.000Z","tags":["online-feature-store","interaction-store","mlplatform","meesho"]},"unlisted":false}')},5728:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/online-feature-store-v0-86ec0010947ae24621f39ebd0d1729ca.png"},7131:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/first-gen-arch-7c0b286810aecb7eff42b48f51caee1f.png"},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var t=i(6540);const s={},r=t.createContext(s);function a(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(r.Provider,{value:n},e.children)}},8831:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>t,toc:()=>d});var t=i(3983),s=i(4848),r=i(8453);const a={slug:"post-one",title:"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)",authors:["adarsha","aditya","bhawani","jigar"],date:new Date("2022-11-15T00:00:00.000Z"),tags:["online-feature-store","interaction-store","mlplatform","meesho"]},o=void 0,l={authorsImageUrls:[void 0,void 0,void 0,void 0]},d=[{value:"The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform",id:"the-genesis-how-a-friday-night-roast-sparked-meeshos-ml-platform",level:2},{value:"The Turning Point: From Batch to Real-Time",id:"the-turning-point-from-batch-to-real-time",level:2},{value:"First Generation Design",id:"first-generation-design",level:2},{value:"1. IOP Framework: A Real-Time DAG Executor",id:"1-iop-framework-a-real-time-dag-executor",level:3},{value:"2. Online Feature Store - 0th Version",id:"2-online-feature-store---0th-version",level:3},{value:"3. Interaction Store - 0th Version",id:"3-interaction-store---0th-version",level:3},{value:"Building the Online Feature Store - 0th Version",id:"building-the-online-feature-store---0th-version",level:2},{value:"Choosing the Right Tech Stack",id:"choosing-the-right-tech-stack",level:3},{value:"Streamlining the Data Flow",id:"streamlining-the-data-flow",level:3},{value:"The Challenges: Data Format and Storage",id:"the-challenges-data-format-and-storage",level:2},{value:"Feature Consistency",id:"feature-consistency",level:3},{value:"TTL Granularity",id:"ttl-granularity",level:3},{value:"Extensibility Across Databases",id:"extensibility-across-databases",level:3},{value:"Overcoming Technical Constraints",id:"overcoming-technical-constraints",level:2},{value:"The Solution: Schema Separation",id:"the-solution-schema-separation",level:2},{value:"Tracking Changes in Feature Groups",id:"tracking-changes-in-feature-groups",level:2},{value:"Common Real-World Scenarios:",id:"common-real-world-scenarios",level:3},{value:"The Solution: Schema Versioning",id:"the-solution-schema-versioning",level:2},{value:"Backward Compatibility",id:"backward-compatibility",level:3},{value:"Partial Availability Handling",id:"partial-availability-handling",level:3},{value:"Safe Writes Without Pipeline Pauses",id:"safe-writes-without-pipeline-pauses",level:3},{value:"Interaction Store - 0th Version",id:"interaction-store---0th-version",level:2},{value:"Event Ingestion",id:"event-ingestion",level:2},{value:"Storage Design",id:"storage-design",level:2},{value:"Why Redis?",id:"why-redis",level:3},{value:"Storage Structure",id:"storage-structure",level:3},{value:"Built-in Guardrails",id:"built-in-guardrails",level:3},{value:"Conclusion: Laying the Foundation for Real-Time ML",id:"conclusion-laying-the-foundation-for-real-time-ml",level:2}];function h(e){const n={a:"a",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"BharatMLStack",src:i(9930).A+"",width:"1472",height:"892"})}),"\n",(0,s.jsx)(n.h2,{id:"the-genesis-how-a-friday-night-roast-sparked-meeshos-ml-platform",children:"The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform"}),"\n",(0,s.jsx)(n.p,{children:"It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting\u2014until one remark hit a little too close to home:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:'"Why are we still crunching data for Monthly Active Users (MAU) when the next day it\u2019s all about Daily Active Users (DAU)?"'})}),"\n",(0,s.jsx)(n.p,{children:"The laughter died down, and the question lingered. When we regrouped on Monday\u2014clear-headed and slightly reflective\u2014we decided to dig into the numbers. What they discovered was quite revealing: a large portion of compute resources wasn\u2019t being put to good use.\nMuch of the system\u2019s effort was spent supporting users who weren\u2019t actively engaging, and even for new users, the experience wasn\u2019t optimized to make a meaningful impact."}),"\n",(0,s.jsxs)(n.p,{children:["At the same time, Meesho had just launched a company-wide initiative to reduce costs\u2014and every team had to contribute. This realization sparked the journey that would eventually lead to the ",(0,s.jsx)(n.strong,{children:"Meesho ML Platform"}),", known today as ",(0,s.jsx)(n.strong,{children:"BharatMLStack"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(3518).A+"",width:"1600",height:"1078"})}),"\n",(0,s.jsx)(n.p,{children:"Before the ML Platform, our recommendation and ranking pipelines followed a batch processing approach:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Data Ingestion"}),": The Data Platform team executed ETL jobs to ingest raw user data\u2014including user profiles, interaction logs, and product impressions\u2014into designated S3 buckets."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 1"}),": Embedding Generation: On the Data Science side, Spark jobs pulled data from multiple S3 sources, cleaned and preprocessed it, and applied matrix factorization to generate user and item embeddings. The processed data and embeddings were then stored back in S3 in a structured format."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 2"}),": Candidate Generation (CG): In this stage, Spark jobs leveraged embeddings and historical interaction data to generate candidate recommendations for users. These candidate lists were subsequently written to S3."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 3"}),": Ranking and Merging \u2013 A final round of processing ranked the generated candidates using ML models, combined different candidate lists, and stored the final ranked recommendations in a caching system."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Serving"}),': A microservice retrieved ranked recommendations from an in-memory data store via exposed APIs, delivering personalized listings across key surfaces such as "For You" and Category Landing Pages (CLP).']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This approach held up well\u2014until Meesho started seeing a significant surge in traffic."}),"\n",(0,s.jsx)(n.h2,{id:"the-turning-point-from-batch-to-real-time",children:"The Turning Point: From Batch to Real-Time"}),"\n",(0,s.jsxs)(n.p,{children:["At this time, the team was iterating on new ",(0,s.jsx)(n.strong,{children:"Ranker models"}),", and real-time inference seemed like the next logical step. But Rankers needed ",(0,s.jsx)(n.strong,{children:"real-time feature retrieval"}),", which meant an ",(0,s.jsx)(n.strong,{children:"online feature store"})," had to be built first."]}),"\n",(0,s.jsxs)(n.p,{children:["Exploring open-source options led to ",(0,s.jsx)(n.strong,{children:"cost vs. performance trade-offs"}),", but Meesho\u2019s surging traffic meant that ",(0,s.jsx)(n.strong,{children:"latency and stability were non-negotiable"}),". After multiple debates and stakeholder discussions, a bold decision was made:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"We would build our own feature store."})}),"\n",(0,s.jsxs)(n.p,{children:["Meanwhile, efforts began to bring ",(0,s.jsx)(n.strong,{children:"Candidate Generators (CGs)"})," to real-time. The challenge? ",(0,s.jsx)(n.strong,{children:"Storing and retrieving user interactions quickly enough"})," to power real-time recommendations."]}),"\n",(0,s.jsxs)(n.p,{children:["As the team dove deeper, a new roadblock emerged:",(0,s.jsx)(n.br,{}),"\n","Our ML jobs were orchestrated using ",(0,s.jsx)(n.strong,{children:"Airflow DAGs"}),", giving data scientists flexibility in experimentation. But transitioning to real-time execution threatened this agility. Every change would now require backend engineering support, ",(0,s.jsx)(n.strong,{children:"slowing down iteration cycles"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["That\u2019s when the idea struck:",(0,s.jsx)(n.br,{}),"\n","We needed a ",(0,s.jsx)(n.strong,{children:"framework for real-time DAG execution"}),"\u2014one that preserved the same flexibility as Airflow but worked for ",(0,s.jsx)(n.strong,{children:"streaming data"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This moment shaped the ",(0,s.jsx)(n.strong,{children:"next phase of our journey"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"first-generation-design",children:"First Generation Design"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(7131).A+"",width:"1600",height:"1006"})}),"\n",(0,s.jsx)(n.h1,{id:"laying-the-groundwork-the-first-gen-ml-platform",children:"Laying the Groundwork: The First-Gen ML Platform"}),"\n",(0,s.jsx)(n.p,{children:"To solve these challenges, the team built three foundational components:"}),"\n",(0,s.jsx)(n.h3,{id:"1-iop-framework-a-real-time-dag-executor",children:"1. IOP Framework: A Real-Time DAG Executor"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Reusable Nodes"}),": Each DAG node (e.g., an invocation to a CG service, a ranker, or a filter) had to be implemented only once. After that, it could be reused across any workflow by referencing it in config."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Config-driven Dynamic Graphs"}),": Execution graphs were defined as adjacency lists stored in ",(0,s.jsx)(n.strong,{children:"ZooKeeper"}),", allowing teams to modify the sequence or structure of operations without touching application code."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Plug-and-play CGs"}),": The Candidate Generator interface was preserved, so a single CG node could call any CG service by passing ",(0,s.jsx)(n.code,{children:"cg_name"})," in the request. This drastically reduced the code surface area and improved maintainability."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Production-Grade DAGs"}),": DAGs were designed to execute in ",(0,s.jsx)(n.strong,{children:"low-latency real-time environments"}),", with support for ",(0,s.jsx)(n.strong,{children:"parallel execution, retries, and branching"}),"."]}),"\n"]}),"\n",(0,s.jsx)("u",{children:(0,s.jsx)(n.a,{href:"https://www.meesho.io/blog/rebuilding-meeshos-ranking-platform",children:"More about IOP DAG"})}),"\n",(0,s.jsx)(n.h3,{id:"2-online-feature-store---0th-version",children:"2. Online Feature Store - 0th Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Used ",(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"})," for low-latency feature serving."]}),"\n",(0,s.jsxs)(n.li,{children:["Maintained feature consistency using ",(0,s.jsx)(n.strong,{children:"Feature Groups"})," with TTL-based expiry."]}),"\n",(0,s.jsxs)(n.li,{children:["A hybrid schema was used: feature keys stored in ",(0,s.jsx)(n.strong,{children:"ZooKeeper"}),", data stored in ",(0,s.jsx)(n.strong,{children:"compact arrays"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"3-interaction-store---0th-version",children:"3. Interaction Store - 0th Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Captured real-time user interactions like clicks, orders, and add-to-cart events."}),"\n",(0,s.jsxs)(n.li,{children:["Stored event data in ",(0,s.jsx)(n.strong,{children:"Redis ZSETs (sorted sets)"})," to enable fast lookups for recommendation engines."]}),"\n",(0,s.jsxs)(n.li,{children:["Provided an API to fetch a user's ",(0,s.jsxs)(n.strong,{children:["last ",(0,s.jsx)(n.em,{children:"k"})," interactions"]})," or ",(0,s.jsx)(n.strong,{children:"interactions within a time window"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["With these components in place, ",(0,s.jsx)(n.strong,{children:"real-time ML at Meesho became a reality"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"This was just the beginning."}),"\n",(0,s.jsx)(n.h2,{id:"building-the-online-feature-store---0th-version",children:"Building the Online Feature Store - 0th Version"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt text",src:i(5728).A+"",width:"1574",height:"562"})}),"\n",(0,s.jsx)(n.h3,{id:"choosing-the-right-tech-stack",children:"Choosing the Right Tech Stack"}),"\n",(0,s.jsxs)(n.p,{children:["We spent considerable time evaluating various databases, caches, and communication protocols for our ",(0,s.jsx)(n.strong,{children:"online feature store"}),". After carefully weighing ",(0,s.jsx)(n.strong,{children:"cost, latency, throughput"}),", and ",(0,s.jsx)(n.strong,{children:"operational stability"}),", we settled on a combination of:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"})," for storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"gRPC + Proto3"})," as our communication layer"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"streamlining-the-data-flow",children:"Streamlining the Data Flow"}),"\n",(0,s.jsx)(n.p,{children:"To keep things simple in the initial version:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature engineering jobs"})," wrote raw outputs to an ",(0,s.jsx)(n.strong,{children:"S3 bucket"})]}),"\n",(0,s.jsxs)(n.li,{children:["A ",(0,s.jsx)(n.strong,{children:"daily feature push job"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Read from S3"}),"\n",(0,s.jsxs)(n.li,{children:["Grouped related features into ",(0,s.jsx)(n.strong,{children:"Feature Groups"})," (ensuring consistency)"]}),"\n",(0,s.jsxs)(n.li,{children:["Pushed them to ",(0,s.jsx)(n.strong,{children:"Kafka"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"For features requiring frequent updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Ad-hoc jobs"})," computed features in higher frequency"]}),"\n",(0,s.jsxs)(n.li,{children:["These jobs pushed to both ",(0,s.jsx)(n.strong,{children:"Kafka"})," and ",(0,s.jsx)(n.strong,{children:"S3"})," (S3 preserved historical data for future model training)"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"the-challenges-data-format-and-storage",children:"The Challenges: Data Format and Storage"}),"\n",(0,s.jsxs)(n.p,{children:["One of the most critical design challenges was how to store feature data ",(0,s.jsx)(n.strong,{children:"efficiently and consistently"}),", especially in databases like ",(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"}),", which come with unique storage constraints."]}),"\n",(0,s.jsx)(n.p,{children:"We had to solve for three key requirements:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"feature-consistency",children:"Feature Consistency"}),"\n",(0,s.jsxs)(n.p,{children:["When a feature group contains features like ",(0,s.jsx)(n.code,{children:"order_count_1h"})," and ",(0,s.jsx)(n.code,{children:"click_count_1h"}),", both must reflect the ",(0,s.jsx)(n.strong,{children:"same time window"}),". Inconsistent updates would lead to ",(0,s.jsx)(n.strong,{children:"unreliable model predictions"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"ttl-granularity",children:"TTL Granularity"}),"\n",(0,s.jsxs)(n.p,{children:["Each feature group required an ",(0,s.jsx)(n.strong,{children:"expiry timestamp"}),", so that ",(0,s.jsx)(n.strong,{children:"all features within it expired together"}),"\u2014preserving consistency during reads."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"extensibility-across-databases",children:"Extensibility Across Databases"}),"\n",(0,s.jsxs)(n.p,{children:["We anticipated that infra needs would evolve. To future-proof our system, the data format was designed to be ",(0,s.jsx)(n.strong,{children:"decoupled from DB-specific layouts"}),", enabling portability to systems like ",(0,s.jsx)(n.strong,{children:"ScyllaDB"}),", ",(0,s.jsx)(n.strong,{children:"DynamoDB"}),", ",(0,s.jsx)(n.strong,{children:"HBase"}),", or ",(0,s.jsx)(n.strong,{children:"BigTable"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"overcoming-technical-constraints",children:"Overcoming Technical Constraints"}),"\n",(0,s.jsx)(n.p,{children:'At the time, we were using Cassandra, which not only imposed a soft limit of 75 columns per row, but also exhibited significant performance degradation as the number of columns increased further, particularly in memory constrained machines. Wide rows caused high memory usage during reads, unpredictable latencies due to heavy deserialization overhead, and inefficiencies during compactions and repairs. This ruled out the naive "one column per feature" approach. We needed a format that was compact, minimized the number of columns, and remained efficient and portable across different storage systems.'}),"\n",(0,s.jsx)(n.h2,{id:"the-solution-schema-separation",children:"The Solution: Schema Separation"}),"\n",(0,s.jsx)(n.p,{children:"We introduced the concept of Feature Groups\u2014logical groupings of features that must remain consistent with one another.\nTo represent these groups efficiently, we adopted a layered storage approach:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Labels (Keys)"})," were stored in ZooKeeper, serving as the schema."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Values"})," were stored as a comma-separated string array in Cassandra or Redis."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Expiry Timestamp and Schema Version"})," were appended using a semi-colon delimiter at the end of the string."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"feature_1_value,feature_2_value,feature_3_value;expiry_ts\n"})}),"\n",(0,s.jsx)(n.p,{children:"This format allowed:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Consistent writes and reads at the group level"}),"\n",(0,s.jsx)(n.li,{children:"Easy parsing of feature values using the schema lookup from ZooKeeper"}),"\n",(0,s.jsx)(n.li,{children:"Efficient storage with minimal DB column usage"}),"\n",(0,s.jsx)(n.li,{children:"Support for per-group TTLs and schema evolution"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"tracking-changes-in-feature-groups",children:"Tracking Changes in Feature Groups"}),"\n",(0,s.jsx)(n.p,{children:"Feature groups don\u2019t stay static. As models evolve, features get added, renamed, or removed. But schema changes often go live before the data is ready\u2014and stopping ingestion just to wait for everything to align isn't feasible."}),"\n",(0,s.jsx)(n.h3,{id:"common-real-world-scenarios",children:"Common Real-World Scenarios:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"A new feature is added to the schema, but ingestion jobs still use the older schema version."}),"\n",(0,s.jsx)(n.li,{children:"Ongoing writes don\u2019t include the newly added feature, and stopping ingestion would break freshness for existing features."}),"\n",(0,s.jsx)(n.li,{children:"During serving, models request a mix of old and new features, depending on rollout stages."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"the-solution-schema-versioning",children:"The Solution: Schema Versioning"}),"\n",(0,s.jsx)(n.p,{children:"We solved this with versioned feature group schemas, which unlocked several capabilities:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"backward-compatibility",children:"Backward Compatibility"}),"\n","Older ingestion jobs can continue writing using older schema versions. During reads, the system uses the schema version embedded in the value to interpret the data correctly."]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"partial-availability-handling",children:"Partial Availability Handling"}),"\n","During inference, if some features in the request aren\u2019t available (due to rollout delays or missing data), the system serves default values, ensuring the inference call doesn\u2019t fail."]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"safe-writes-without-pipeline-pauses",children:"Safe Writes Without Pipeline Pauses"}),"\n","With schema versioning, we no longer had to stop ingestion pipelines for schema updates. Writes using previous versions can continue safely, and downstream consumers evolve independently.\nThis design gave us the flexibility to move fast without breaking things\u2014preserving data quality, enabling experimentation, and ensuring reliability at scale."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(3190).A+"",width:"1600",height:"599"})}),"\n",(0,s.jsx)(n.h2,{id:"interaction-store---0th-version",children:"Interaction Store - 0th Version"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(1012).A+"",width:"1600",height:"518"})}),"\n",(0,s.jsxs)(n.p,{children:["To power real-time Candidate Generators (CGs), we needed fast access to user behavior signals\u2014like what a user recently clicked, ordered, or added to their cart. These interactions form the basis for many real-time recommendations, such as ",(0,s.jsx)(n.strong,{children:"Similar Products"}),", ",(0,s.jsx)(n.strong,{children:"People Also Viewed"}),", or ",(0,s.jsx)(n.strong,{children:"Recently Ordered Again"}),".\nFor the ",(0,s.jsx)(n.strong,{children:"0th version"})," of the Interaction Store, we focused on a design that was ",(0,s.jsx)(n.strong,{children:"simple, fast, and reliable"})," \u2014 optimized for high-throughput ingestion and low-latency lookups."]}),"\n",(0,s.jsx)(n.h2,{id:"event-ingestion",children:"Event Ingestion"}),"\n",(0,s.jsx)(n.p,{children:"We instrumented our backend services to emit key user interaction events to Kafka in real time. These included:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Click"}),"\n",(0,s.jsx)(n.li,{children:"Order"}),"\n",(0,s.jsx)(n.li,{children:"Add to Cart"}),"\n",(0,s.jsx)(n.li,{children:"Wishlist"}),"\n",(0,s.jsx)(n.li,{children:"Share"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Each event carried essential metadata:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"userId \u2014 uniquely identifies the user"}),"\n",(0,s.jsx)(n.li,{children:"productId \u2014 the item being interacted with"}),"\n",(0,s.jsx)(n.li,{children:"timestamp \u2014 the moment the interaction occurred"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This decoupled the interaction logging from storage, allowing ingestion and consumption to scale independently."}),"\n",(0,s.jsx)(n.h2,{id:"storage-design",children:"Storage Design"}),"\n",(0,s.jsx)(n.p,{children:"To store these events, we built Kafka consumers that processed the incoming streams and wrote the data into Redis, using sorted sets (ZSETs) as the primary data structure."}),"\n",(0,s.jsx)(n.h3,{id:"why-redis",children:"Why Redis?"}),"\n",(0,s.jsx)(n.p,{children:"Redis gave us:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Low-latency"})," reads and writes"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Time-ordered data"})," using ZSETs (via score = timestamp)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Native TTL support"}),", if needed in later versions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"In-memory performance"})," \u2014ideal for real-time CGs"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"storage-structure",children:"Storage Structure"}),"\n",(0,s.jsx)(n.p,{children:"Each user\u2019s interactions were stored using a composite key format, uniquely identifying the user and interaction type. This structure allowed efficient organization and quick retrieval of recent activity for recommendation generation:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"userId_eventType \u2192 ZSET[...(pid, ts)...]\n"})}),"\n",(0,s.jsx)(n.p,{children:"Within each ZSET:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.strong,{children:"timestamp"})," served as the score, maintaining temporal order"]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.strong,{children:"productId"})," (optionally with metadata) was the ",(0,s.jsx)(n.strong,{children:"value"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This allowed us to efficiently retrieve the interactions with HTTP-based API server with two query modes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fetch the ",(0,s.jsx)(n.strong,{children:"last k interactions"})," of a specific type for a given user with ",(0,s.jsx)(n.code,{children:"ZREVRANGE(userId_eventType, count)"})]}),"\n",(0,s.jsxs)(n.li,{children:["Retrieve ",(0,s.jsx)(n.strong,{children:"all interactions within a time range"})," (e.g., last 24 hours) with ",(0,s.jsx)(n.code,{children:"ZREVRANGEBYSCORE(userId_eventType, timeRange)"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"built-in-guardrails",children:"Built-in Guardrails"}),"\n",(0,s.jsx)(n.p,{children:"Since Redis was the sole store, we implemented High Availability (HA) to prevent data loss. To optimize memory usage, we also enforced size limits per event type\u2014only storing the last k interactions per user, with older entries getting truncated."}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-laying-the-foundation-for-real-time-ml",children:"Conclusion: Laying the Foundation for Real-Time ML"}),"\n",(0,s.jsxs)(n.p,{children:["In this first phase, we tackled the ",(0,s.jsx)(n.strong,{children:"fundamentals"}),"\u2014shifting from batch-based recommendations to a ",(0,s.jsx)(n.strong,{children:"real-time Recommendation"})," using ML platform that could keep up with Meesho\u2019s growth."]}),"\n",(0,s.jsxs)(n.p,{children:["With the ",(0,s.jsx)(n.strong,{children:"IOP Framework"}),", ",(0,s.jsx)(n.strong,{children:"Online Feature Store"}),", and ",(0,s.jsx)(n.strong,{children:"Interaction Store"}),", we built the core infrastructure to support real-time personalization at scale. These wins have already unlocked:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u2705 Faster, more dynamic recommendations for millions of users."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Better infrastructure efficiency, reducing wasted compute power."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 A flexible, modular system that allows for further experimentation."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["But this is just the beginning. While we've solved key challenges, ",(0,s.jsx)(n.strong,{children:"certain roadblocks remain"})," \u2014from optimizing ",(0,s.jsx)(n.strong,{children:"cost-performance trade-offs"})," to ",(0,s.jsx)(n.strong,{children:"seamlessly evolving schemas"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This foundational work laid the path for a reliable and scalable ",(0,s.jsx)(n.strong,{children:"real-time feature serving layer"}),"."]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},9930:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/bharatmlstack-72e1796337bfa224dee2a0f59ec4e2da.png"}}]); \ No newline at end of file diff --git a/docs/assets/js/09dd5be9.be7fd2aa.js b/docs/assets/js/09dd5be9.be7fd2aa.js new file mode 100644 index 00000000..c4d40aef --- /dev/null +++ b/docs/assets/js/09dd5be9.be7fd2aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6273],{395:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/interaction-store-v0-68167b64c6e462ef2f177f0f86d55bda.png"},1164:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"},1757:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/old-batch-arch-bc2cedbc1fed0fc6f08479ba8fe52996.png"},3983:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-one","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-one/index.md","source":"@site/blog/bharatmlstack-history/post-one/index.md","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","description":"BharatMLStack","date":"2022-11-15T00:00:00.000Z","tags":[{"inline":true,"label":"online-feature-store","permalink":"/BharatMLStack/blog/tags/online-feature-store"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"}],"readingTime":10.25,"hasTruncateMarker":false,"authors":[{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null},{"name":"Aditya Kumar","title":"Lead Software Engineer @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Bhawani Singh","title":"Architect @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"Lead Software Engineer @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null}],"frontMatter":{"slug":"post-one","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","authors":["adarsha","aditya","bhawani","jigar"],"date":"2022-11-15T00:00:00.000Z","tags":["online-feature-store","interaction-store","mlplatform","meesho"]},"unlisted":false,"prevItem":{"title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","permalink":"/BharatMLStack/blog/post-two"}}')},5017:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/online-feature-store-v0-86ec0010947ae24621f39ebd0d1729ca.png"},7848:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/first-gen-arch-7c0b286810aecb7eff42b48f51caee1f.png"},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var t=i(6540);const s={},r=t.createContext(s);function a(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(r.Provider,{value:n},e.children)}},8733:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/schema-d699efc400ed0f83bba421c1f55ab211.png"},8831:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>t,toc:()=>d});var t=i(3983),s=i(4848),r=i(8453);const a={slug:"post-one",title:"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)",authors:["adarsha","aditya","bhawani","jigar"],date:new Date("2022-11-15T00:00:00.000Z"),tags:["online-feature-store","interaction-store","mlplatform","meesho"]},o=void 0,l={authorsImageUrls:[void 0,void 0,void 0,void 0]},d=[{value:"The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform",id:"the-genesis-how-a-friday-night-roast-sparked-meeshos-ml-platform",level:2},{value:"The Turning Point: From Batch to Real-Time",id:"the-turning-point-from-batch-to-real-time",level:2},{value:"First Generation Design",id:"first-generation-design",level:2},{value:"1. IOP Framework: A Real-Time DAG Executor",id:"1-iop-framework-a-real-time-dag-executor",level:3},{value:"2. Online Feature Store - 0th Version",id:"2-online-feature-store---0th-version",level:3},{value:"3. Interaction Store - 0th Version",id:"3-interaction-store---0th-version",level:3},{value:"Building the Online Feature Store - 0th Version",id:"building-the-online-feature-store---0th-version",level:2},{value:"Choosing the Right Tech Stack",id:"choosing-the-right-tech-stack",level:3},{value:"Streamlining the Data Flow",id:"streamlining-the-data-flow",level:3},{value:"The Challenges: Data Format and Storage",id:"the-challenges-data-format-and-storage",level:2},{value:"Feature Consistency",id:"feature-consistency",level:3},{value:"TTL Granularity",id:"ttl-granularity",level:3},{value:"Extensibility Across Databases",id:"extensibility-across-databases",level:3},{value:"Overcoming Technical Constraints",id:"overcoming-technical-constraints",level:2},{value:"The Solution: Schema Separation",id:"the-solution-schema-separation",level:2},{value:"Tracking Changes in Feature Groups",id:"tracking-changes-in-feature-groups",level:2},{value:"Common Real-World Scenarios:",id:"common-real-world-scenarios",level:3},{value:"The Solution: Schema Versioning",id:"the-solution-schema-versioning",level:2},{value:"Backward Compatibility",id:"backward-compatibility",level:3},{value:"Partial Availability Handling",id:"partial-availability-handling",level:3},{value:"Safe Writes Without Pipeline Pauses",id:"safe-writes-without-pipeline-pauses",level:3},{value:"Interaction Store - 0th Version",id:"interaction-store---0th-version",level:2},{value:"Event Ingestion",id:"event-ingestion",level:2},{value:"Storage Design",id:"storage-design",level:2},{value:"Why Redis?",id:"why-redis",level:3},{value:"Storage Structure",id:"storage-structure",level:3},{value:"Built-in Guardrails",id:"built-in-guardrails",level:3},{value:"Conclusion: Laying the Foundation for Real-Time ML",id:"conclusion-laying-the-foundation-for-real-time-ml",level:2}];function h(e){const n={a:"a",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"BharatMLStack",src:i(1164).A+"",width:"1396",height:"460"})}),"\n",(0,s.jsx)(n.h2,{id:"the-genesis-how-a-friday-night-roast-sparked-meeshos-ml-platform",children:"The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform"}),"\n",(0,s.jsx)(n.p,{children:"It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting\u2014until one remark hit a little too close to home:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:'"Why are we still crunching data for Monthly Active Users (MAU) when the next day it\u2019s all about Daily Active Users (DAU)?"'})}),"\n",(0,s.jsx)(n.p,{children:"The laughter died down, and the question lingered. When we regrouped on Monday\u2014clear-headed and slightly reflective\u2014we decided to dig into the numbers. What they discovered was quite revealing: a large portion of compute resources wasn\u2019t being put to good use.\nMuch of the system\u2019s effort was spent supporting users who weren\u2019t actively engaging, and even for new users, the experience wasn\u2019t optimized to make a meaningful impact."}),"\n",(0,s.jsxs)(n.p,{children:["At the same time, Meesho had just launched a company-wide initiative to reduce costs\u2014and every team had to contribute. This realization sparked the journey that would eventually lead to the ",(0,s.jsx)(n.strong,{children:"Meesho ML Platform"}),", known today as ",(0,s.jsx)(n.strong,{children:"BharatMLStack"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(1757).A+"",width:"1600",height:"1078"})}),"\n",(0,s.jsx)(n.p,{children:"Before the ML Platform, our recommendation and ranking pipelines followed a batch processing approach:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Data Ingestion"}),": The Data Platform team executed ETL jobs to ingest raw user data\u2014including user profiles, interaction logs, and product impressions\u2014into designated S3 buckets."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 1"}),": Embedding Generation: On the Data Science side, Spark jobs pulled data from multiple S3 sources, cleaned and preprocessed it, and applied matrix factorization to generate user and item embeddings. The processed data and embeddings were then stored back in S3 in a structured format."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 2"}),": Candidate Generation (CG): In this stage, Spark jobs leveraged embeddings and historical interaction data to generate candidate recommendations for users. These candidate lists were subsequently written to S3."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 3"}),": Ranking and Merging \u2013 A final round of processing ranked the generated candidates using ML models, combined different candidate lists, and stored the final ranked recommendations in a caching system."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Serving"}),': A microservice retrieved ranked recommendations from an in-memory data store via exposed APIs, delivering personalized listings across key surfaces such as "For You" and Category Landing Pages (CLP).']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This approach held up well\u2014until Meesho started seeing a significant surge in traffic."}),"\n",(0,s.jsx)(n.h2,{id:"the-turning-point-from-batch-to-real-time",children:"The Turning Point: From Batch to Real-Time"}),"\n",(0,s.jsxs)(n.p,{children:["At this time, the team was iterating on new ",(0,s.jsx)(n.strong,{children:"Ranker models"}),", and real-time inference seemed like the next logical step. But Rankers needed ",(0,s.jsx)(n.strong,{children:"real-time feature retrieval"}),", which meant an ",(0,s.jsx)(n.strong,{children:"online feature store"})," had to be built first."]}),"\n",(0,s.jsxs)(n.p,{children:["Exploring open-source options led to ",(0,s.jsx)(n.strong,{children:"cost vs. performance trade-offs"}),", but Meesho\u2019s surging traffic meant that ",(0,s.jsx)(n.strong,{children:"latency and stability were non-negotiable"}),". After multiple debates and stakeholder discussions, a bold decision was made:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"We would build our own feature store."})}),"\n",(0,s.jsxs)(n.p,{children:["Meanwhile, efforts began to bring ",(0,s.jsx)(n.strong,{children:"Candidate Generators (CGs)"})," to real-time. The challenge? ",(0,s.jsx)(n.strong,{children:"Storing and retrieving user interactions quickly enough"})," to power real-time recommendations."]}),"\n",(0,s.jsxs)(n.p,{children:["As the team dove deeper, a new roadblock emerged:",(0,s.jsx)(n.br,{}),"\n","Our ML jobs were orchestrated using ",(0,s.jsx)(n.strong,{children:"Airflow DAGs"}),", giving data scientists flexibility in experimentation. But transitioning to real-time execution threatened this agility. Every change would now require backend engineering support, ",(0,s.jsx)(n.strong,{children:"slowing down iteration cycles"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["That\u2019s when the idea struck:",(0,s.jsx)(n.br,{}),"\n","We needed a ",(0,s.jsx)(n.strong,{children:"framework for real-time DAG execution"}),"\u2014one that preserved the same flexibility as Airflow but worked for ",(0,s.jsx)(n.strong,{children:"streaming data"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This moment shaped the ",(0,s.jsx)(n.strong,{children:"next phase of our journey"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"first-generation-design",children:"First Generation Design"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(7848).A+"",width:"1600",height:"1006"})}),"\n",(0,s.jsx)(n.h1,{id:"laying-the-groundwork-the-first-gen-ml-platform",children:"Laying the Groundwork: The First-Gen ML Platform"}),"\n",(0,s.jsx)(n.p,{children:"To solve these challenges, the team built three foundational components:"}),"\n",(0,s.jsx)(n.h3,{id:"1-iop-framework-a-real-time-dag-executor",children:"1. IOP Framework: A Real-Time DAG Executor"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Reusable Nodes"}),": Each DAG node (e.g., an invocation to a CG service, a ranker, or a filter) had to be implemented only once. After that, it could be reused across any workflow by referencing it in config."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Config-driven Dynamic Graphs"}),": Execution graphs were defined as adjacency lists stored in ",(0,s.jsx)(n.strong,{children:"ZooKeeper"}),", allowing teams to modify the sequence or structure of operations without touching application code."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Plug-and-play CGs"}),": The Candidate Generator interface was preserved, so a single CG node could call any CG service by passing ",(0,s.jsx)(n.code,{children:"cg_name"})," in the request. This drastically reduced the code surface area and improved maintainability."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Production-Grade DAGs"}),": DAGs were designed to execute in ",(0,s.jsx)(n.strong,{children:"low-latency real-time environments"}),", with support for ",(0,s.jsx)(n.strong,{children:"parallel execution, retries, and branching"}),"."]}),"\n"]}),"\n",(0,s.jsx)("u",{children:(0,s.jsx)(n.a,{href:"https://www.meesho.io/blog/rebuilding-meeshos-ranking-platform",children:"More about IOP DAG"})}),"\n",(0,s.jsx)(n.h3,{id:"2-online-feature-store---0th-version",children:"2. Online Feature Store - 0th Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Used ",(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"})," for low-latency feature serving."]}),"\n",(0,s.jsxs)(n.li,{children:["Maintained feature consistency using ",(0,s.jsx)(n.strong,{children:"Feature Groups"})," with TTL-based expiry."]}),"\n",(0,s.jsxs)(n.li,{children:["A hybrid schema was used: feature keys stored in ",(0,s.jsx)(n.strong,{children:"ZooKeeper"}),", data stored in ",(0,s.jsx)(n.strong,{children:"compact arrays"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"3-interaction-store---0th-version",children:"3. Interaction Store - 0th Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Captured real-time user interactions like clicks, orders, and add-to-cart events."}),"\n",(0,s.jsxs)(n.li,{children:["Stored event data in ",(0,s.jsx)(n.strong,{children:"Redis ZSETs (sorted sets)"})," to enable fast lookups for recommendation engines."]}),"\n",(0,s.jsxs)(n.li,{children:["Provided an API to fetch a user's ",(0,s.jsxs)(n.strong,{children:["last ",(0,s.jsx)(n.em,{children:"k"})," interactions"]})," or ",(0,s.jsx)(n.strong,{children:"interactions within a time window"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["With these components in place, ",(0,s.jsx)(n.strong,{children:"real-time ML at Meesho became a reality"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"This was just the beginning."}),"\n",(0,s.jsx)(n.h2,{id:"building-the-online-feature-store---0th-version",children:"Building the Online Feature Store - 0th Version"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt text",src:i(5017).A+"",width:"1574",height:"562"})}),"\n",(0,s.jsx)(n.h3,{id:"choosing-the-right-tech-stack",children:"Choosing the Right Tech Stack"}),"\n",(0,s.jsxs)(n.p,{children:["We spent considerable time evaluating various databases, caches, and communication protocols for our ",(0,s.jsx)(n.strong,{children:"online feature store"}),". After carefully weighing ",(0,s.jsx)(n.strong,{children:"cost, latency, throughput"}),", and ",(0,s.jsx)(n.strong,{children:"operational stability"}),", we settled on a combination of:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"})," for storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"gRPC + Proto3"})," as our communication layer"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"streamlining-the-data-flow",children:"Streamlining the Data Flow"}),"\n",(0,s.jsx)(n.p,{children:"To keep things simple in the initial version:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature engineering jobs"})," wrote raw outputs to an ",(0,s.jsx)(n.strong,{children:"S3 bucket"})]}),"\n",(0,s.jsxs)(n.li,{children:["A ",(0,s.jsx)(n.strong,{children:"daily feature push job"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Read from S3"}),"\n",(0,s.jsxs)(n.li,{children:["Grouped related features into ",(0,s.jsx)(n.strong,{children:"Feature Groups"})," (ensuring consistency)"]}),"\n",(0,s.jsxs)(n.li,{children:["Pushed them to ",(0,s.jsx)(n.strong,{children:"Kafka"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"For features requiring frequent updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Ad-hoc jobs"})," computed features in higher frequency"]}),"\n",(0,s.jsxs)(n.li,{children:["These jobs pushed to both ",(0,s.jsx)(n.strong,{children:"Kafka"})," and ",(0,s.jsx)(n.strong,{children:"S3"})," (S3 preserved historical data for future model training)"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"the-challenges-data-format-and-storage",children:"The Challenges: Data Format and Storage"}),"\n",(0,s.jsxs)(n.p,{children:["One of the most critical design challenges was how to store feature data ",(0,s.jsx)(n.strong,{children:"efficiently and consistently"}),", especially in databases like ",(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"}),", which come with unique storage constraints."]}),"\n",(0,s.jsx)(n.p,{children:"We had to solve for three key requirements:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"feature-consistency",children:"Feature Consistency"}),"\n",(0,s.jsxs)(n.p,{children:["When a feature group contains features like ",(0,s.jsx)(n.code,{children:"order_count_1h"})," and ",(0,s.jsx)(n.code,{children:"click_count_1h"}),", both must reflect the ",(0,s.jsx)(n.strong,{children:"same time window"}),". Inconsistent updates would lead to ",(0,s.jsx)(n.strong,{children:"unreliable model predictions"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"ttl-granularity",children:"TTL Granularity"}),"\n",(0,s.jsxs)(n.p,{children:["Each feature group required an ",(0,s.jsx)(n.strong,{children:"expiry timestamp"}),", so that ",(0,s.jsx)(n.strong,{children:"all features within it expired together"}),"\u2014preserving consistency during reads."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"extensibility-across-databases",children:"Extensibility Across Databases"}),"\n",(0,s.jsxs)(n.p,{children:["We anticipated that infra needs would evolve. To future-proof our system, the data format was designed to be ",(0,s.jsx)(n.strong,{children:"decoupled from DB-specific layouts"}),", enabling portability to systems like ",(0,s.jsx)(n.strong,{children:"ScyllaDB"}),", ",(0,s.jsx)(n.strong,{children:"DynamoDB"}),", ",(0,s.jsx)(n.strong,{children:"HBase"}),", or ",(0,s.jsx)(n.strong,{children:"BigTable"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"overcoming-technical-constraints",children:"Overcoming Technical Constraints"}),"\n",(0,s.jsx)(n.p,{children:'At the time, we were using Cassandra, which not only imposed a soft limit of 75 columns per row, but also exhibited significant performance degradation as the number of columns increased further, particularly in memory constrained machines. Wide rows caused high memory usage during reads, unpredictable latencies due to heavy deserialization overhead, and inefficiencies during compactions and repairs. This ruled out the naive "one column per feature" approach. We needed a format that was compact, minimized the number of columns, and remained efficient and portable across different storage systems.'}),"\n",(0,s.jsx)(n.h2,{id:"the-solution-schema-separation",children:"The Solution: Schema Separation"}),"\n",(0,s.jsx)(n.p,{children:"We introduced the concept of Feature Groups\u2014logical groupings of features that must remain consistent with one another.\nTo represent these groups efficiently, we adopted a layered storage approach:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Labels (Keys)"})," were stored in ZooKeeper, serving as the schema."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Values"})," were stored as a comma-separated string array in Cassandra or Redis."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Expiry Timestamp and Schema Version"})," were appended using a semi-colon delimiter at the end of the string."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"feature_1_value,feature_2_value,feature_3_value;expiry_ts\n"})}),"\n",(0,s.jsx)(n.p,{children:"This format allowed:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Consistent writes and reads at the group level"}),"\n",(0,s.jsx)(n.li,{children:"Easy parsing of feature values using the schema lookup from ZooKeeper"}),"\n",(0,s.jsx)(n.li,{children:"Efficient storage with minimal DB column usage"}),"\n",(0,s.jsx)(n.li,{children:"Support for per-group TTLs and schema evolution"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"tracking-changes-in-feature-groups",children:"Tracking Changes in Feature Groups"}),"\n",(0,s.jsx)(n.p,{children:"Feature groups don\u2019t stay static. As models evolve, features get added, renamed, or removed. But schema changes often go live before the data is ready\u2014and stopping ingestion just to wait for everything to align isn't feasible."}),"\n",(0,s.jsx)(n.h3,{id:"common-real-world-scenarios",children:"Common Real-World Scenarios:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"A new feature is added to the schema, but ingestion jobs still use the older schema version."}),"\n",(0,s.jsx)(n.li,{children:"Ongoing writes don\u2019t include the newly added feature, and stopping ingestion would break freshness for existing features."}),"\n",(0,s.jsx)(n.li,{children:"During serving, models request a mix of old and new features, depending on rollout stages."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"the-solution-schema-versioning",children:"The Solution: Schema Versioning"}),"\n",(0,s.jsx)(n.p,{children:"We solved this with versioned feature group schemas, which unlocked several capabilities:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"backward-compatibility",children:"Backward Compatibility"}),"\n","Older ingestion jobs can continue writing using older schema versions. During reads, the system uses the schema version embedded in the value to interpret the data correctly."]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"partial-availability-handling",children:"Partial Availability Handling"}),"\n","During inference, if some features in the request aren\u2019t available (due to rollout delays or missing data), the system serves default values, ensuring the inference call doesn\u2019t fail."]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"safe-writes-without-pipeline-pauses",children:"Safe Writes Without Pipeline Pauses"}),"\n","With schema versioning, we no longer had to stop ingestion pipelines for schema updates. Writes using previous versions can continue safely, and downstream consumers evolve independently.\nThis design gave us the flexibility to move fast without breaking things\u2014preserving data quality, enabling experimentation, and ensuring reliability at scale."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(8733).A+"",width:"1600",height:"599"})}),"\n",(0,s.jsx)(n.h2,{id:"interaction-store---0th-version",children:"Interaction Store - 0th Version"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(395).A+"",width:"1600",height:"518"})}),"\n",(0,s.jsxs)(n.p,{children:["To power real-time Candidate Generators (CGs), we needed fast access to user behavior signals\u2014like what a user recently clicked, ordered, or added to their cart. These interactions form the basis for many real-time recommendations, such as ",(0,s.jsx)(n.strong,{children:"Similar Products"}),", ",(0,s.jsx)(n.strong,{children:"People Also Viewed"}),", or ",(0,s.jsx)(n.strong,{children:"Recently Ordered Again"}),".\nFor the ",(0,s.jsx)(n.strong,{children:"0th version"})," of the Interaction Store, we focused on a design that was ",(0,s.jsx)(n.strong,{children:"simple, fast, and reliable"})," \u2014 optimized for high-throughput ingestion and low-latency lookups."]}),"\n",(0,s.jsx)(n.h2,{id:"event-ingestion",children:"Event Ingestion"}),"\n",(0,s.jsx)(n.p,{children:"We instrumented our backend services to emit key user interaction events to Kafka in real time. These included:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Click"}),"\n",(0,s.jsx)(n.li,{children:"Order"}),"\n",(0,s.jsx)(n.li,{children:"Add to Cart"}),"\n",(0,s.jsx)(n.li,{children:"Wishlist"}),"\n",(0,s.jsx)(n.li,{children:"Share"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Each event carried essential metadata:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"userId \u2014 uniquely identifies the user"}),"\n",(0,s.jsx)(n.li,{children:"productId \u2014 the item being interacted with"}),"\n",(0,s.jsx)(n.li,{children:"timestamp \u2014 the moment the interaction occurred"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This decoupled the interaction logging from storage, allowing ingestion and consumption to scale independently."}),"\n",(0,s.jsx)(n.h2,{id:"storage-design",children:"Storage Design"}),"\n",(0,s.jsx)(n.p,{children:"To store these events, we built Kafka consumers that processed the incoming streams and wrote the data into Redis, using sorted sets (ZSETs) as the primary data structure."}),"\n",(0,s.jsx)(n.h3,{id:"why-redis",children:"Why Redis?"}),"\n",(0,s.jsx)(n.p,{children:"Redis gave us:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Low-latency"})," reads and writes"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Time-ordered data"})," using ZSETs (via score = timestamp)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Native TTL support"}),", if needed in later versions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"In-memory performance"})," \u2014ideal for real-time CGs"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"storage-structure",children:"Storage Structure"}),"\n",(0,s.jsx)(n.p,{children:"Each user\u2019s interactions were stored using a composite key format, uniquely identifying the user and interaction type. This structure allowed efficient organization and quick retrieval of recent activity for recommendation generation:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"userId_eventType \u2192 ZSET[...(pid, ts)...]\n"})}),"\n",(0,s.jsx)(n.p,{children:"Within each ZSET:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.strong,{children:"timestamp"})," served as the score, maintaining temporal order"]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.strong,{children:"productId"})," (optionally with metadata) was the ",(0,s.jsx)(n.strong,{children:"value"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This allowed us to efficiently retrieve the interactions with HTTP-based API server with two query modes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fetch the ",(0,s.jsx)(n.strong,{children:"last k interactions"})," of a specific type for a given user with ",(0,s.jsx)(n.code,{children:"ZREVRANGE(userId_eventType, count)"})]}),"\n",(0,s.jsxs)(n.li,{children:["Retrieve ",(0,s.jsx)(n.strong,{children:"all interactions within a time range"})," (e.g., last 24 hours) with ",(0,s.jsx)(n.code,{children:"ZREVRANGEBYSCORE(userId_eventType, timeRange)"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"built-in-guardrails",children:"Built-in Guardrails"}),"\n",(0,s.jsx)(n.p,{children:"Since Redis was the sole store, we implemented High Availability (HA) to prevent data loss. To optimize memory usage, we also enforced size limits per event type\u2014only storing the last k interactions per user, with older entries getting truncated."}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-laying-the-foundation-for-real-time-ml",children:"Conclusion: Laying the Foundation for Real-Time ML"}),"\n",(0,s.jsxs)(n.p,{children:["In this first phase, we tackled the ",(0,s.jsx)(n.strong,{children:"fundamentals"}),"\u2014shifting from batch-based recommendations to a ",(0,s.jsx)(n.strong,{children:"real-time Recommendation"})," using ML platform that could keep up with Meesho\u2019s growth."]}),"\n",(0,s.jsxs)(n.p,{children:["With the ",(0,s.jsx)(n.strong,{children:"IOP Framework"}),", ",(0,s.jsx)(n.strong,{children:"Online Feature Store"}),", and ",(0,s.jsx)(n.strong,{children:"Interaction Store"}),", we built the core infrastructure to support real-time personalization at scale. These wins have already unlocked:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u2705 Faster, more dynamic recommendations for millions of users."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Better infrastructure efficiency, reducing wasted compute power."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 A flexible, modular system that allows for further experimentation."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["But this is just the beginning. While we've solved key challenges, ",(0,s.jsx)(n.strong,{children:"certain roadblocks remain"})," \u2014from optimizing ",(0,s.jsx)(n.strong,{children:"cost-performance trade-offs"})," to ",(0,s.jsx)(n.strong,{children:"seamlessly evolving schemas"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This foundational work laid the path for a reliable and scalable ",(0,s.jsx)(n.strong,{children:"real-time feature serving layer"}),"."]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/docs/assets/js/0a89f5c9.190be82b.js b/docs/assets/js/0a89f5c9.190be82b.js new file mode 100644 index 00000000..cf662ca4 --- /dev/null +++ b/docs/assets/js/0a89f5c9.190be82b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7508],{5641:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"inferflow/v1.0.0/functionalities","title":"Key Functionalities","description":"Overview","source":"@site/docs/inferflow/v1.0.0/functionalities.md","sourceDirName":"inferflow/v1.0.0","slug":"/inferflow/v1.0.0/functionalities","permalink":"/BharatMLStack/inferflow/v1.0.0/functionalities","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/inferflow/v1.0.0/functionalities.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Key Functionalities","sidebar_position":2},"sidebar":"tutorialSidebar","previous":{"title":"Architecture","permalink":"/BharatMLStack/inferflow/v1.0.0/architecture"},"next":{"title":"Configuration Guide","permalink":"/BharatMLStack/inferflow/v1.0.0/configuration"}}');var s=i(4848),t=i(8453);const l={title:"Key Functionalities",sidebar_position:2},o="Inferflow - Key Functionalities",c={},d=[{value:"Overview",id:"overview",level:2},{value:"Core Capabilities",id:"core-capabilities",level:2},{value:"Graph-Driven Feature Retrieval",id:"graph-driven-feature-retrieval",level:3},{value:"DAG Topology Executor",id:"dag-topology-executor",level:3},{value:"Multi-Pattern Inference APIs",id:"multi-pattern-inference-apis",level:2},{value:"PointWise Inference",id:"pointwise-inference",level:3},{value:"PairWise Inference",id:"pairwise-inference",level:3},{value:"SlateWise Inference",id:"slatewise-inference",level:3},{value:"Entity & Legacy API",id:"entity--legacy-api",level:2},{value:"RetrieveModelScore",id:"retrievemodelscore",level:3},{value:"Component Types",id:"component-types",level:2},{value:"FeatureInitComponent",id:"featureinitcomponent",level:3},{value:"FeatureComponent",id:"featurecomponent",level:3},{value:"PredatorComponent",id:"predatorcomponent",level:3},{value:"NumerixComponent",id:"numerixcomponent",level:3},{value:"Feature Retrieval Pipeline",id:"feature-retrieval-pipeline",level:2},{value:"Key Resolution",id:"key-resolution",level:3},{value:"Batched Retrieval",id:"batched-retrieval",level:3},{value:"In-Memory Caching",id:"in-memory-caching",level:3},{value:"Data Types",id:"data-types",level:2},{value:"Inference Logging",id:"inference-logging",level:2},{value:"Serialization Formats",id:"serialization-formats",level:3},{value:"Sampling Controls",id:"sampling-controls",level:3},{value:"Log Content",id:"log-content",level:3},{value:"Configuration Hot-Reload",id:"configuration-hot-reload",level:2},{value:"Performance Characteristics",id:"performance-characteristics",level:2},{value:"Concurrency Model",id:"concurrency-model",level:3},{value:"Memory Efficiency",id:"memory-efficiency",level:3},{value:"Serialization",id:"serialization",level:3},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"inferflow---key-functionalities",children:"Inferflow - Key Functionalities"})}),"\n",(0,s.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,s.jsxs)(n.p,{children:["Inferflow is a high-performance, config-driven ML inference orchestration engine built in ",(0,s.jsx)(n.strong,{children:"Go"}),". It provides ",(0,s.jsx)(n.strong,{children:"no-code feature retrieval"}),", ",(0,s.jsx)(n.strong,{children:"DAG-based execution"}),", and ",(0,s.jsx)(n.strong,{children:"multi-pattern model inference"})," \u2014 enabling ML teams to onboard new models through configuration changes alone."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"core-capabilities",children:"Core Capabilities"}),"\n",(0,s.jsx)(n.h3,{id:"graph-driven-feature-retrieval",children:"Graph-Driven Feature Retrieval"}),"\n",(0,s.jsx)(n.p,{children:"Inferflow's defining feature is its ability to resolve entity relationships and retrieve features through configurable DAG topologies \u2014 no custom code required."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"How it works:"})}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["A ",(0,s.jsx)(n.code,{children:"model_config_id"})," maps to a pre-defined DAG of components"]}),"\n",(0,s.jsxs)(n.li,{children:["Context entity IDs (e.g., ",(0,s.jsx)(n.code,{children:"userId"}),", ",(0,s.jsx)(n.code,{children:"productIds"}),") are provided at request time"]}),"\n",(0,s.jsxs)(n.li,{children:["The DAG resolves intermediate entity relationships (e.g., extracting ",(0,s.jsx)(n.code,{children:"category"})," from ",(0,s.jsx)(n.code,{children:"product"})," to fetch ",(0,s.jsx)(n.code,{children:"user x category"})," features)"]}),"\n",(0,s.jsx)(n.li,{children:"Features are fetched in parallel from the Online Feature Store"}),"\n",(0,s.jsx)(n.li,{children:"A 2D feature matrix is assembled and passed to model scoring"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Impact:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"New models require only a config update \u2014 no code changes"}),"\n",(0,s.jsx)(n.li,{children:"Feature consistency is guaranteed across experiments"}),"\n",(0,s.jsx)(n.li,{children:"Iteration cycles drop from days to minutes"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"dag-topology-executor",children:"DAG Topology Executor"}),"\n",(0,s.jsxs)(n.p,{children:["The execution engine uses ",(0,s.jsx)(n.strong,{children:"Kahn's algorithm"})," for topological ordering with ",(0,s.jsx)(n.strong,{children:"concurrent goroutine execution"})," at each level:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'component_dependency: {\n "feature_initializer": ["fs_user", "fs_product"],\n "fs_user": ["ranker"],\n "fs_product": ["ranker"],\n "ranker": ["reranker"],\n "reranker": []\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"This config defines:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"feature_initializer"})," runs first (zero in-degree)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"fs_user"})," and ",(0,s.jsx)(n.code,{children:"fs_product"})," run ",(0,s.jsx)(n.strong,{children:"in parallel"})," after init"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"ranker"})," runs after both feature components complete"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"reranker"})," runs after the ranker"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Key properties:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Cycle detection via in-degree analysis"}),"\n",(0,s.jsx)(n.li,{children:"DAG topologies cached using Murmur3 hashing (Ristretto cache)"}),"\n",(0,s.jsxs)(n.li,{children:["Components are registered and resolved via a ",(0,s.jsx)(n.code,{children:"ComponentProvider"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"multi-pattern-inference-apis",children:"Multi-Pattern Inference APIs"}),"\n",(0,s.jsxs)(n.p,{children:["Inferflow supports three inference patterns via the ",(0,s.jsx)(n.strong,{children:"Predict API"}),", each designed for different ML use cases:"]}),"\n",(0,s.jsx)(n.h3,{id:"pointwise-inference",children:"PointWise Inference"}),"\n",(0,s.jsx)(n.p,{children:"Score each target independently against context features."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-protobuf",children:"rpc InferPointWise(PredictRequest) returns (PredictResponse);\n"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Use cases:"})," Click-through rate prediction, fraud scoring, relevance ranking"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input:"})," Context features + list of targets (e.g., products)\n",(0,s.jsx)(n.strong,{children:"Output:"})," Per-target scores"]}),"\n",(0,s.jsx)(n.h3,{id:"pairwise-inference",children:"PairWise Inference"}),"\n",(0,s.jsx)(n.p,{children:"Score pairs of targets relative to each other."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-protobuf",children:"rpc InferPairWise(PredictRequest) returns (PredictResponse);\n"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Use cases:"})," Preference learning, comparison-based ranking"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input:"})," Context features + targets + pair indices (first/second)\n",(0,s.jsx)(n.strong,{children:"Output:"})," Per-pair scores + optional per-target scores"]}),"\n",(0,s.jsx)(n.h3,{id:"slatewise-inference",children:"SlateWise Inference"}),"\n",(0,s.jsx)(n.p,{children:"Score groups (slates) of targets together, capturing inter-item effects."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-protobuf",children:"rpc InferSlateWise(PredictRequest) returns (PredictResponse);\n"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Use cases:"})," Whole-page optimization, slate-level reranking, diversity-aware scoring"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input:"})," Context features + targets + slate definitions (target indices per slate)\n",(0,s.jsx)(n.strong,{children:"Output:"})," Per-slate scores + optional per-target scores"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"entity--legacy-api",children:"Entity & Legacy API"}),"\n",(0,s.jsx)(n.h3,{id:"retrievemodelscore",children:"RetrieveModelScore"}),"\n",(0,s.jsx)(n.p,{children:"The original Inferflow API for entity-based feature retrieval and scoring:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-protobuf",children:"service Inferflow {\n rpc RetrieveModelScore(InferflowRequestProto) returns (InferflowResponseProto);\n}\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Request structure:"})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Field"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"entities"})}),(0,s.jsx)(n.td,{children:"List of entity types with their IDs and optional inline features"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"model_config_id"})}),(0,s.jsx)(n.td,{children:"Identifies the model configuration (DAG, components, response format)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"tracking_id"})}),(0,s.jsx)(n.td,{children:"Request-level tracing identifier"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Entity structure:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"entity"}),": Entity type label (e.g., ",(0,s.jsx)(n.code,{children:'"user"'}),", ",(0,s.jsx)(n.code,{children:'"product"'}),")"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"ids"}),": List of entity IDs"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"features"}),": Optional inline features (name + per-ID values)"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"component-types",children:"Component Types"}),"\n",(0,s.jsx)(n.h3,{id:"featureinitcomponent",children:"FeatureInitComponent"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Role:"})," Root DAG node \u2014 initializes the shared ",(0,s.jsx)(n.code,{children:"ComponentMatrix"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Sets up rows from entity IDs"}),"\n",(0,s.jsx)(n.li,{children:"Populates schema columns (string + byte) for all downstream components"}),"\n",(0,s.jsxs)(n.li,{children:["For slate APIs: initializes ",(0,s.jsx)(n.code,{children:"SlateData"})," with ",(0,s.jsx)(n.code,{children:"slate_target_indices"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"featurecomponent",children:"FeatureComponent"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Role:"})," Fetches features from the Online Feature Store (OnFS) for a specific entity type."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Reads ",(0,s.jsx)(n.code,{children:"FSKeys"})," from config to extract lookup keys from the matrix"]}),"\n",(0,s.jsx)(n.li,{children:"Batches unique entities and calls OnFS via gRPC"}),"\n",(0,s.jsxs)(n.li,{children:["Optional ",(0,s.jsx)(n.strong,{children:"in-memory caching"})," keyed by ",(0,s.jsx)(n.code,{children:"model_id:version:component:entity"})]}),"\n",(0,s.jsx)(n.li,{children:"Writes binary feature values into matrix byte columns"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Column naming convention:"})," ",(0,s.jsx)(n.code,{children:"entity_label:feature_group:feature_name"})]}),"\n",(0,s.jsx)(n.h3,{id:"predatorcomponent",children:"PredatorComponent"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Role:"})," Calls model serving endpoints for inference."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Builds feature payloads from matrix columns with type conversion"}),"\n",(0,s.jsxs)(n.li,{children:["Supports ",(0,s.jsx)(n.strong,{children:"percentage-based traffic routing"})," across multiple model endpoints"]}),"\n",(0,s.jsxs)(n.li,{children:["Handles ",(0,s.jsx)(n.strong,{children:"slate-level inference"}),": per-slate matrix \u2192 separate inference \u2192 scores to ",(0,s.jsx)(n.code,{children:"SlateData"})]}),"\n",(0,s.jsxs)(n.li,{children:["Configurable ",(0,s.jsx)(n.strong,{children:"calibration"})," and ",(0,s.jsx)(n.strong,{children:"batch sizing"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"numerixcomponent",children:"NumerixComponent"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Role:"})," Calls the Numerix compute engine for operations like reranking."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Uses ",(0,s.jsx)(n.code,{children:"ScoreMapping"})," config to map matrix columns to compute inputs"]}),"\n",(0,s.jsx)(n.li,{children:"Writes a single score column back to the matrix"}),"\n",(0,s.jsx)(n.li,{children:"Supports slate mode for per-slate compute operations"}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"feature-retrieval-pipeline",children:"Feature Retrieval Pipeline"}),"\n",(0,s.jsx)(n.h3,{id:"key-resolution",children:"Key Resolution"}),"\n",(0,s.jsxs)(n.p,{children:["Feature components use ",(0,s.jsx)(n.code,{children:"FSKeys"})," configuration to dynamically resolve entity keys:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "FSKeys": {\n "schema": ["user_id"],\n "col": "user:profile:user_id"\n }\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["The component reads key values from the existing matrix columns, enabling ",(0,s.jsx)(n.strong,{children:"chained entity resolution"})," \u2014 e.g., fetch product entity first, extract category, then fetch user x category features."]}),"\n",(0,s.jsx)(n.h3,{id:"batched-retrieval",children:"Batched Retrieval"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Features are fetched via ",(0,s.jsx)(n.code,{children:"FeatureService.RetrieveFeatures"})," gRPC call"]}),"\n",(0,s.jsx)(n.li,{children:"Requests are batched by unique entity keys"}),"\n",(0,s.jsx)(n.li,{children:"Configurable batch size and deadline per component"}),"\n",(0,s.jsxs)(n.li,{children:["Auth via ",(0,s.jsx)(n.code,{children:"CALLER_ID"})," and ",(0,s.jsx)(n.code,{children:"CALLER_TOKEN"})," metadata"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"in-memory-caching",children:"In-Memory Caching"}),"\n",(0,s.jsx)(n.p,{children:"Optional per-component caching reduces OnFS load:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Cache key: ",(0,s.jsx)(n.code,{children:"model_id:cache_version:component_name:entity_key"})]}),"\n",(0,s.jsx)(n.li,{children:"Configurable TTL per component"}),"\n",(0,s.jsx)(n.li,{children:"Zero-GC-overhead cache implementation available"}),"\n",(0,s.jsx)(n.li,{children:"Cache hit/miss metrics tracked via StatsD"}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"data-types",children:"Data Types"}),"\n",(0,s.jsx)(n.p,{children:"Inferflow supports comprehensive ML data types for feature encoding and model input/output:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Data Type"}),(0,s.jsx)(n.th,{children:"Variants"}),(0,s.jsx)(n.th,{children:"Usage"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Integers"})}),(0,s.jsx)(n.td,{children:"int8, int16, int32, int64"}),(0,s.jsx)(n.td,{children:"Categorical encodings, counts, IDs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Floats"})}),(0,s.jsx)(n.td,{children:"float8 (e4m3, e5m2), float16, float32, float64"}),(0,s.jsx)(n.td,{children:"Continuous features, embeddings, scores"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Strings"})}),(0,s.jsx)(n.td,{children:"Variable length"}),(0,s.jsx)(n.td,{children:"Categories, metadata"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Booleans"})}),(0,s.jsx)(n.td,{children:"Bit-packed"}),(0,s.jsx)(n.td,{children:"Binary indicators"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Vectors"})}),(0,s.jsx)(n.td,{children:"All scalar types"}),(0,s.jsx)(n.td,{children:"Embeddings, feature arrays"})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["Type conversion is handled by the ",(0,s.jsx)(n.code,{children:"datatypeconverter"})," package with optimized float8 implementations."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"inference-logging",children:"Inference Logging"}),"\n",(0,s.jsx)(n.p,{children:"Inferflow supports async inference logging to Kafka for model monitoring and debugging:"}),"\n",(0,s.jsx)(n.h3,{id:"serialization-formats",children:"Serialization Formats"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Format"}),(0,s.jsx)(n.th,{children:"Use Case"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Proto"})}),(0,s.jsx)(n.td,{children:"Default, compact"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Arrow"})}),(0,s.jsx)(n.td,{children:"Columnar analytics"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Parquet"})}),(0,s.jsx)(n.td,{children:"Long-term storage, query-friendly"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"sampling-controls",children:"Sampling Controls"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"LoggingPerc"})}),(0,s.jsx)(n.td,{children:"Percentage of requests to log (0-100)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"LogBatchSize"})}),(0,s.jsx)(n.td,{children:"Batch size for log message grouping"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"LogFeatures"})}),(0,s.jsx)(n.td,{children:"Specific features to include in logs"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"log-content",children:"Log Content"}),"\n",(0,s.jsxs)(n.p,{children:["Each ",(0,s.jsx)(n.code,{children:"InferflowLog"})," message includes:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"user_id"}),", ",(0,s.jsx)(n.code,{children:"tracking_id"}),", ",(0,s.jsx)(n.code,{children:"model_config_id"})]}),"\n",(0,s.jsx)(n.li,{children:"Entity IDs and feature values"}),"\n",(0,s.jsx)(n.li,{children:"Model scores and metadata"}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"configuration-hot-reload",children:"Configuration Hot-Reload"}),"\n",(0,s.jsxs)(n.p,{children:["Model configurations are stored in ",(0,s.jsx)(n.strong,{children:"etcd"})," and support ",(0,s.jsx)(n.strong,{children:"live updates without redeployment"}),":"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Inferflow registers watchers on etcd config paths"}),"\n",(0,s.jsxs)(n.li,{children:["On config change, watchers trigger ",(0,s.jsx)(n.code,{children:"ReloadModelConfigMapAndRegisterComponents"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"ConfigMap"})," is updated in memory"]}),"\n",(0,s.jsx)(n.li,{children:"Feature schemas are re-initialized"}),"\n",(0,s.jsx)(n.li,{children:"DAG components are re-registered"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This enables:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Adding new models in production without restarts"}),"\n",(0,s.jsx)(n.li,{children:"A/B testing with different model configurations"}),"\n",(0,s.jsx)(n.li,{children:"Instant rollback by reverting etcd config"}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"performance-characteristics",children:"Performance Characteristics"}),"\n",(0,s.jsx)(n.h3,{id:"concurrency-model",children:"Concurrency Model"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"DAG components at the same level execute concurrently in goroutines"}),"\n",(0,s.jsx)(n.li,{children:"Feature retrieval is parallelized across entity types"}),"\n",(0,s.jsx)(n.li,{children:"External gRPC calls use connection pooling"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"memory-efficiency",children:"Memory Efficiency"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Built in Go \u2014 significantly lower memory footprint than Java equivalents (~80% reduction)"}),"\n",(0,s.jsxs)(n.li,{children:["Object pooling for ",(0,s.jsx)(n.code,{children:"ComponentMatrix"})," and serialization buffers"]}),"\n",(0,s.jsx)(n.li,{children:"In-memory cache with zero-GC-overhead option (freecache)"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"serialization",children:"Serialization"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"gRPC with Proto3 for all external communication"}),"\n",(0,s.jsxs)(n.li,{children:["Binary feature encoding in the ",(0,s.jsx)(n.code,{children:"ComponentMatrix"})," for minimal overhead"]}),"\n",(0,s.jsx)(n.li,{children:"Configurable compression for Kafka logging"}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,s.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,s.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,s.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,s.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>o});var r=i(6540);const s={},t=r.createContext(s);function l(e){const n=r.useContext(t);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/0fff8dc8.7a470540.js b/docs/assets/js/0fff8dc8.fcba975a.js similarity index 98% rename from docs/assets/js/0fff8dc8.7a470540.js rename to docs/assets/js/0fff8dc8.fcba975a.js index 87386b52..2fb035eb 100644 --- a/docs/assets/js/0fff8dc8.7a470540.js +++ b/docs/assets/js/0fff8dc8.fcba975a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9596],{5958:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>r,toc:()=>o});const r=JSON.parse('{"id":"quick-start/v1.0.0/quick-start","title":"Quick Start","description":"Discord","source":"@site/docs/quick-start/v1.0.0/quick-start.md","sourceDirName":"quick-start/v1.0.0","slug":"/quick-start/v1.0.0/quick-start","permalink":"/BharatMLStack/quick-start/v1.0.0/quick-start","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/quick-start/v1.0.0/quick-start.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Quick Start","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Quick Start","permalink":"/BharatMLStack/category/quick-start"},"next":{"title":"Trufflebox UI","permalink":"/BharatMLStack/category/trufflebox-ui"}}');var i=s(4848),l=s(8453);const t={title:"Quick Start",sidebar_position:1},c="BharatML Stack Quick Start Guide",a={},o=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"System Components",id:"system-components",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"Starting the System",id:"starting-the-system",level:3},{value:"Testing Different Versions",id:"testing-different-versions",level:3},{value:"Stopping the System",id:"stopping-the-system",level:3},{value:"Accessing Services",id:"accessing-services",level:2},{value:"Frontend UI",id:"frontend-ui",level:3},{value:"API Endpoints",id:"api-endpoints",level:3},{value:"Database Access",id:"database-access",level:3},{value:"Feature Store API Examples",id:"feature-store-api-examples",level:2},{value:"gRPC API Commands",id:"grpc-api-commands",level:3},{value:"Sample Request Bodies",id:"sample-request-bodies",level:3},{value:"Key Points",id:"key-points",level:3},{value:"Response Format Differences",id:"response-format-differences",level:3},{value:"Managing Services",id:"managing-services",level:2},{value:"Viewing Logs",id:"viewing-logs",level:3},{value:"Service Management",id:"service-management",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"Common Issues",id:"common-issues",level:3},{value:"Service Dependencies",id:"service-dependencies",level:3},{value:"Development",id:"development",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"bharatml-stack-quick-start-guide",children:"BharatML Stack Quick Start Guide"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/Discord-Join%20Chat-7289da?style=flat&logo=discord&logoColor=white",alt:"Discord"})})}),"\n",(0,i.jsx)(n.p,{children:"A quick way to get the BharatML Stack Online Feature Store platform up and running locally for development and testing."}),"\n",(0,i.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Docker and Docker Compose"}),"\n",(0,i.jsx)(n.li,{children:"Go 1.22 or later"}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"nc"})," (netcat) command for connectivity checks"]}),"\n",(0,i.jsx)(n.li,{children:"Bash shell"}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"grpcurl"})," for testing gRPC API endpoints (install from ",(0,i.jsx)(n.a,{href:"https://github.com/fullstorydev/grpcurl",children:"https://github.com/fullstorydev/grpcurl"}),")"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"system-components",children:"System Components"}),"\n",(0,i.jsx)(n.p,{children:"BharatMLStack's Online Feature Store consists of several interconnected services:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Infrastructure Services:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"ScyllaDB"}),": NoSQL database for high-performance feature storage"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"MySQL"}),": Relational database for metadata and configuration"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Redis"}),": In-memory data store for caching"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"etcd"}),": Distributed key-value store for service coordination"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Application Services:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Horizon"}),": Backend API service (runs on port 8082)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Trufflebox UI"}),": Frontend web interface (runs on port 3000)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Online Feature Store gRPC API Server"}),": High-performance gRPC interface (runs on port 8089)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"etcd Workbench"}),": etcd management interface (runs on port 8081)"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"All services are orchestrated using Docker Compose with pre-built images from GitHub Container Registry (GHCR)."}),"\n",(0,i.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,i.jsx)(n.h3,{id:"starting-the-system",children:"Starting the System"}),"\n",(0,i.jsx)(n.p,{children:"Run the start script to set up your workspace and launch all services:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"./start.sh\n"})}),"\n",(0,i.jsx)(n.h3,{id:"testing-different-versions",children:"Testing Different Versions"}),"\n",(0,i.jsx)(n.p,{children:"You can easily test different versions of the application services by setting environment variables:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Test specific versions [Replace with actual versions]\nONFS_VERSION=v1.2.3 HORIZON_VERSION=v2.1.0 TRUFFLEBOX_VERSION=v1.0.5 ./start.sh\n\n# Or set them in your workspace and run docker-compose directly\ncd workspace\nONFS_VERSION=main docker-compose up -d onfs-api-server\n"})}),"\n",(0,i.jsx)(n.p,{children:"Available version formats:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"latest"})," (default) - Latest stable release"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"main"})," - Latest development build"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"v1.2.3"})," - Specific version tag"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"sha-abcd1234"})," - Specific commit SHA"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"This will:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Check for Go installation (1.22+ required)"}),"\n",(0,i.jsx)(n.li,{children:"Create a workspace directory with configuration files"}),"\n",(0,i.jsxs)(n.li,{children:["Pull and start all services using ",(0,i.jsx)(n.code,{children:"docker-compose up -d"})]}),"\n",(0,i.jsx)(n.li,{children:"Wait for services to become healthy"}),"\n",(0,i.jsx)(n.li,{children:"Initialize databases with required schemas"}),"\n",(0,i.jsx)(n.li,{children:"Display access information and helpful commands"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Once complete, you can access:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Trufflebox UI"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:3000",children:"http://localhost:3000"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Horizon API"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8082",children:"http://localhost:8082"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Online Feature Store gRPC API"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8089",children:"http://localhost:8089"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"etcd Workbench"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8081",children:"http://localhost:8081"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"stopping-the-system",children:"Stopping the System"}),"\n",(0,i.jsx)(n.p,{children:"To stop all services:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"./stop.sh\n"})}),"\n",(0,i.jsx)(n.p,{children:"To stop and completely purge all containers, volumes, and workspace:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"./stop.sh --purge\n"})}),"\n",(0,i.jsx)(n.h2,{id:"accessing-services",children:"Accessing Services"}),"\n",(0,i.jsx)(n.h3,{id:"frontend-ui",children:"Frontend UI"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"URL"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:3000",children:"http://localhost:3000"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Default admin credentials"}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Email: ",(0,i.jsx)(n.code,{children:"admin@admin.com"})]}),"\n",(0,i.jsxs)(n.li,{children:["Password: ",(0,i.jsx)(n.code,{children:"admin"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"api-endpoints",children:"API Endpoints"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Horizon API"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8082",children:"http://localhost:8082"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Health check: ",(0,i.jsx)(n.a,{href:"http://localhost:8082/health",children:"http://localhost:8082/health"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"ONFS gRPC API"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8089",children:"http://localhost:8089"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Health check: ",(0,i.jsx)(n.a,{href:"http://localhost:8089/health/self",children:"http://localhost:8089/health/self"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"database-access",children:"Database Access"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"MySQL"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Host: localhost"}),"\n",(0,i.jsx)(n.li,{children:"Port: 3306"}),"\n",(0,i.jsx)(n.li,{children:"Username: root"}),"\n",(0,i.jsx)(n.li,{children:"Password: root"}),"\n",(0,i.jsx)(n.li,{children:"Database: testdb"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"ScyllaDB"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Host: localhost"}),"\n",(0,i.jsx)(n.li,{children:"Port: 9042"}),"\n",(0,i.jsx)(n.li,{children:"Keyspace: onfs"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Redis"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Host: localhost"}),"\n",(0,i.jsx)(n.li,{children:"Port: 6379"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"etcd"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Endpoint: ",(0,i.jsx)(n.a,{href:"http://localhost:2379",children:"http://localhost:2379"})]}),"\n",(0,i.jsxs)(n.li,{children:["Workbench: ",(0,i.jsx)(n.a,{href:"http://localhost:8081",children:"http://localhost:8081"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"feature-store-api-examples",children:"Feature Store API Examples"}),"\n",(0,i.jsx)(n.h3,{id:"grpc-api-commands",children:"gRPC API Commands"}),"\n",(0,i.jsxs)(n.p,{children:["Use the following ",(0,i.jsx)(n.code,{children:"grpcurl"})," commands to interact with the Online Feature Store gRPC API:"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Persist Features:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'grpcurl -plaintext -H "online-feature-store-caller-id: " -H "online-feature-store-auth-token: " -d \'\' localhost:8089 persist.FeatureService/PersistFeatures\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Retrieve Features (Decoded):"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'grpcurl -plaintext -H "online-feature-store-caller-id: " -H "online-feature-store-auth-token: " -d \'\' localhost:8089 retrieve.FeatureService/RetrieveDecodedResult\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Retrieve Features (Binary):"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'grpcurl -plaintext -H "online-feature-store-caller-id: " -H "online-feature-store-auth-token: " -d \'\' localhost:8089 retrieve.FeatureService/RetrieveFeatures\n'})}),"\n",(0,i.jsx)(n.h3,{id:"sample-request-bodies",children:"Sample Request Bodies"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Single Feature Group Persist:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "data": [{\n "key_values": ["10"],\n "feature_values": [{\n "values": {"fp32_values": [123.45]}\n }]\n }],\n "entity_label": "catalog",\n "feature_group_schema": [{\n "label": "int_fg",\n "feature_labels": ["id"]\n }],\n "keys_schema": ["catalog_id"]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Single Feature Group Retrieve:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "entity_label": "catalog",\n "feature_groups": [{\n "label": "int_fg",\n "feature_labels": ["id"]\n }],\n "keys_schema": ["catalog_id"],\n "keys": [{"cols": ["10"]}]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Multiple Feature Groups Persist:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "data": [\n {\n "key_values": ["1"],\n "feature_values": [\n {"values": {"fp32_values": [28.5]}},\n {"values": {"string_values": ["Bharat"]}}\n ]\n },\n {\n "key_values": ["2"],\n "feature_values": [\n {"values": {"fp32_values": [32.0]}},\n {"values": {"string_values": ["India"]}}\n ]\n }\n ],\n "entity_label": "catalog",\n "feature_group_schema": [\n {"label": "int_fg", "feature_labels": ["id"]},\n {"label": "string_fg", "feature_labels": ["name"]}\n ],\n "keys_schema": ["catalog_id"]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Multiple Feature Groups Retrieve:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "entity_label": "catalog",\n "feature_groups": [\n {"label": "int_fg", "feature_labels": ["id"]},\n {"label": "string_fg", "feature_labels": ["name"]}\n ],\n "keys_schema": ["catalog_id"],\n "keys": [\n {"cols": ["1"]},\n {"cols": ["2"]}\n ]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Vector Feature Group Persist:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "data": [{\n "key_values": ["123"],\n "feature_values": [{\n "values": {\n "vector": [{\n "values": {"fp32_values": [1.0, 2.0, 3.0, 4.0]}\n }]\n }\n }]\n }],\n "entity_label": "catalog",\n "feature_group_schema": [{\n "label": "vector_fg",\n "feature_labels": ["embedding"]\n }],\n "keys_schema": ["catalog_id"]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Vector Feature Group Retrieve:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "entity_label": "catalog",\n "feature_groups": [{\n "label": "vector_fg",\n "feature_labels": ["embedding"]\n }],\n "keys_schema": ["catalog_id"],\n "keys": [{"cols": ["123"]}]\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"key-points",children:"Key Points"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Only one type per feature value block:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"feature_values"})," is a list, and each item in the list has only one value type populated"]}),"\n",(0,i.jsxs)(n.li,{children:["For example: one item has only ",(0,i.jsx)(n.code,{children:"fp32_values"}),", another has only ",(0,i.jsx)(n.code,{children:"int64_values"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Field Types:"}),"\nThe following value types are supported:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"fp32_values"}),": ",(0,i.jsx)(n.code,{children:"float32[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"fp64_values"}),": ",(0,i.jsx)(n.code,{children:"float64[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"int32_values"}),": ",(0,i.jsx)(n.code,{children:"int32[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"int64_values"}),": ",(0,i.jsx)(n.code,{children:"string[]"})," (because JSON doesn't support 64-bit ints directly)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"uint32_values"}),": ",(0,i.jsx)(n.code,{children:"uint32[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"uint64_values"}),": ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"string_values"}),": ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"bool_values"}),": ",(0,i.jsx)(n.code,{children:"bool[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"vector"}),": list of objects with nested values (used for embedded features)"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"response-format-differences",children:"Response Format Differences"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Retrieve Features (Binary)"}),": Returns data in binary format for optimal performance and reduced network overhead"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Retrieve Features (Decoded)"}),": Returns data in human-readable string format for easier debugging and development purposes"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"managing-services",children:"Managing Services"}),"\n",(0,i.jsx)(n.h3,{id:"viewing-logs",children:"Viewing Logs"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# View logs for all services\ncd workspace && docker-compose logs -f\n\n# View logs for specific services\ncd workspace && docker-compose logs -f horizon\ncd workspace && docker-compose logs -f trufflebox-ui\ncd workspace && docker-compose logs -f onfs-api-server\n"})}),"\n",(0,i.jsx)(n.h3,{id:"service-management",children:"Service Management"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Restart a specific service\ncd workspace && docker-compose restart horizon\n\n# Stop all services\ncd workspace && docker-compose down\n\n# Start services again\ncd workspace && docker-compose up -d\n\n# Check service status\ncd workspace && docker-compose ps\n"})}),"\n",(0,i.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,i.jsx)(n.h3,{id:"common-issues",children:"Common Issues"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Port conflicts"}),": Ensure ports 3000, 8081, 8082, 8089, 9042, 3306, 6379, and 2379 are not in use by other applications."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Docker network issues"}),": If containers can't communicate, try recreating:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docker network rm onfs-network\ndocker network create onfs-network\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Service health checks failing"}),": Check if all infrastructure services (databases) are running:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd workspace && docker-compose ps\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Image pull issues"}),": Ensure you have access to GitHub Container Registry:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docker login ghcr.io\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/tzfun/etcd-workbench/blob/master/README.md",children:"How to use Etcd Workbench ?"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"service-dependencies",children:"Service Dependencies"}),"\n",(0,i.jsx)(n.p,{children:"Services start in the following order:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Infrastructure services (ScyllaDB, MySQL, Redis, etcd)"}),"\n",(0,i.jsx)(n.li,{children:"Online Feature Store gRPC API Server"}),"\n",(0,i.jsx)(n.li,{children:"Horizon (depends on databases + ONFS API)"}),"\n",(0,i.jsx)(n.li,{children:"Trufflebox UI (depends on Horizon)"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"If a service fails to start, check its dependencies are healthy first."}),"\n",(0,i.jsx)(n.h2,{id:"development",children:"Development"}),"\n",(0,i.jsx)(n.p,{children:"The workspace directory contains all runtime configuration:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"workspace/docker-compose.yml"})," - Complete service orchestration"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"workspace/check_db_and_init.sh"})," - Database initialization script"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"You can modify environment variables in the docker-compose.yml file and restart services."}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcac ",(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>c});var r=s(6540);const i={},l=r.createContext(i);function t(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9596],{5958:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>r,toc:()=>o});const r=JSON.parse('{"id":"quick-start/v1.0.0/quick-start","title":"Quick Start","description":"Discord","source":"@site/docs/quick-start/v1.0.0/quick-start.md","sourceDirName":"quick-start/v1.0.0","slug":"/quick-start/v1.0.0/quick-start","permalink":"/BharatMLStack/quick-start/v1.0.0/quick-start","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/quick-start/v1.0.0/quick-start.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Quick Start","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Quick Start","permalink":"/BharatMLStack/category/quick-start"},"next":{"title":"Trufflebox UI","permalink":"/BharatMLStack/category/trufflebox-ui"}}');var i=s(4848),l=s(8453);const t={title:"Quick Start",sidebar_position:1},c="BharatML Stack Quick Start Guide",a={},o=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"System Components",id:"system-components",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"Starting the System",id:"starting-the-system",level:3},{value:"Testing Different Versions",id:"testing-different-versions",level:3},{value:"Stopping the System",id:"stopping-the-system",level:3},{value:"Accessing Services",id:"accessing-services",level:2},{value:"Frontend UI",id:"frontend-ui",level:3},{value:"API Endpoints",id:"api-endpoints",level:3},{value:"Database Access",id:"database-access",level:3},{value:"Feature Store API Examples",id:"feature-store-api-examples",level:2},{value:"gRPC API Commands",id:"grpc-api-commands",level:3},{value:"Sample Request Bodies",id:"sample-request-bodies",level:3},{value:"Key Points",id:"key-points",level:3},{value:"Response Format Differences",id:"response-format-differences",level:3},{value:"Managing Services",id:"managing-services",level:2},{value:"Viewing Logs",id:"viewing-logs",level:3},{value:"Service Management",id:"service-management",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"Common Issues",id:"common-issues",level:3},{value:"Service Dependencies",id:"service-dependencies",level:3},{value:"Development",id:"development",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"bharatml-stack-quick-start-guide",children:"BharatML Stack Quick Start Guide"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/Discord-Join%20Chat-7289da?style=flat&logo=discord&logoColor=white",alt:"Discord"})})}),"\n",(0,i.jsx)(n.p,{children:"A quick way to get the BharatML Stack Online Feature Store platform up and running locally for development and testing."}),"\n",(0,i.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Docker and Docker Compose"}),"\n",(0,i.jsx)(n.li,{children:"Go 1.22 or later"}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"nc"})," (netcat) command for connectivity checks"]}),"\n",(0,i.jsx)(n.li,{children:"Bash shell"}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"grpcurl"})," for testing gRPC API endpoints (install from ",(0,i.jsx)(n.a,{href:"https://github.com/fullstorydev/grpcurl",children:"https://github.com/fullstorydev/grpcurl"}),")"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"system-components",children:"System Components"}),"\n",(0,i.jsx)(n.p,{children:"BharatMLStack's Online Feature Store consists of several interconnected services:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Infrastructure Services:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"ScyllaDB"}),": NoSQL database for high-performance feature storage"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"MySQL"}),": Relational database for metadata and configuration"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Redis"}),": In-memory data store for caching"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"etcd"}),": Distributed key-value store for service coordination"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Application Services:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Horizon"}),": Backend API service (runs on port 8082)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Trufflebox UI"}),": Frontend web interface (runs on port 3000)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Online Feature Store gRPC API Server"}),": High-performance gRPC interface (runs on port 8089)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"etcd Workbench"}),": etcd management interface (runs on port 8081)"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"All services are orchestrated using Docker Compose with pre-built images from GitHub Container Registry (GHCR)."}),"\n",(0,i.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,i.jsx)(n.h3,{id:"starting-the-system",children:"Starting the System"}),"\n",(0,i.jsx)(n.p,{children:"Run the start script to set up your workspace and launch all services:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"./start.sh\n"})}),"\n",(0,i.jsx)(n.h3,{id:"testing-different-versions",children:"Testing Different Versions"}),"\n",(0,i.jsx)(n.p,{children:"You can easily test different versions of the application services by setting environment variables:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Test specific versions [Replace with actual versions]\nONFS_VERSION=v1.2.3 HORIZON_VERSION=v2.1.0 TRUFFLEBOX_VERSION=v1.0.5 ./start.sh\n\n# Or set them in your workspace and run docker-compose directly\ncd workspace\nONFS_VERSION=main docker-compose up -d onfs-api-server\n"})}),"\n",(0,i.jsx)(n.p,{children:"Available version formats:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"latest"})," (default) - Latest stable release"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"main"})," - Latest development build"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"v1.2.3"})," - Specific version tag"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"sha-abcd1234"})," - Specific commit SHA"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"This will:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Check for Go installation (1.22+ required)"}),"\n",(0,i.jsx)(n.li,{children:"Create a workspace directory with configuration files"}),"\n",(0,i.jsxs)(n.li,{children:["Pull and start all services using ",(0,i.jsx)(n.code,{children:"docker-compose up -d"})]}),"\n",(0,i.jsx)(n.li,{children:"Wait for services to become healthy"}),"\n",(0,i.jsx)(n.li,{children:"Initialize databases with required schemas"}),"\n",(0,i.jsx)(n.li,{children:"Display access information and helpful commands"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Once complete, you can access:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Trufflebox UI"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:3000",children:"http://localhost:3000"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Horizon API"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8082",children:"http://localhost:8082"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Online Feature Store gRPC API"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8089",children:"http://localhost:8089"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"etcd Workbench"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8081",children:"http://localhost:8081"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"stopping-the-system",children:"Stopping the System"}),"\n",(0,i.jsx)(n.p,{children:"To stop all services:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"./stop.sh\n"})}),"\n",(0,i.jsx)(n.p,{children:"To stop and completely purge all containers, volumes, and workspace:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"./stop.sh --purge\n"})}),"\n",(0,i.jsx)(n.h2,{id:"accessing-services",children:"Accessing Services"}),"\n",(0,i.jsx)(n.h3,{id:"frontend-ui",children:"Frontend UI"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"URL"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:3000",children:"http://localhost:3000"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Default admin credentials"}),":","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Email: ",(0,i.jsx)(n.code,{children:"admin@admin.com"})]}),"\n",(0,i.jsxs)(n.li,{children:["Password: ",(0,i.jsx)(n.code,{children:"admin"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"api-endpoints",children:"API Endpoints"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Horizon API"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8082",children:"http://localhost:8082"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Health check: ",(0,i.jsx)(n.a,{href:"http://localhost:8082/health",children:"http://localhost:8082/health"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"ONFS gRPC API"}),": ",(0,i.jsx)(n.a,{href:"http://localhost:8089",children:"http://localhost:8089"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Health check: ",(0,i.jsx)(n.a,{href:"http://localhost:8089/health/self",children:"http://localhost:8089/health/self"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"database-access",children:"Database Access"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"MySQL"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Host: localhost"}),"\n",(0,i.jsx)(n.li,{children:"Port: 3306"}),"\n",(0,i.jsx)(n.li,{children:"Username: root"}),"\n",(0,i.jsx)(n.li,{children:"Password: root"}),"\n",(0,i.jsx)(n.li,{children:"Database: testdb"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"ScyllaDB"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Host: localhost"}),"\n",(0,i.jsx)(n.li,{children:"Port: 9042"}),"\n",(0,i.jsx)(n.li,{children:"Keyspace: onfs"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Redis"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Host: localhost"}),"\n",(0,i.jsx)(n.li,{children:"Port: 6379"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"etcd"}),":"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Endpoint: ",(0,i.jsx)(n.a,{href:"http://localhost:2379",children:"http://localhost:2379"})]}),"\n",(0,i.jsxs)(n.li,{children:["Workbench: ",(0,i.jsx)(n.a,{href:"http://localhost:8081",children:"http://localhost:8081"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"feature-store-api-examples",children:"Feature Store API Examples"}),"\n",(0,i.jsx)(n.h3,{id:"grpc-api-commands",children:"gRPC API Commands"}),"\n",(0,i.jsxs)(n.p,{children:["Use the following ",(0,i.jsx)(n.code,{children:"grpcurl"})," commands to interact with the Online Feature Store gRPC API:"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Persist Features:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'grpcurl -plaintext -H "online-feature-store-caller-id: " -H "online-feature-store-auth-token: " -d \'\' localhost:8089 persist.FeatureService/PersistFeatures\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Retrieve Features (Decoded):"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'grpcurl -plaintext -H "online-feature-store-caller-id: " -H "online-feature-store-auth-token: " -d \'\' localhost:8089 retrieve.FeatureService/RetrieveDecodedResult\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Retrieve Features (Binary):"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'grpcurl -plaintext -H "online-feature-store-caller-id: " -H "online-feature-store-auth-token: " -d \'\' localhost:8089 retrieve.FeatureService/RetrieveFeatures\n'})}),"\n",(0,i.jsx)(n.h3,{id:"sample-request-bodies",children:"Sample Request Bodies"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Single Feature Group Persist:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "data": [{\n "key_values": ["10"],\n "feature_values": [{\n "values": {"fp32_values": [123.45]}\n }]\n }],\n "entity_label": "catalog",\n "feature_group_schema": [{\n "label": "int_fg",\n "feature_labels": ["id"]\n }],\n "keys_schema": ["catalog_id"]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Single Feature Group Retrieve:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "entity_label": "catalog",\n "feature_groups": [{\n "label": "int_fg",\n "feature_labels": ["id"]\n }],\n "keys_schema": ["catalog_id"],\n "keys": [{"cols": ["10"]}]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Multiple Feature Groups Persist:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "data": [\n {\n "key_values": ["1"],\n "feature_values": [\n {"values": {"fp32_values": [28.5]}},\n {"values": {"string_values": ["Bharat"]}}\n ]\n },\n {\n "key_values": ["2"],\n "feature_values": [\n {"values": {"fp32_values": [32.0]}},\n {"values": {"string_values": ["India"]}}\n ]\n }\n ],\n "entity_label": "catalog",\n "feature_group_schema": [\n {"label": "int_fg", "feature_labels": ["id"]},\n {"label": "string_fg", "feature_labels": ["name"]}\n ],\n "keys_schema": ["catalog_id"]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Multiple Feature Groups Retrieve:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "entity_label": "catalog",\n "feature_groups": [\n {"label": "int_fg", "feature_labels": ["id"]},\n {"label": "string_fg", "feature_labels": ["name"]}\n ],\n "keys_schema": ["catalog_id"],\n "keys": [\n {"cols": ["1"]},\n {"cols": ["2"]}\n ]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Vector Feature Group Persist:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "data": [{\n "key_values": ["123"],\n "feature_values": [{\n "values": {\n "vector": [{\n "values": {"fp32_values": [1.0, 2.0, 3.0, 4.0]}\n }]\n }\n }]\n }],\n "entity_label": "catalog",\n "feature_group_schema": [{\n "label": "vector_fg",\n "feature_labels": ["embedding"]\n }],\n "keys_schema": ["catalog_id"]\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Vector Feature Group Retrieve:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "entity_label": "catalog",\n "feature_groups": [{\n "label": "vector_fg",\n "feature_labels": ["embedding"]\n }],\n "keys_schema": ["catalog_id"],\n "keys": [{"cols": ["123"]}]\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"key-points",children:"Key Points"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Only one type per feature value block:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"feature_values"})," is a list, and each item in the list has only one value type populated"]}),"\n",(0,i.jsxs)(n.li,{children:["For example: one item has only ",(0,i.jsx)(n.code,{children:"fp32_values"}),", another has only ",(0,i.jsx)(n.code,{children:"int64_values"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Field Types:"}),"\nThe following value types are supported:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"fp32_values"}),": ",(0,i.jsx)(n.code,{children:"float32[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"fp64_values"}),": ",(0,i.jsx)(n.code,{children:"float64[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"int32_values"}),": ",(0,i.jsx)(n.code,{children:"int32[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"int64_values"}),": ",(0,i.jsx)(n.code,{children:"string[]"})," (because JSON doesn't support 64-bit ints directly)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"uint32_values"}),": ",(0,i.jsx)(n.code,{children:"uint32[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"uint64_values"}),": ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"string_values"}),": ",(0,i.jsx)(n.code,{children:"string[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"bool_values"}),": ",(0,i.jsx)(n.code,{children:"bool[]"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"vector"}),": list of objects with nested values (used for embedded features)"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"response-format-differences",children:"Response Format Differences"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Retrieve Features (Binary)"}),": Returns data in binary format for optimal performance and reduced network overhead"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Retrieve Features (Decoded)"}),": Returns data in human-readable string format for easier debugging and development purposes"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"managing-services",children:"Managing Services"}),"\n",(0,i.jsx)(n.h3,{id:"viewing-logs",children:"Viewing Logs"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# View logs for all services\ncd workspace && docker-compose logs -f\n\n# View logs for specific services\ncd workspace && docker-compose logs -f horizon\ncd workspace && docker-compose logs -f trufflebox-ui\ncd workspace && docker-compose logs -f onfs-api-server\n"})}),"\n",(0,i.jsx)(n.h3,{id:"service-management",children:"Service Management"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Restart a specific service\ncd workspace && docker-compose restart horizon\n\n# Stop all services\ncd workspace && docker-compose down\n\n# Start services again\ncd workspace && docker-compose up -d\n\n# Check service status\ncd workspace && docker-compose ps\n"})}),"\n",(0,i.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,i.jsx)(n.h3,{id:"common-issues",children:"Common Issues"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Port conflicts"}),": Ensure ports 3000, 8081, 8082, 8089, 9042, 3306, 6379, and 2379 are not in use by other applications."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Docker network issues"}),": If containers can't communicate, try recreating:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docker network rm onfs-network\ndocker network create onfs-network\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Service health checks failing"}),": Check if all infrastructure services (databases) are running:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"cd workspace && docker-compose ps\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Image pull issues"}),": Ensure you have access to GitHub Container Registry:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docker login ghcr.io\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://github.com/tzfun/etcd-workbench/blob/master/README.md",children:"How to use Etcd Workbench ?"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"service-dependencies",children:"Service Dependencies"}),"\n",(0,i.jsx)(n.p,{children:"Services start in the following order:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Infrastructure services (ScyllaDB, MySQL, Redis, etcd)"}),"\n",(0,i.jsx)(n.li,{children:"Online Feature Store gRPC API Server"}),"\n",(0,i.jsx)(n.li,{children:"Horizon (depends on databases + ONFS API)"}),"\n",(0,i.jsx)(n.li,{children:"Trufflebox UI (depends on Horizon)"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"If a service fails to start, check its dependencies are healthy first."}),"\n",(0,i.jsx)(n.h2,{id:"development",children:"Development"}),"\n",(0,i.jsx)(n.p,{children:"The workspace directory contains all runtime configuration:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"workspace/docker-compose.yml"})," - Complete service orchestration"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"workspace/check_db_and_init.sh"})," - Database initialization script"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"You can modify environment variables in the docker-compose.yml file and restart services."}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcac ",(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>c});var r=s(6540);const i={},l=r.createContext(i);function t(e){const n=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/14064408.be0f96be.js b/docs/assets/js/14064408.74c23df4.js similarity index 75% rename from docs/assets/js/14064408.be0f96be.js rename to docs/assets/js/14064408.74c23df4.js index 1b02768a..d9f055a3 100644 --- a/docs/assets/js/14064408.be0f96be.js +++ b/docs/assets/js/14064408.74c23df4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4582],{9416:t=>{t.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Quick Start","description":"Quick Start guide for BharatML Stack. Get up and running quickly with step-by-step instructions, sample data, and Docker Compose setup for local development and testing.","slug":"/category/quick-start","permalink":"/BharatMLStack/category/quick-start","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Release Notes","permalink":"/BharatMLStack/online-feature-store/v1.0.0/release-notes"},"next":{"title":"Quick Start","permalink":"/BharatMLStack/quick-start/v1.0.0/quick-start"}}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4582],{9416:t=>{t.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Quick Start","description":"Quick Start guide for BharatML Stack. Get up and running quickly with step-by-step instructions, sample data, and Docker Compose setup for local development and testing.","slug":"/category/quick-start","permalink":"/BharatMLStack/category/quick-start","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Release Notes","permalink":"/BharatMLStack/inferflow/v1.0.0/release-notes"},"next":{"title":"Quick Start","permalink":"/BharatMLStack/quick-start/v1.0.0/quick-start"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/14eb3368.398ac934.js b/docs/assets/js/14eb3368.398ac934.js new file mode 100644 index 00000000..786e75d7 --- /dev/null +++ b/docs/assets/js/14eb3368.398ac934.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6969],{477:(e,s,n)=>{n.r(s),n.d(s,{default:()=>w});n(6540);var t=n(5500),r=n(6972),a=n(6025),i=n(4164),c=n(8774),l=n(5846),o=n(6654),d=n(1312),u=n(1107);const m={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var h=n(4848);function b({className:e,href:s,children:n}){return(0,h.jsx)(c.A,{href:s,className:(0,i.A)("card padding--lg",m.cardContainer,e),children:n})}function x({className:e,href:s,icon:n,title:t,description:r}){return(0,h.jsxs)(b,{href:s,className:e,children:[(0,h.jsxs)(u.A,{as:"h2",className:(0,i.A)("text--truncate",m.cardTitle),title:t,children:[n," ",t]}),r&&(0,h.jsx)("p",{className:(0,i.A)("text--truncate",m.cardDescription),title:r,children:r})]})}function p({item:e}){const s=(0,r.Nr)(e),n=function(){const{selectMessage:e}=(0,l.W)();return s=>e(s,(0,d.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:s}))}();return s?(0,h.jsx)(x,{className:e.className,href:s,icon:"\ud83d\uddc3\ufe0f",title:e.label,description:e.description??n(e.items.length)}):null}function v({item:e}){const s=(0,o.A)(e.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",n=(0,r.cC)(e.docId??void 0);return(0,h.jsx)(x,{className:e.className,href:e.href,icon:s,title:e.label,description:e.description??n?.description})}function g({item:e}){switch(e.type){case"link":return(0,h.jsx)(v,{item:e});case"category":return(0,h.jsx)(p,{item:e});default:throw new Error(`unknown item type ${JSON.stringify(e)}`)}}const f={docCardListItem:"docCardListItem_W1sv"};function j({className:e}){const s=(0,r.a4)();return(0,h.jsx)(N,{items:s,className:e})}function A({item:e}){return(0,h.jsx)("article",{className:(0,i.A)(f.docCardListItem,"col col--6"),children:(0,h.jsx)(g,{item:e})})}function N(e){const{items:s,className:n}=e;if(!s)return(0,h.jsx)(j,{...e});const t=(0,r.d1)(s);return(0,h.jsx)("section",{className:(0,i.A)("row",n),children:t.map((e,s)=>(0,h.jsx)(A,{item:e},s))})}var L=n(7719),_=n(1878),T=n(4267),k=n(594);const y={generatedIndexPage:"generatedIndexPage_vN6x",title:"title_kItE"};function I({categoryGeneratedIndex:e}){return(0,h.jsx)(t.be,{title:e.title,description:e.description,keywords:e.keywords,image:(0,a.Ay)(e.image)})}function C({categoryGeneratedIndex:e}){const s=(0,r.$S)();return(0,h.jsxs)("div",{className:y.generatedIndexPage,children:[(0,h.jsx)(_.A,{}),(0,h.jsx)(k.A,{}),(0,h.jsx)(T.A,{}),(0,h.jsxs)("header",{children:[(0,h.jsx)(u.A,{as:"h1",className:y.title,children:e.title}),e.description&&(0,h.jsx)("p",{children:e.description})]}),(0,h.jsx)("article",{className:"margin-top--lg",children:(0,h.jsx)(N,{items:s.items,className:y.list})}),(0,h.jsx)("footer",{className:"margin-top--md",children:(0,h.jsx)(L.A,{previous:e.navigation.previous,next:e.navigation.next})})]})}function w(e){return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(I,{...e}),(0,h.jsx)(C,{...e})]})}},594:(e,s,n)=>{n.d(s,{A:()=>j});n(6540);var t=n(4164),r=n(7559),a=n(6972),i=n(9169),c=n(8774),l=n(1312),o=n(6025),d=n(4848);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,o.Ay)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(c.A,{"aria-label":(0,l.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}var b=n(5260),x=n(4586);function p(e){const s=function({breadcrumbs:e}){const{siteConfig:s}=(0,x.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,n)=>({"@type":"ListItem",position:n+1,name:e.label,item:`${s.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,d.jsx)(b.A,{children:(0,d.jsx)("script",{type:"application/ld+json",children:JSON.stringify(s)})})}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g({children:e,href:s,isLast:n}){const t="breadcrumbs__link";return n?(0,d.jsx)("span",{className:t,children:e}):s?(0,d.jsx)(c.A,{className:t,href:s,children:(0,d.jsx)("span",{children:e})}):(0,d.jsx)("span",{className:t,children:e})}function f({children:e,active:s}){return(0,d.jsx)("li",{className:(0,t.A)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:e})}function j(){const e=(0,a.OF)(),s=(0,i.Dt)();return e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(p,{breadcrumbs:e}),(0,d.jsx)("nav",{className:(0,t.A)(r.G.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,l.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",children:[s&&(0,d.jsx)(h,{}),e.map((s,n)=>{const t=n===e.length-1,r="category"===s.type&&s.linkUnlisted?void 0:s.href;return(0,d.jsx)(f,{active:t,children:(0,d.jsx)(g,{href:r,isLast:t,children:s.label})},n)})]})})]}):null}},1878:(e,s,n)=>{n.d(s,{A:()=>p});n(6540);var t=n(4164),r=n(4586),a=n(8774),i=n(1312),c=n(4070),l=n(7559),o=n(3886),d=n(3025),u=n(4848);const m={unreleased:function({siteTitle:e,versionMetadata:s}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:s}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const s=m[e.versionMetadata.banner];return(0,u.jsx)(s,{...e})}function b({versionLabel:e,to:s,onClick:n}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(a.A,{to:s,onClick:n,children:(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function x({className:e,versionMetadata:s}){const{siteConfig:{title:n}}=(0,r.A)(),{pluginId:a}=(0,c.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,o.g1)(a),{latestDocSuggestion:d,latestVersionSuggestion:m}=(0,c.HW)(a),x=d??(p=m).docs.find(e=>e.id===p.mainDocId);var p;return(0,u.jsxs)("div",{className:(0,t.A)(e,l.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:n,versionMetadata:s})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(b,{versionLabel:m.label,to:x.path,onClick:()=>i(m.name)})})]})}function p({className:e}){const s=(0,d.r)();return s.banner?(0,u.jsx)(x,{className:e,versionMetadata:s}):null}},4267:(e,s,n)=>{n.d(s,{A:()=>l});n(6540);var t=n(4164),r=n(1312),a=n(7559),i=n(3025),c=n(4848);function l({className:e}){const s=(0,i.r)();return s.badge?(0,c.jsx)("span",{className:(0,t.A)(e,a.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,c.jsx)(r.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},5846:(e,s,n)=>{n.d(s,{W:()=>o});var t=n(6540),r=n(4586);const a=["zero","one","two","few","many","other"];function i(e){return a.filter(s=>e.includes(s))}const c={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function l(){const{i18n:{currentLocale:e}}=(0,r.A)();return(0,t.useMemo)(()=>{try{return function(e){const s=new Intl.PluralRules(e);return{locale:e,pluralForms:i(s.resolvedOptions().pluralCategories),select:e=>s.select(e)}}(e)}catch(s){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${s.message}\n`),c}},[e])}function o(){const e=l();return{selectMessage:(s,n)=>function(e,s,n){const t=e.split("|");if(1===t.length)return t[0];t.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 ${t.length}: ${e}`);const r=n.select(s),a=n.pluralForms.indexOf(r);return t[Math.min(a,t.length-1)]}(n,s,e)}}},7719:(e,s,n)=>{n.d(s,{A:()=>c});n(6540);var t=n(4164),r=n(1312),a=n(9022),i=n(4848);function c(e){const{className:s,previous:n,next:c}=e;return(0,i.jsxs)("nav",{className:(0,t.A)(s,"pagination-nav"),"aria-label":(0,r.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,i.jsx)(a.A,{...n,subLabel:(0,i.jsx)(r.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),c&&(0,i.jsx)(a.A,{...c,subLabel:(0,i.jsx)(r.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},9022:(e,s,n)=>{n.d(s,{A:()=>i});n(6540);var t=n(4164),r=n(8774),a=n(4848);function i(e){const{permalink:s,title:n,subLabel:i,isNext:c}=e;return(0,a.jsxs)(r.A,{className:(0,t.A)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:s,children:[i&&(0,a.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,a.jsx)("div",{className:"pagination-nav__label",children:n})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/14eb3368.e9006523.js b/docs/assets/js/14eb3368.e9006523.js deleted file mode 100644 index c72af022..00000000 --- a/docs/assets/js/14eb3368.e9006523.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6969],{477:(e,s,n)=>{n.r(s),n.d(s,{default:()=>w});n(6540);var t=n(5500),r=n(6972),a=n(6025),i=n(4164),c=n(8774),l=n(5846),o=n(6654),d=n(1312),u=n(1107);const m={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var h=n(4848);function b({className:e,href:s,children:n}){return(0,h.jsx)(c.A,{href:s,className:(0,i.A)("card padding--lg",m.cardContainer,e),children:n})}function x({className:e,href:s,icon:n,title:t,description:r}){return(0,h.jsxs)(b,{href:s,className:e,children:[(0,h.jsxs)(u.A,{as:"h2",className:(0,i.A)("text--truncate",m.cardTitle),title:t,children:[n," ",t]}),r&&(0,h.jsx)("p",{className:(0,i.A)("text--truncate",m.cardDescription),title:r,children:r})]})}function p({item:e}){const s=(0,r.Nr)(e),n=function(){const{selectMessage:e}=(0,l.W)();return s=>e(s,(0,d.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:s}))}();return s?(0,h.jsx)(x,{className:e.className,href:s,icon:"\ud83d\uddc3\ufe0f",title:e.label,description:e.description??n(e.items.length)}):null}function v({item:e}){const s=(0,o.A)(e.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",n=(0,r.cC)(e.docId??void 0);return(0,h.jsx)(x,{className:e.className,href:e.href,icon:s,title:e.label,description:e.description??n?.description})}function g({item:e}){switch(e.type){case"link":return(0,h.jsx)(v,{item:e});case"category":return(0,h.jsx)(p,{item:e});default:throw new Error(`unknown item type ${JSON.stringify(e)}`)}}const f={docCardListItem:"docCardListItem_W1sv"};function j({className:e}){const s=(0,r.a4)();return(0,h.jsx)(N,{items:s,className:e})}function A({item:e}){return(0,h.jsx)("article",{className:(0,i.A)(f.docCardListItem,"col col--6"),children:(0,h.jsx)(g,{item:e})})}function N(e){const{items:s,className:n}=e;if(!s)return(0,h.jsx)(j,{...e});const t=(0,r.d1)(s);return(0,h.jsx)("section",{className:(0,i.A)("row",n),children:t.map(((e,s)=>(0,h.jsx)(A,{item:e},s)))})}var L=n(7719),_=n(1878),T=n(4267),k=n(594);const y={generatedIndexPage:"generatedIndexPage_vN6x",title:"title_kItE"};function I({categoryGeneratedIndex:e}){return(0,h.jsx)(t.be,{title:e.title,description:e.description,keywords:e.keywords,image:(0,a.Ay)(e.image)})}function C({categoryGeneratedIndex:e}){const s=(0,r.$S)();return(0,h.jsxs)("div",{className:y.generatedIndexPage,children:[(0,h.jsx)(_.A,{}),(0,h.jsx)(k.A,{}),(0,h.jsx)(T.A,{}),(0,h.jsxs)("header",{children:[(0,h.jsx)(u.A,{as:"h1",className:y.title,children:e.title}),e.description&&(0,h.jsx)("p",{children:e.description})]}),(0,h.jsx)("article",{className:"margin-top--lg",children:(0,h.jsx)(N,{items:s.items,className:y.list})}),(0,h.jsx)("footer",{className:"margin-top--md",children:(0,h.jsx)(L.A,{previous:e.navigation.previous,next:e.navigation.next})})]})}function w(e){return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(I,{...e}),(0,h.jsx)(C,{...e})]})}},594:(e,s,n)=>{n.d(s,{A:()=>j});n(6540);var t=n(4164),r=n(7559),a=n(6972),i=n(9169),c=n(8774),l=n(1312),o=n(6025),d=n(4848);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,o.Ay)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(c.A,{"aria-label":(0,l.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}var b=n(5260),x=n(4586);function p(e){const s=function({breadcrumbs:e}){const{siteConfig:s}=(0,x.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter((e=>e.href)).map(((e,n)=>({"@type":"ListItem",position:n+1,name:e.label,item:`${s.url}${e.href}`})))}}({breadcrumbs:e.breadcrumbs});return(0,d.jsx)(b.A,{children:(0,d.jsx)("script",{type:"application/ld+json",children:JSON.stringify(s)})})}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g({children:e,href:s,isLast:n}){const t="breadcrumbs__link";return n?(0,d.jsx)("span",{className:t,children:e}):s?(0,d.jsx)(c.A,{className:t,href:s,children:(0,d.jsx)("span",{children:e})}):(0,d.jsx)("span",{className:t,children:e})}function f({children:e,active:s}){return(0,d.jsx)("li",{className:(0,t.A)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:e})}function j(){const e=(0,a.OF)(),s=(0,i.Dt)();return e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(p,{breadcrumbs:e}),(0,d.jsx)("nav",{className:(0,t.A)(r.G.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,l.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",children:[s&&(0,d.jsx)(h,{}),e.map(((s,n)=>{const t=n===e.length-1,r="category"===s.type&&s.linkUnlisted?void 0:s.href;return(0,d.jsx)(f,{active:t,children:(0,d.jsx)(g,{href:r,isLast:t,children:s.label})},n)}))]})})]}):null}},1878:(e,s,n)=>{n.d(s,{A:()=>p});n(6540);var t=n(4164),r=n(4586),a=n(8774),i=n(1312),c=n(4070),l=n(7559),o=n(3886),d=n(3025),u=n(4848);const m={unreleased:function({siteTitle:e,versionMetadata:s}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:s}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const s=m[e.versionMetadata.banner];return(0,u.jsx)(s,{...e})}function b({versionLabel:e,to:s,onClick:n}){return(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(a.A,{to:s,onClick:n,children:(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function x({className:e,versionMetadata:s}){const{siteConfig:{title:n}}=(0,r.A)(),{pluginId:a}=(0,c.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,o.g1)(a),{latestDocSuggestion:d,latestVersionSuggestion:m}=(0,c.HW)(a),x=d??(p=m).docs.find((e=>e.id===p.mainDocId));var p;return(0,u.jsxs)("div",{className:(0,t.A)(e,l.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:n,versionMetadata:s})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(b,{versionLabel:m.label,to:x.path,onClick:()=>i(m.name)})})]})}function p({className:e}){const s=(0,d.r)();return s.banner?(0,u.jsx)(x,{className:e,versionMetadata:s}):null}},4267:(e,s,n)=>{n.d(s,{A:()=>l});n(6540);var t=n(4164),r=n(1312),a=n(7559),i=n(3025),c=n(4848);function l({className:e}){const s=(0,i.r)();return s.badge?(0,c.jsx)("span",{className:(0,t.A)(e,a.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,c.jsx)(r.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},5846:(e,s,n)=>{n.d(s,{W:()=>o});var t=n(6540),r=n(4586);const a=["zero","one","two","few","many","other"];function i(e){return a.filter((s=>e.includes(s)))}const c={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function l(){const{i18n:{currentLocale:e}}=(0,r.A)();return(0,t.useMemo)((()=>{try{return function(e){const s=new Intl.PluralRules(e);return{locale:e,pluralForms:i(s.resolvedOptions().pluralCategories),select:e=>s.select(e)}}(e)}catch(s){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${s.message}\n`),c}}),[e])}function o(){const e=l();return{selectMessage:(s,n)=>function(e,s,n){const t=e.split("|");if(1===t.length)return t[0];t.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 ${t.length}: ${e}`);const r=n.select(s),a=n.pluralForms.indexOf(r);return t[Math.min(a,t.length-1)]}(n,s,e)}}},7719:(e,s,n)=>{n.d(s,{A:()=>c});n(6540);var t=n(4164),r=n(1312),a=n(9022),i=n(4848);function c(e){const{className:s,previous:n,next:c}=e;return(0,i.jsxs)("nav",{className:(0,t.A)(s,"pagination-nav"),"aria-label":(0,r.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,i.jsx)(a.A,{...n,subLabel:(0,i.jsx)(r.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),c&&(0,i.jsx)(a.A,{...c,subLabel:(0,i.jsx)(r.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},9022:(e,s,n)=>{n.d(s,{A:()=>i});n(6540);var t=n(4164),r=n(8774),a=n(4848);function i(e){const{permalink:s,title:n,subLabel:i,isNext:c}=e;return(0,a.jsxs)(r.A,{className:(0,t.A)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:s,children:[i&&(0,a.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,a.jsx)("div",{className:"pagination-nav__label",children:n})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/176d210f.21c450d1.js b/docs/assets/js/176d210f.21c450d1.js new file mode 100644 index 00000000..8f88edf3 --- /dev/null +++ b/docs/assets/js/176d210f.21c450d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6100],{73:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-add-features-details-278a519cdfe25bead880d7a18e0b858e.png"},351:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-entity-details-016ab5c5b2fef9f58bde75e6a07c9823.png"},753:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"trufflebox-ui/v1.0.0/userguide","title":"User Manual","description":"This guide covers the complete setup and usage of the Online Feature Store system, including the core services (Online Feature Store and Horizon) and the TruffleBox UI for feature management.","source":"@site/docs/trufflebox-ui/v1.0.0/userguide.md","sourceDirName":"trufflebox-ui/v1.0.0","slug":"/trufflebox-ui/v1.0.0/userguide","permalink":"/BharatMLStack/trufflebox-ui/v1.0.0/userguide","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/trufflebox-ui/v1.0.0/userguide.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"User Manual","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Trufflebox UI","permalink":"/BharatMLStack/category/trufflebox-ui"},"next":{"title":"SDKs","permalink":"/BharatMLStack/category/sdks"}}');var s=i(4848),t=i(8453);const a={title:"User Manual",sidebar_position:1},o="Usage Guide",l={},c=[{value:"Table of Contents",id:"table-of-contents",level:2},{value:"System Overview",id:"system-overview",level:2},{value:"Environment Setup",id:"environment-setup",level:2},{value:"Online Feature Store Configuration",id:"online-feature-store-configuration",level:3},{value:"Core Application Settings",id:"core-application-settings",level:4},{value:"Storage Configuration",id:"storage-configuration",level:4},{value:"Caching Configuration",id:"caching-configuration",level:4},{value:"Service Discovery and Configuration",id:"service-discovery-and-configuration",level:4},{value:"Horizon Configuration",id:"horizon-configuration",level:3},{value:"Core Application Settings",id:"core-application-settings-1",level:4},{value:"Database Configuration",id:"database-configuration",level:4},{value:"ScyllaDB Configuration",id:"scylladb-configuration",level:4},{value:"Service Integration",id:"service-integration",level:4},{value:"Key Constructs",id:"key-constructs",level:2},{value:"Store ID",id:"store-id",level:3},{value:"Entity",id:"entity",level:3},{value:"Feature Group",id:"feature-group",level:3},{value:"Feature",id:"feature",level:3},{value:"Job",id:"job",level:3},{value:"Configuration Hierarchy",id:"configuration-hierarchy",level:3},{value:"Table of Contents",id:"table-of-contents-1",level:2},{value:"User Flow",id:"user-flow",level:2},{value:"Getting Started with TruffleBox",id:"getting-started-with-trufflebox",level:3},{value:"Authentication",id:"authentication",level:4},{value:"User Management",id:"user-management",level:4},{value:"Navigation",id:"navigation",level:4},{value:"Feature Discovery",id:"feature-discovery",level:3},{value:"Entity Management",id:"entity-management",level:4},{value:"Feature Group Management",id:"feature-group-management",level:4},{value:"Feature Management",id:"feature-management",level:4},{value:"Store Discovery",id:"store-discovery",level:4},{value:"Job Discovery",id:"job-discovery",level:4},{value:"Feature Registry",id:"feature-registry",level:3},{value:"Request Status Tracking",id:"request-status-tracking",level:4},{value:"Step-by-Step Registration Guide",id:"step-by-step-registration-guide",level:4},{value:"Store Registry",id:"store-registry",level:4},{value:"Job Registry",id:"job-registry",level:4},{value:"Entity Registry",id:"entity-registry",level:4},{value:"Feature Group Registry",id:"feature-group-registry",level:4},{value:"Feature Addition",id:"feature-addition",level:4},{value:"Need Help?",id:"need-help",level:4},{value:"Admin Approval Flow",id:"admin-approval-flow",level:2},{value:"Request Management",id:"request-management",level:3},{value:"Viewing All Requests",id:"viewing-all-requests",level:4},{value:"Request Approval Process",id:"request-approval-process",level:4},{value:"Admin Support",id:"admin-support",level:4},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"usage-guide",children:"Usage Guide"})}),"\n",(0,s.jsx)(n.p,{children:"This guide covers the complete setup and usage of the Online Feature Store system, including the core services (Online Feature Store and Horizon) and the TruffleBox UI for feature management."}),"\n",(0,s.jsx)(n.h2,{id:"table-of-contents",children:"Table of Contents"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#system-overview",children:"System Overview"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"#environment-setup",children:"Environment Setup"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#online-feature-store-configuration",children:"Online Feature Store Configuration"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#horizon-configuration",children:"Horizon Configuration"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#key-constructs",children:"Key Constructs"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"#trufflebox-ui-guide",children:"TruffleBox UI Guide"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#user-flow",children:"User Flow"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#admin-approval-flow",children:"Admin Approval Flow"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"system-overview",children:"System Overview"}),"\n",(0,s.jsx)(n.p,{children:"The Online Feature Store is a comprehensive feature management system consisting of two main components:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Online Feature Store"}),": The core feature serving service that provides real-time feature retrieval with multiple storage backends and caching layers"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Horizon"}),": The configuration and metadata management service that handles feature definitions, stores, and job configurations"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"These services work together to provide a scalable, high-performance feature store for machine learning applications."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"environment-setup",children:"Environment Setup"}),"\n",(0,s.jsx)(n.h3,{id:"online-feature-store-configuration",children:"Online Feature Store Configuration"}),"\n",(0,s.jsx)(n.p,{children:"The Online Feature Store requires several environment variables to configure storage backends, caching, and service settings."}),"\n",(0,s.jsx)(n.h4,{id:"core-application-settings",children:"Core Application Settings"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"APP_ENV=prod\nAPP_LOG_LEVEL=DEBUG\nAPP_METRIC_SAMPLING_RATE=1\nAPP_NAME=online-feature-store\nAPP_PORT=8005\nAUTH_TOKEN=ofs-token\n"})}),"\n",(0,s.jsx)(n.h4,{id:"storage-configuration",children:"Storage Configuration"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"ScyllaDB Storage (Primary Storage)"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Primary ScyllaDB cluster\nSTORAGE_SCYLLA_1_CONTACT_POINTS=localhost\nSTORAGE_SCYLLA_1_KEYSPACE=ofs\nSTORAGE_SCYLLA_1_NUM_CONNS=1\nSTORAGE_SCYLLA_1_PORT=9042\nSTORAGE_SCYLLA_1_TIMEOUT_IN_MS=300000\nSTORAGE_SCYLLA_1_PASSWORD=\nSTORAGE_SCYLLA_1_USERNAME=ofs\n\n# Secondary ScyllaDB cluster\nSTORAGE_SCYLLA_5_CONTACT_POINTS=localhost\nSTORAGE_SCYLLA_5_KEYSPACE=onfs\nSTORAGE_SCYLLA_5_NUM_CONNS=1\nSTORAGE_SCYLLA_5_PASSWORD=\nSTORAGE_SCYLLA_5_PORT=9042\nSTORAGE_SCYLLA_5_TIMEOUT_IN_MS=300000\nSTORAGE_SCYLLA_5_USERNAME=\n\n# Active ScyllaDB configurations\nSTORAGE_SCYLLA_ACTIVE_CONFIG_IDS=1,5\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Redis Storage Configuration"})}),"\n",(0,s.jsx)(n.p,{children:"Redis serves dual purposes in the Online Feature Store:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Primary Storage Backend"}),": For fast feature retrieval and storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Distributed Cache Layer"}),": For improved performance and reduced latency"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Redis configurations can be referenced by their IDs in Store configurations, similar to ScyllaDB. Each Redis configuration can be independently used as either a storage backend or cache layer."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Redis Failover Configuration 1 (ID: 2)\nSTORAGE_REDIS_FAILOVER_2_SENTINEL_ADDRESSES=localhost:26379\nSTORAGE_REDIS_FAILOVER_2_DB=0\nSTORAGE_REDIS_FAILOVER_2_DISABLE_IDENTITY=true\nSTORAGE_REDIS_FAILOVER_2_MASTER_NAME=mymaster\nSTORAGE_REDIS_FAILOVER_2_MAX_IDLE_CONN=32\nSTORAGE_REDIS_FAILOVER_2_MIN_IDLE_CONN=20\nSTORAGE_REDIS_FAILOVER_2_MAX_ACTIVE_CONN=32\nSTORAGE_REDIS_FAILOVER_2_MAX_RETRY=-1\nSTORAGE_REDIS_FAILOVER_2_POOL_FIFO=false\nSTORAGE_REDIS_FAILOVER_2_READ_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_2_WRITE_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_2_POOL_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_2_POOL_SIZE=32\nSTORAGE_REDIS_FAILOVER_2_CONN_MAX_IDLE_TIMEOUT_IN_MINUTES=15\nSTORAGE_REDIS_FAILOVER_2_CONN_MAX_AGE_IN_MINUTES=30\n\n# Redis Failover Configuration 2 (ID: 4)\nSTORAGE_REDIS_FAILOVER_4_SENTINEL_ADDRESSES=localhost:26379\nSTORAGE_REDIS_FAILOVER_4_DB=0\nSTORAGE_REDIS_FAILOVER_4_DISABLE_IDENTITY=true\nSTORAGE_REDIS_FAILOVER_4_MASTER_NAME=mymaster\nSTORAGE_REDIS_FAILOVER_4_MAX_IDLE_CONN=32\nSTORAGE_REDIS_FAILOVER_4_MIN_IDLE_CONN=20\nSTORAGE_REDIS_FAILOVER_4_MAX_ACTIVE_CONN=32\nSTORAGE_REDIS_FAILOVER_4_MAX_RETRY=-1\nSTORAGE_REDIS_FAILOVER_4_POOL_FIFO=false\nSTORAGE_REDIS_FAILOVER_4_READ_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_4_WRITE_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_4_POOL_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_4_POOL_SIZE=32\nSTORAGE_REDIS_FAILOVER_4_CONN_MAX_IDLE_TIMEOUT_IN_MINUTES=15\nSTORAGE_REDIS_FAILOVER_4_CONN_MAX_AGE_IN_MINUTES=30\n\n# High-Performance Redis Configuration (ID: 6)\nSTORAGE_REDIS_FAILOVER_6_CONN_MAX_AGE_IN_MINUTES=-1\nSTORAGE_REDIS_FAILOVER_6_CONN_MAX_IDLE_TIMEOUT_IN_MINUTES=30\nSTORAGE_REDIS_FAILOVER_6_DB=0\nSTORAGE_REDIS_FAILOVER_6_DISABLE_IDENTITY=true\nSTORAGE_REDIS_FAILOVER_6_MASTER_NAME=mymaster\nSTORAGE_REDIS_FAILOVER_6_MAX_ACTIVE_CONN=202\nSTORAGE_REDIS_FAILOVER_6_MAX_IDLE_CONN=157\nSTORAGE_REDIS_FAILOVER_6_MAX_RETRY=-1\nSTORAGE_REDIS_FAILOVER_6_MIN_IDLE_CONN=52\nSTORAGE_REDIS_FAILOVER_6_PASSWORD=\nSTORAGE_REDIS_FAILOVER_6_POOL_FIFO=false\nSTORAGE_REDIS_FAILOVER_6_POOL_SIZE=202\nSTORAGE_REDIS_FAILOVER_6_POOL_TIMEOUT_IN_MS=2\nSTORAGE_REDIS_FAILOVER_6_READ_TIMEOUT_IN_MS=75\nSTORAGE_REDIS_FAILOVER_6_ROUTE_RANDOM=true\nSTORAGE_REDIS_FAILOVER_6_SENTINEL_ADDRESSES=localhost:26379\nSTORAGE_REDIS_FAILOVER_6_WRITE_TIMEOUT_IN_MS=300\n\n# Active Redis configurations\nSTORAGE_REDIS_FAILOVER_ACTIVE_CONFIG_IDS=2,4,6\n"})}),"\n",(0,s.jsx)(n.h4,{id:"caching-configuration",children:"Caching Configuration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# In-Memory Cache\nIN_MEM_CACHE_3_ENABLED=true\nIN_MEM_CACHE_3_NAME=onfs\nIN_MEM_CACHE_3_SIZE_IN_BYTES=10000000\nIN_MEM_CACHE_ACTIVE_CONFIG_IDS=3\n\n# Distributed Cache (uses Redis configurations)\n# Redis configurations (IDs: 2,4,6) can be used for distributed caching\nDISTRIBUTED_CACHE_CONF_IDS=2\n"})}),"\n",(0,s.jsx)(n.h4,{id:"service-discovery-and-configuration",children:"Service Discovery and Configuration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# ETCD Configuration for service discovery\nETCD_SERVER=0.0.0.0:2379\nETCD_WATCHER_ENABLED=true\n"})}),"\n",(0,s.jsx)(n.h3,{id:"horizon-configuration",children:"Horizon Configuration"}),"\n",(0,s.jsx)(n.p,{children:"Horizon manages the metadata and configuration for the Online Feature Store system."}),"\n",(0,s.jsx)(n.h4,{id:"core-application-settings-1",children:"Core Application Settings"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"APP_NAME=horizon\nAPP_ENVIRONMENT=PROD\nAPP_ENV=production\nAPP_PORT=8082\nAPP_LOG_LEVEL=DEBUG\nAPP_METRIC_SAMPLING_RATE=1\nAPP_GC_PERCENTAGE=1\n"})}),"\n",(0,s.jsx)(n.h4,{id:"database-configuration",children:"Database Configuration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# MySQL Master Configuration\nMYSQL_MASTER_MAX_POOL_SIZE=5\nMYSQL_MASTER_MIN_POOL_SIZE=2\nMYSQL_MASTER_PASSWORD=\nMYSQL_MASTER_HOST=127.0.0.1\nMYSQL_MASTER_PORT=3306\nMYSQL_DB_NAME=ml_config\nMYSQL_MASTER_USERNAME=root\n\n# MySQL Slave Configuration\nMYSQL_SLAVE_MAX_POOL_SIZE=5\nMYSQL_SLAVE_MIN_POOL_SIZE=2\nMYSQL_SLAVE_PASSWORD=\nMYSQL_SLAVE_HOST=127.0.0.1\nMYSQL_SLAVE_USERNAME=root\nMYSQL_SLAVE_PORT=3306\n"})}),"\n",(0,s.jsx)(n.h4,{id:"scylladb-configuration",children:"ScyllaDB Configuration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# ScyllaDB for Horizon\nSCYLLA_1_CONTACT_POINTS=localhost\nSCYLLA_1_KEYSPACE=onfs\nSCYLLA_1_NUM_CONNS=1\nSCYLLA_1_PORT=9042\nSCYLLA_1_TIMEOUT_IN_MS=300000\nSCYLLA_1_PASSWORD=\nSCYLLA_1_USERNAME=\nSCYLLA_ACTIVE_CONFIG_IDS=1\n"})}),"\n",(0,s.jsx)(n.h4,{id:"service-integration",children:"Service Integration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# ETCD Configuration\nETCD_WATCHER_ENABLED=true\nETCD_SERVER=localhost:2379\n\n# Integration with Online Feature Store\nONLINE_FEATURE_STORE_APP_NAME=online-feature-store\n"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"key-constructs",children:"Key Constructs"}),"\n",(0,s.jsx)(n.p,{children:"Understanding these key constructs is essential for effectively using the Online Feature Store:"}),"\n",(0,s.jsx)(n.h3,{id:"store-id",children:"Store ID"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Store ID"})," is a unique identifier that represents a data storage configuration within the system. It defines:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Storage Backend"}),": Which underlying storage system (ScyllaDB, Redis, etc.) to use"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Configuration Parameters"}),": Connection settings, timeouts, pool sizes"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Access Patterns"}),": How data is read from and written to the store"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Store IDs are referenced throughout the system to:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Route feature requests to the appropriate storage backend"}),"\n",(0,s.jsx)(n.li,{children:"Apply specific caching strategies"}),"\n",(0,s.jsx)(n.li,{children:"Manage data lifecycle and retention policies"}),"\n",(0,s.jsx)(n.li,{children:"Configure stores in TruffleBox UI for feature groups and entities"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Storage Backend Configuration:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"ScyllaDB Store IDs"}),": ",(0,s.jsx)(n.code,{children:"STORAGE_SCYLLA_ACTIVE_CONFIG_IDS=1,5"})," indicates ScyllaDB configurations with IDs 1 and 5 are active"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Redis Store IDs"}),": ",(0,s.jsx)(n.code,{children:"STORAGE_REDIS_FAILOVER_ACTIVE_CONFIG_IDS=2,4,6"})," indicates Redis configurations with IDs 2, 4, and 6 are active"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Dual Usage of Redis:"}),"\nRedis configurations can serve dual purposes:"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"As Storage Backend"}),": Redis IDs (2,4,6) can be configured as primary storage in Store configurations"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"As Distributed Cache"}),": Same Redis IDs can be used for caching via ",(0,s.jsx)(n.code,{children:"DISTRIBUTED_CACHE_CONF_IDS=2"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"When creating stores in TruffleBox, you can reference these storage configuration IDs to determine which backend (ScyllaDB ID 1/5 or Redis ID 2/4/6) will be used for your feature data."}),"\n",(0,s.jsx)(n.h3,{id:"entity",children:"Entity"}),"\n",(0,s.jsxs)(n.p,{children:["An ",(0,s.jsx)(n.strong,{children:"Entity"})," represents a logical grouping of related features, typically corresponding to a business object (e.g., User, Product, Transaction). Entities provide:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Namespace"}),": Logical separation of feature groups"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Identity"}),": Primary key definition for feature lookup"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Configuration"}),": Cache settings and storage preferences"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"feature-group",children:"Feature Group"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Feature Group"})," is a collection of related features that share:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Common Entity"}),": All features belong to the same entity"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Storage Configuration"}),": Same underlying storage and caching strategy"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Data Lifecycle"}),": Shared TTL and retention policies"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Access Patterns"}),": Similar read/write characteristics"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"feature",children:"Feature"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Feature"})," is an individual data point that can be retrieved for machine learning models. Each feature has:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Name"}),": Unique identifier within its feature group"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Data Type"}),": The type of data stored (string, integer, float, etc.)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Default Value"}),": Value returned when feature data is not available"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Source Mapping"}),": How the feature maps to underlying storage columns"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"job",children:"Job"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Job"})," represents a data processing pipeline that:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Ingests Data"}),": Processes raw data from various sources"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Transforms Features"}),": Applies business logic and computations"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Updates Storage"}),": Writes processed features to the feature store"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Scheduling"}),": Defines when and how often the job runs"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"configuration-hierarchy",children:"Configuration Hierarchy"}),"\n",(0,s.jsx)(n.p,{children:"The system uses a hierarchical configuration approach:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Store \u2192 Entity \u2192 Feature Group \u2192 Feature\n \u2193 \u2193 \u2193 \u2193\nConfig Identity Collection Individual\nLevel Level Level Level\n"})}),"\n",(0,s.jsx)(n.p,{children:"This hierarchy allows for:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Inheritance"}),": Lower levels inherit settings from higher levels"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Override"}),": Specific configurations can be overridden at each level"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Flexibility"}),": Different storage strategies for different use cases"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h1,{id:"trufflebox-ui-guide",children:"TruffleBox UI Guide"}),"\n",(0,s.jsx)(n.p,{children:"TruffleBox is a comprehensive and intuitive UI to help users onboard new features, models and related entities easily. We will build iteratively and add support overtime for entire feature lifecycle management."}),"\n",(0,s.jsx)(n.h2,{id:"table-of-contents-1",children:"Table of Contents"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"#user-flow",children:"User Flow"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#getting-started-with-trufflebox",children:"Getting Started with TruffleBox"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#feature-discovery",children:"Feature Discovery"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#feature-registry",children:"Feature Registry"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"#admin-approval-flow",children:"Admin Approval Flow"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#request-management",children:"Request Management"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"user-flow",children:"User Flow"}),"\n",(0,s.jsx)(n.h3,{id:"getting-started-with-trufflebox",children:"Getting Started with TruffleBox"}),"\n",(0,s.jsx)(n.h4,{id:"authentication",children:"Authentication"}),"\n",(0,s.jsx)(n.p,{children:"Users can access TruffleBox through registration or login:"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Registration"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"New users should fill in all details and click Register."}),"\n",(0,s.jsx)(n.li,{children:"Once Registered, Please wait for an admin to activate your User"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Registration Screen",src:i(7184).A+"",width:"3438",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"user-management",children:"User Management"}),"\n",(0,s.jsx)(n.p,{children:"Admin users can manage other users through the User Management interface:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"User Management",src:i(8224).A+"",width:"3398",height:"1676"})}),"\n",(0,s.jsx)(n.p,{children:"In the User Management page, admins can:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"View all registered users"}),"\n",(0,s.jsx)(n.li,{children:"Activate/deactivate user accounts"}),"\n",(0,s.jsx)(n.li,{children:"Modify user roles"}),"\n",(0,s.jsx)(n.li,{children:"Manage user permissions"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This is a crucial step in the user onboarding process as new users must be activated by an admin before they can log in to the system."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Login"}),": Existing users can login with their registered email and password."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Login Screen",src:i(3620).A+"",width:"3438",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"navigation",children:"Navigation"}),"\n",(0,s.jsx)(n.p,{children:"After logging in, you'll be redirected to the feature-discovery page. Access the Control Center by clicking the hamburger icon in the top left corner."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Control Center Navigation",src:i(4525).A+"",width:"3450",height:"1700"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"feature-discovery",children:"Feature Discovery"}),"\n",(0,s.jsx)(n.p,{children:"The Feature Discovery page displays approved entities, feature groups, and features."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Discovery Landing Page",src:i(2904).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"You can:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"View details by clicking the info icon"}),"\n",(0,s.jsx)(n.li,{children:"Edit entities, feature groups, and features as needed"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"entity-management",children:"Entity Management"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Entity Details",src:i(2399).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:'View entity details and edit them (limited to In Memory Cache and Distributed Cache details excluding config ID). Submit changes via "Save Changes" to raise an edit request.'}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Edit Entity",src:i(911).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"feature-group-management",children:"Feature Group Management"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Group Details",src:i(7035).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Edit feature groups (TTL, In-Memory Cache Enabled, Distributed Cache Enabled, Layout Version) and submit changes to raise an edit request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Edit Feature Group",src:i(3963).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"feature-management",children:"Feature Management"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Details",src:i(6092).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Edit features (Default Value, Source Base Path, Source Data Column, Storage Provider) and submit changes to raise an edit request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Edit Features",src:i(7943).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"store-discovery",children:"Store Discovery"}),"\n",(0,s.jsx)(n.p,{children:"Access Store Discovery from the Control Center to view all stores in the database."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Store Discovery",src:i(8689).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:"You can search for specific stores but have view-only access."}),"\n",(0,s.jsx)(n.h4,{id:"job-discovery",children:"Job Discovery"}),"\n",(0,s.jsx)(n.p,{children:"Access Job Discovery from the Control Center to view all jobs in the database."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Job Discovery",src:i(9095).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:"You can search for specific jobs but have view-only access."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"feature-registry",children:"Feature Registry"}),"\n",(0,s.jsx)(n.p,{children:"In the Control Center, find the 'Feature Registry' accordion to access various registry options for component registration."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Registry Accordion",src:i(4525).A+"",width:"3450",height:"1700"})}),"\n",(0,s.jsx)(n.h4,{id:"request-status-tracking",children:"Request Status Tracking"}),"\n",(0,s.jsx)(n.p,{children:"After raising a request, track its status in the respective registry page. For rejected requests, view the rejection reason by clicking the info icon in the Actions column."}),"\n",(0,s.jsx)(n.h4,{id:"step-by-step-registration-guide",children:"Step-by-Step Registration Guide"}),"\n",(0,s.jsx)(n.p,{children:"For proper feature lifecycle management, register components in this order:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Store"}),"\n",(0,s.jsx)(n.li,{children:"Job"}),"\n",(0,s.jsx)(n.li,{children:"Entity"}),"\n",(0,s.jsx)(n.li,{children:"Feature Group"}),"\n",(0,s.jsx)(n.li,{children:"Features (if not added during Feature Group registration)"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"store-registry",children:"Store Registry"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Register Store",src:i(1644).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Access Store Registry from the Control Center to view raised requests and register new stores. Fill required data and submit to raise a request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Store Details",src:i(1481).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Important Considerations:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Always add primary keys for proper data identification"}),"\n",(0,s.jsx)(n.li,{children:"Accurate store configuration is crucial as changes later can be complex"}),"\n",(0,s.jsx)(n.li,{children:"Admin approval creates a database table with your configuration"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"job-registry",children:"Job Registry"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create Job",src:i(3366).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Access Job Registry from the Control Center to view raised requests and create new jobs. Fill required data and submit your request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Job Details",src:i(2791).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Ensure job details are accurate before proceeding to Entity Registry."}),"\n",(0,s.jsx)(n.h4,{id:"entity-registry",children:"Entity Registry"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create Entity",src:i(9214).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Access Entity Registry from the Control Center to view raised requests and create new entities. Fill required data and submit your request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Entity Detail View",src:i(351).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Important Considerations:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Ensure entity details align with your data model"}),"\n",(0,s.jsx)(n.li,{children:"The entity serves as a logical container for feature groups"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"feature-group-registry",children:"Feature Group Registry"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create Feature Group",src:i(1954).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:"Access Feature Group Registry from the Control Center to view raised requests and create new feature groups. Fill required data and submit your request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Group Detail View",src:i(2955).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Important Considerations:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Primary keys must match the store primary keys"}),"\n",(0,s.jsx)(n.li,{children:"TTL settings determine how long feature data is stored"}),"\n",(0,s.jsx)(n.li,{children:"Configure cache settings based on access patterns"}),"\n",(0,s.jsx)(n.li,{children:"Approved feature groups automatically add necessary columns to the database table"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"feature-addition",children:"Feature Addition"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Add Features",src:i(3532).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Access Feature Addition from the Control Center to view raised requests and add new features. Fill required data and submit your request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Detail View",src:i(73).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Important Considerations:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Ensure feature data types are compatible with source data"}),"\n",(0,s.jsx)(n.li,{children:"Set appropriate default values and correct source data column mapping"}),"\n",(0,s.jsx)(n.li,{children:"Approved features automatically add columns to the database table"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"need-help",children:"Need Help?"}),"\n",(0,s.jsx)(n.p,{children:"Please reach out to the BharatMLStack core team for any questions about using TruffleBox."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"admin-approval-flow",children:"Admin Approval Flow"}),"\n",(0,s.jsx)(n.p,{children:"As an admin, you're responsible for reviewing and managing user requests."}),"\n",(0,s.jsx)(n.h3,{id:"request-management",children:"Request Management"}),"\n",(0,s.jsx)(n.h4,{id:"viewing-all-requests",children:"Viewing All Requests"}),"\n",(0,s.jsx)(n.p,{children:"After logging in as an admin, you can see all pending requests across different components (Stores, Jobs, Entities, Feature Groups, Features)."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Admin Dashboard",src:i(6500).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"request-approval-process",children:"Request Approval Process"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Review Details"}),": Click the info icon to view complete request details"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Request Details",src:i(6500).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsxs)(n.ol,{start:"2",children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Approval Option"}),": After review, use the approve/reject buttons"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Approval Buttons",src:i(6500).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsxs)(n.ol,{start:"3",children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Approval Process"}),":",(0,s.jsx)(n.br,{}),"\n",'Click "Approve" to process the request. The system will create database tables or add columns as needed. A success message confirms completion.']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Approval Success",src:i(6500).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsxs)(n.ol,{start:"4",children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Rejection Process"}),":",(0,s.jsx)(n.br,{}),"\n",'Click "Reject" to deny a request. Provide a rejection reason to help users understand why their request wasn\'t approved.']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Rejection Reason",src:i(6863).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:"Users can view the rejection reason in their respective registry page."}),"\n",(0,s.jsx)(n.h4,{id:"admin-support",children:"Admin Support"}),"\n",(0,s.jsx)(n.p,{children:"If you need assistance with admin functions, please contact the BharatMLStack core team."}),"\n",(0,s.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,s.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,s.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\ud83d\udcac ",(0,s.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,s.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,s.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,s.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,s.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,s.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},911:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-edit-entity-0c3bb1263b53ed678ae2f9310441f3d7.png"},1481:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-store-details-a36537beae9ac91576186b193e858112.png"},1644:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-store-d6f80ceb9a6570b225bba4653ac22dd8.png"},1954:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-fg-9c3b22e62b389f2c1baf968a6e201964.png"},2399:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-feature-discovery-entity-details-839bb44b2cd99129eeb0ee785d19152c.png"},2791:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-job-details-075436efba1df107ac7e42164ff6494a.png"},2904:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-feature-discovery-c3a8456bb04479842666120a0ec082e6.png"},2955:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-fg-details-1b1100bbb5d23fac31414b15f2a59366.png"},3366:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-job-e45c350f42a09adaeea50ef00d53df55.png"},3532:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-add-features-6cb39960d91af3ee1c896492188cfcb5.png"},3620:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-login-de1cbf15b2daa5c532875a94a4ad1a47.png"},3963:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-edit-fg-edc1a8999700e5c1e9ff023fe9f6413f.png"},4525:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-navigation-0e472fd13ccdae9448011eb9aebb990e.png"},6092:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-feature-discovery-feature-details-b780eb1ede246eb257862a46f0fdb53e.png"},6500:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-approve-store-1057c0853f92becfa9b1f87d165a72f9.png"},6863:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-reject-popup-9941183f1128e19034f41970d218d72f.png"},7035:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-feature-discovery-fg-details-a2dda4f72568878138e3b2d50fa20e8f.png"},7184:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-registration-aed7738afc652b6418bdc00966850ec0.png"},7943:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-edit-features-41cb78c09d70203c166fce91976d2ba0.png"},8224:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-user-management-2c50fa8488f21ff07b9925c48a10f7cd.png"},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var r=i(6540);const s={},t=r.createContext(s);function a(e){const n=r.useContext(t);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(t.Provider,{value:n},e.children)}},8689:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-store-discovery-8c9042352255fff36b35b4aa193583f7.png"},9095:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-job-discovery-3fac78c4b09b6c76a7bc1dd0738cc93d.png"},9214:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-entity-fe6449f47304e0377107d8e5b3ce1d30.png"}}]); \ No newline at end of file diff --git a/docs/assets/js/176d210f.47d21595.js b/docs/assets/js/176d210f.47d21595.js deleted file mode 100644 index 239e1e8f..00000000 --- a/docs/assets/js/176d210f.47d21595.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6100],{239:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-job-e45c350f42a09adaeea50ef00d53df55.png"},598:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-feature-discovery-fg-details-a2dda4f72568878138e3b2d50fa20e8f.png"},753:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"trufflebox-ui/v1.0.0/userguide","title":"User Manual","description":"This guide covers the complete setup and usage of the Online Feature Store system, including the core services (Online Feature Store and Horizon) and the TruffleBox UI for feature management.","source":"@site/docs/trufflebox-ui/v1.0.0/userguide.md","sourceDirName":"trufflebox-ui/v1.0.0","slug":"/trufflebox-ui/v1.0.0/userguide","permalink":"/BharatMLStack/trufflebox-ui/v1.0.0/userguide","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/trufflebox-ui/v1.0.0/userguide.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"User Manual","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Trufflebox UI","permalink":"/BharatMLStack/category/trufflebox-ui"},"next":{"title":"SDKs","permalink":"/BharatMLStack/category/sdks"}}');var s=i(4848),t=i(8453);const a={title:"User Manual",sidebar_position:1},o="Usage Guide",l={},c=[{value:"Table of Contents",id:"table-of-contents",level:2},{value:"System Overview",id:"system-overview",level:2},{value:"Environment Setup",id:"environment-setup",level:2},{value:"Online Feature Store Configuration",id:"online-feature-store-configuration",level:3},{value:"Core Application Settings",id:"core-application-settings",level:4},{value:"Storage Configuration",id:"storage-configuration",level:4},{value:"Caching Configuration",id:"caching-configuration",level:4},{value:"Service Discovery and Configuration",id:"service-discovery-and-configuration",level:4},{value:"Horizon Configuration",id:"horizon-configuration",level:3},{value:"Core Application Settings",id:"core-application-settings-1",level:4},{value:"Database Configuration",id:"database-configuration",level:4},{value:"ScyllaDB Configuration",id:"scylladb-configuration",level:4},{value:"Service Integration",id:"service-integration",level:4},{value:"Key Constructs",id:"key-constructs",level:2},{value:"Store ID",id:"store-id",level:3},{value:"Entity",id:"entity",level:3},{value:"Feature Group",id:"feature-group",level:3},{value:"Feature",id:"feature",level:3},{value:"Job",id:"job",level:3},{value:"Configuration Hierarchy",id:"configuration-hierarchy",level:3},{value:"Table of Contents",id:"table-of-contents-1",level:2},{value:"User Flow",id:"user-flow",level:2},{value:"Getting Started with TruffleBox",id:"getting-started-with-trufflebox",level:3},{value:"Authentication",id:"authentication",level:4},{value:"User Management",id:"user-management",level:4},{value:"Navigation",id:"navigation",level:4},{value:"Feature Discovery",id:"feature-discovery",level:3},{value:"Entity Management",id:"entity-management",level:4},{value:"Feature Group Management",id:"feature-group-management",level:4},{value:"Feature Management",id:"feature-management",level:4},{value:"Store Discovery",id:"store-discovery",level:4},{value:"Job Discovery",id:"job-discovery",level:4},{value:"Feature Registry",id:"feature-registry",level:3},{value:"Request Status Tracking",id:"request-status-tracking",level:4},{value:"Step-by-Step Registration Guide",id:"step-by-step-registration-guide",level:4},{value:"Store Registry",id:"store-registry",level:4},{value:"Job Registry",id:"job-registry",level:4},{value:"Entity Registry",id:"entity-registry",level:4},{value:"Feature Group Registry",id:"feature-group-registry",level:4},{value:"Feature Addition",id:"feature-addition",level:4},{value:"Need Help?",id:"need-help",level:4},{value:"Admin Approval Flow",id:"admin-approval-flow",level:2},{value:"Request Management",id:"request-management",level:3},{value:"Viewing All Requests",id:"viewing-all-requests",level:4},{value:"Request Approval Process",id:"request-approval-process",level:4},{value:"Admin Support",id:"admin-support",level:4},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"usage-guide",children:"Usage Guide"})}),"\n",(0,s.jsx)(n.p,{children:"This guide covers the complete setup and usage of the Online Feature Store system, including the core services (Online Feature Store and Horizon) and the TruffleBox UI for feature management."}),"\n",(0,s.jsx)(n.h2,{id:"table-of-contents",children:"Table of Contents"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#system-overview",children:"System Overview"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"#environment-setup",children:"Environment Setup"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#online-feature-store-configuration",children:"Online Feature Store Configuration"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#horizon-configuration",children:"Horizon Configuration"})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#key-constructs",children:"Key Constructs"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"#trufflebox-ui-guide",children:"TruffleBox UI Guide"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#user-flow",children:"User Flow"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#admin-approval-flow",children:"Admin Approval Flow"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"system-overview",children:"System Overview"}),"\n",(0,s.jsx)(n.p,{children:"The Online Feature Store is a comprehensive feature management system consisting of two main components:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Online Feature Store"}),": The core feature serving service that provides real-time feature retrieval with multiple storage backends and caching layers"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Horizon"}),": The configuration and metadata management service that handles feature definitions, stores, and job configurations"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"These services work together to provide a scalable, high-performance feature store for machine learning applications."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"environment-setup",children:"Environment Setup"}),"\n",(0,s.jsx)(n.h3,{id:"online-feature-store-configuration",children:"Online Feature Store Configuration"}),"\n",(0,s.jsx)(n.p,{children:"The Online Feature Store requires several environment variables to configure storage backends, caching, and service settings."}),"\n",(0,s.jsx)(n.h4,{id:"core-application-settings",children:"Core Application Settings"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"APP_ENV=prod\nAPP_LOG_LEVEL=DEBUG\nAPP_METRIC_SAMPLING_RATE=1\nAPP_NAME=online-feature-store\nAPP_PORT=8005\nAUTH_TOKEN=ofs-token\n"})}),"\n",(0,s.jsx)(n.h4,{id:"storage-configuration",children:"Storage Configuration"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"ScyllaDB Storage (Primary Storage)"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Primary ScyllaDB cluster\nSTORAGE_SCYLLA_1_CONTACT_POINTS=localhost\nSTORAGE_SCYLLA_1_KEYSPACE=ofs\nSTORAGE_SCYLLA_1_NUM_CONNS=1\nSTORAGE_SCYLLA_1_PORT=9042\nSTORAGE_SCYLLA_1_TIMEOUT_IN_MS=300000\nSTORAGE_SCYLLA_1_PASSWORD=\nSTORAGE_SCYLLA_1_USERNAME=ofs\n\n# Secondary ScyllaDB cluster\nSTORAGE_SCYLLA_5_CONTACT_POINTS=localhost\nSTORAGE_SCYLLA_5_KEYSPACE=onfs\nSTORAGE_SCYLLA_5_NUM_CONNS=1\nSTORAGE_SCYLLA_5_PASSWORD=\nSTORAGE_SCYLLA_5_PORT=9042\nSTORAGE_SCYLLA_5_TIMEOUT_IN_MS=300000\nSTORAGE_SCYLLA_5_USERNAME=\n\n# Active ScyllaDB configurations\nSTORAGE_SCYLLA_ACTIVE_CONFIG_IDS=1,5\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Redis Storage Configuration"})}),"\n",(0,s.jsx)(n.p,{children:"Redis serves dual purposes in the Online Feature Store:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Primary Storage Backend"}),": For fast feature retrieval and storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Distributed Cache Layer"}),": For improved performance and reduced latency"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Redis configurations can be referenced by their IDs in Store configurations, similar to ScyllaDB. Each Redis configuration can be independently used as either a storage backend or cache layer."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Redis Failover Configuration 1 (ID: 2)\nSTORAGE_REDIS_FAILOVER_2_SENTINEL_ADDRESSES=localhost:26379\nSTORAGE_REDIS_FAILOVER_2_DB=0\nSTORAGE_REDIS_FAILOVER_2_DISABLE_IDENTITY=true\nSTORAGE_REDIS_FAILOVER_2_MASTER_NAME=mymaster\nSTORAGE_REDIS_FAILOVER_2_MAX_IDLE_CONN=32\nSTORAGE_REDIS_FAILOVER_2_MIN_IDLE_CONN=20\nSTORAGE_REDIS_FAILOVER_2_MAX_ACTIVE_CONN=32\nSTORAGE_REDIS_FAILOVER_2_MAX_RETRY=-1\nSTORAGE_REDIS_FAILOVER_2_POOL_FIFO=false\nSTORAGE_REDIS_FAILOVER_2_READ_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_2_WRITE_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_2_POOL_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_2_POOL_SIZE=32\nSTORAGE_REDIS_FAILOVER_2_CONN_MAX_IDLE_TIMEOUT_IN_MINUTES=15\nSTORAGE_REDIS_FAILOVER_2_CONN_MAX_AGE_IN_MINUTES=30\n\n# Redis Failover Configuration 2 (ID: 4)\nSTORAGE_REDIS_FAILOVER_4_SENTINEL_ADDRESSES=localhost:26379\nSTORAGE_REDIS_FAILOVER_4_DB=0\nSTORAGE_REDIS_FAILOVER_4_DISABLE_IDENTITY=true\nSTORAGE_REDIS_FAILOVER_4_MASTER_NAME=mymaster\nSTORAGE_REDIS_FAILOVER_4_MAX_IDLE_CONN=32\nSTORAGE_REDIS_FAILOVER_4_MIN_IDLE_CONN=20\nSTORAGE_REDIS_FAILOVER_4_MAX_ACTIVE_CONN=32\nSTORAGE_REDIS_FAILOVER_4_MAX_RETRY=-1\nSTORAGE_REDIS_FAILOVER_4_POOL_FIFO=false\nSTORAGE_REDIS_FAILOVER_4_READ_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_4_WRITE_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_4_POOL_TIMEOUT_IN_MS=3000\nSTORAGE_REDIS_FAILOVER_4_POOL_SIZE=32\nSTORAGE_REDIS_FAILOVER_4_CONN_MAX_IDLE_TIMEOUT_IN_MINUTES=15\nSTORAGE_REDIS_FAILOVER_4_CONN_MAX_AGE_IN_MINUTES=30\n\n# High-Performance Redis Configuration (ID: 6)\nSTORAGE_REDIS_FAILOVER_6_CONN_MAX_AGE_IN_MINUTES=-1\nSTORAGE_REDIS_FAILOVER_6_CONN_MAX_IDLE_TIMEOUT_IN_MINUTES=30\nSTORAGE_REDIS_FAILOVER_6_DB=0\nSTORAGE_REDIS_FAILOVER_6_DISABLE_IDENTITY=true\nSTORAGE_REDIS_FAILOVER_6_MASTER_NAME=mymaster\nSTORAGE_REDIS_FAILOVER_6_MAX_ACTIVE_CONN=202\nSTORAGE_REDIS_FAILOVER_6_MAX_IDLE_CONN=157\nSTORAGE_REDIS_FAILOVER_6_MAX_RETRY=-1\nSTORAGE_REDIS_FAILOVER_6_MIN_IDLE_CONN=52\nSTORAGE_REDIS_FAILOVER_6_PASSWORD=\nSTORAGE_REDIS_FAILOVER_6_POOL_FIFO=false\nSTORAGE_REDIS_FAILOVER_6_POOL_SIZE=202\nSTORAGE_REDIS_FAILOVER_6_POOL_TIMEOUT_IN_MS=2\nSTORAGE_REDIS_FAILOVER_6_READ_TIMEOUT_IN_MS=75\nSTORAGE_REDIS_FAILOVER_6_ROUTE_RANDOM=true\nSTORAGE_REDIS_FAILOVER_6_SENTINEL_ADDRESSES=localhost:26379\nSTORAGE_REDIS_FAILOVER_6_WRITE_TIMEOUT_IN_MS=300\n\n# Active Redis configurations\nSTORAGE_REDIS_FAILOVER_ACTIVE_CONFIG_IDS=2,4,6\n"})}),"\n",(0,s.jsx)(n.h4,{id:"caching-configuration",children:"Caching Configuration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# In-Memory Cache\nIN_MEM_CACHE_3_ENABLED=true\nIN_MEM_CACHE_3_NAME=onfs\nIN_MEM_CACHE_3_SIZE_IN_BYTES=10000000\nIN_MEM_CACHE_ACTIVE_CONFIG_IDS=3\n\n# Distributed Cache (uses Redis configurations)\n# Redis configurations (IDs: 2,4,6) can be used for distributed caching\nDISTRIBUTED_CACHE_CONF_IDS=2\n"})}),"\n",(0,s.jsx)(n.h4,{id:"service-discovery-and-configuration",children:"Service Discovery and Configuration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# ETCD Configuration for service discovery\nETCD_SERVER=0.0.0.0:2379\nETCD_WATCHER_ENABLED=true\n"})}),"\n",(0,s.jsx)(n.h3,{id:"horizon-configuration",children:"Horizon Configuration"}),"\n",(0,s.jsx)(n.p,{children:"Horizon manages the metadata and configuration for the Online Feature Store system."}),"\n",(0,s.jsx)(n.h4,{id:"core-application-settings-1",children:"Core Application Settings"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"APP_NAME=horizon\nAPP_ENVIRONMENT=PROD\nAPP_ENV=production\nAPP_PORT=8082\nAPP_LOG_LEVEL=DEBUG\nAPP_METRIC_SAMPLING_RATE=1\nAPP_GC_PERCENTAGE=1\n"})}),"\n",(0,s.jsx)(n.h4,{id:"database-configuration",children:"Database Configuration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# MySQL Master Configuration\nMYSQL_MASTER_MAX_POOL_SIZE=5\nMYSQL_MASTER_MIN_POOL_SIZE=2\nMYSQL_MASTER_PASSWORD=\nMYSQL_MASTER_HOST=127.0.0.1\nMYSQL_MASTER_PORT=3306\nMYSQL_DB_NAME=ml_config\nMYSQL_MASTER_USERNAME=root\n\n# MySQL Slave Configuration\nMYSQL_SLAVE_MAX_POOL_SIZE=5\nMYSQL_SLAVE_MIN_POOL_SIZE=2\nMYSQL_SLAVE_PASSWORD=\nMYSQL_SLAVE_HOST=127.0.0.1\nMYSQL_SLAVE_USERNAME=root\nMYSQL_SLAVE_PORT=3306\n"})}),"\n",(0,s.jsx)(n.h4,{id:"scylladb-configuration",children:"ScyllaDB Configuration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# ScyllaDB for Horizon\nSCYLLA_1_CONTACT_POINTS=localhost\nSCYLLA_1_KEYSPACE=onfs\nSCYLLA_1_NUM_CONNS=1\nSCYLLA_1_PORT=9042\nSCYLLA_1_TIMEOUT_IN_MS=300000\nSCYLLA_1_PASSWORD=\nSCYLLA_1_USERNAME=\nSCYLLA_ACTIVE_CONFIG_IDS=1\n"})}),"\n",(0,s.jsx)(n.h4,{id:"service-integration",children:"Service Integration"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# ETCD Configuration\nETCD_WATCHER_ENABLED=true\nETCD_SERVER=localhost:2379\n\n# Integration with Online Feature Store\nONLINE_FEATURE_STORE_APP_NAME=online-feature-store\n"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"key-constructs",children:"Key Constructs"}),"\n",(0,s.jsx)(n.p,{children:"Understanding these key constructs is essential for effectively using the Online Feature Store:"}),"\n",(0,s.jsx)(n.h3,{id:"store-id",children:"Store ID"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Store ID"})," is a unique identifier that represents a data storage configuration within the system. It defines:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Storage Backend"}),": Which underlying storage system (ScyllaDB, Redis, etc.) to use"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Configuration Parameters"}),": Connection settings, timeouts, pool sizes"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Access Patterns"}),": How data is read from and written to the store"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Store IDs are referenced throughout the system to:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Route feature requests to the appropriate storage backend"}),"\n",(0,s.jsx)(n.li,{children:"Apply specific caching strategies"}),"\n",(0,s.jsx)(n.li,{children:"Manage data lifecycle and retention policies"}),"\n",(0,s.jsx)(n.li,{children:"Configure stores in TruffleBox UI for feature groups and entities"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Storage Backend Configuration:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"ScyllaDB Store IDs"}),": ",(0,s.jsx)(n.code,{children:"STORAGE_SCYLLA_ACTIVE_CONFIG_IDS=1,5"})," indicates ScyllaDB configurations with IDs 1 and 5 are active"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Redis Store IDs"}),": ",(0,s.jsx)(n.code,{children:"STORAGE_REDIS_FAILOVER_ACTIVE_CONFIG_IDS=2,4,6"})," indicates Redis configurations with IDs 2, 4, and 6 are active"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Dual Usage of Redis:"}),"\nRedis configurations can serve dual purposes:"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"As Storage Backend"}),": Redis IDs (2,4,6) can be configured as primary storage in Store configurations"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"As Distributed Cache"}),": Same Redis IDs can be used for caching via ",(0,s.jsx)(n.code,{children:"DISTRIBUTED_CACHE_CONF_IDS=2"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"When creating stores in TruffleBox, you can reference these storage configuration IDs to determine which backend (ScyllaDB ID 1/5 or Redis ID 2/4/6) will be used for your feature data."}),"\n",(0,s.jsx)(n.h3,{id:"entity",children:"Entity"}),"\n",(0,s.jsxs)(n.p,{children:["An ",(0,s.jsx)(n.strong,{children:"Entity"})," represents a logical grouping of related features, typically corresponding to a business object (e.g., User, Product, Transaction). Entities provide:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Namespace"}),": Logical separation of feature groups"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Identity"}),": Primary key definition for feature lookup"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Configuration"}),": Cache settings and storage preferences"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"feature-group",children:"Feature Group"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Feature Group"})," is a collection of related features that share:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Common Entity"}),": All features belong to the same entity"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Storage Configuration"}),": Same underlying storage and caching strategy"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Data Lifecycle"}),": Shared TTL and retention policies"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Access Patterns"}),": Similar read/write characteristics"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"feature",children:"Feature"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Feature"})," is an individual data point that can be retrieved for machine learning models. Each feature has:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Name"}),": Unique identifier within its feature group"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Data Type"}),": The type of data stored (string, integer, float, etc.)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Default Value"}),": Value returned when feature data is not available"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Source Mapping"}),": How the feature maps to underlying storage columns"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"job",children:"Job"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Job"})," represents a data processing pipeline that:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Ingests Data"}),": Processes raw data from various sources"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Transforms Features"}),": Applies business logic and computations"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Updates Storage"}),": Writes processed features to the feature store"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Scheduling"}),": Defines when and how often the job runs"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"configuration-hierarchy",children:"Configuration Hierarchy"}),"\n",(0,s.jsx)(n.p,{children:"The system uses a hierarchical configuration approach:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Store \u2192 Entity \u2192 Feature Group \u2192 Feature\n \u2193 \u2193 \u2193 \u2193\nConfig Identity Collection Individual\nLevel Level Level Level\n"})}),"\n",(0,s.jsx)(n.p,{children:"This hierarchy allows for:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Inheritance"}),": Lower levels inherit settings from higher levels"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Override"}),": Specific configurations can be overridden at each level"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Flexibility"}),": Different storage strategies for different use cases"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h1,{id:"trufflebox-ui-guide",children:"TruffleBox UI Guide"}),"\n",(0,s.jsx)(n.p,{children:"TruffleBox is a comprehensive and intuitive UI to help users onboard new features, models and related entities easily. We will build iteratively and add support overtime for entire feature lifecycle management."}),"\n",(0,s.jsx)(n.h2,{id:"table-of-contents-1",children:"Table of Contents"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"#user-flow",children:"User Flow"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#getting-started-with-trufflebox",children:"Getting Started with TruffleBox"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#feature-discovery",children:"Feature Discovery"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#feature-registry",children:"Feature Registry"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"#admin-approval-flow",children:"Admin Approval Flow"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"#request-management",children:"Request Management"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"user-flow",children:"User Flow"}),"\n",(0,s.jsx)(n.h3,{id:"getting-started-with-trufflebox",children:"Getting Started with TruffleBox"}),"\n",(0,s.jsx)(n.h4,{id:"authentication",children:"Authentication"}),"\n",(0,s.jsx)(n.p,{children:"Users can access TruffleBox through registration or login:"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Registration"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"New users should fill in all details and click Register."}),"\n",(0,s.jsx)(n.li,{children:"Once Registered, Please wait for an admin to activate your User"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Registration Screen",src:i(4125).A+"",width:"3438",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"user-management",children:"User Management"}),"\n",(0,s.jsx)(n.p,{children:"Admin users can manage other users through the User Management interface:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"User Management",src:i(6387).A+"",width:"3398",height:"1676"})}),"\n",(0,s.jsx)(n.p,{children:"In the User Management page, admins can:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"View all registered users"}),"\n",(0,s.jsx)(n.li,{children:"Activate/deactivate user accounts"}),"\n",(0,s.jsx)(n.li,{children:"Modify user roles"}),"\n",(0,s.jsx)(n.li,{children:"Manage user permissions"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This is a crucial step in the user onboarding process as new users must be activated by an admin before they can log in to the system."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Login"}),": Existing users can login with their registered email and password."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Login Screen",src:i(3239).A+"",width:"3438",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"navigation",children:"Navigation"}),"\n",(0,s.jsx)(n.p,{children:"After logging in, you'll be redirected to the feature-discovery page. Access the Control Center by clicking the hamburger icon in the top left corner."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Control Center Navigation",src:i(5352).A+"",width:"3450",height:"1700"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"feature-discovery",children:"Feature Discovery"}),"\n",(0,s.jsx)(n.p,{children:"The Feature Discovery page displays approved entities, feature groups, and features."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Discovery Landing Page",src:i(6063).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"You can:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"View details by clicking the info icon"}),"\n",(0,s.jsx)(n.li,{children:"Edit entities, feature groups, and features as needed"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"entity-management",children:"Entity Management"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Entity Details",src:i(8162).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:'View entity details and edit them (limited to In Memory Cache and Distributed Cache details excluding config ID). Submit changes via "Save Changes" to raise an edit request.'}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Edit Entity",src:i(9992).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"feature-group-management",children:"Feature Group Management"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Group Details",src:i(598).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Edit feature groups (TTL, In-Memory Cache Enabled, Distributed Cache Enabled, Layout Version) and submit changes to raise an edit request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Edit Feature Group",src:i(4664).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"feature-management",children:"Feature Management"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Details",src:i(1983).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Edit features (Default Value, Source Base Path, Source Data Column, Storage Provider) and submit changes to raise an edit request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Edit Features",src:i(2564).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"store-discovery",children:"Store Discovery"}),"\n",(0,s.jsx)(n.p,{children:"Access Store Discovery from the Control Center to view all stores in the database."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Store Discovery",src:i(5350).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:"You can search for specific stores but have view-only access."}),"\n",(0,s.jsx)(n.h4,{id:"job-discovery",children:"Job Discovery"}),"\n",(0,s.jsx)(n.p,{children:"Access Job Discovery from the Control Center to view all jobs in the database."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Job Discovery",src:i(4440).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:"You can search for specific jobs but have view-only access."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"feature-registry",children:"Feature Registry"}),"\n",(0,s.jsx)(n.p,{children:"In the Control Center, find the 'Feature Registry' accordion to access various registry options for component registration."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Registry Accordion",src:i(5352).A+"",width:"3450",height:"1700"})}),"\n",(0,s.jsx)(n.h4,{id:"request-status-tracking",children:"Request Status Tracking"}),"\n",(0,s.jsx)(n.p,{children:"After raising a request, track its status in the respective registry page. For rejected requests, view the rejection reason by clicking the info icon in the Actions column."}),"\n",(0,s.jsx)(n.h4,{id:"step-by-step-registration-guide",children:"Step-by-Step Registration Guide"}),"\n",(0,s.jsx)(n.p,{children:"For proper feature lifecycle management, register components in this order:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Store"}),"\n",(0,s.jsx)(n.li,{children:"Job"}),"\n",(0,s.jsx)(n.li,{children:"Entity"}),"\n",(0,s.jsx)(n.li,{children:"Feature Group"}),"\n",(0,s.jsx)(n.li,{children:"Features (if not added during Feature Group registration)"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"store-registry",children:"Store Registry"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Register Store",src:i(3849).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Access Store Registry from the Control Center to view raised requests and register new stores. Fill required data and submit to raise a request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Store Details",src:i(9352).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Important Considerations:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Always add primary keys for proper data identification"}),"\n",(0,s.jsx)(n.li,{children:"Accurate store configuration is crucial as changes later can be complex"}),"\n",(0,s.jsx)(n.li,{children:"Admin approval creates a database table with your configuration"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"job-registry",children:"Job Registry"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create Job",src:i(239).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Access Job Registry from the Control Center to view raised requests and create new jobs. Fill required data and submit your request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Job Details",src:i(8610).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Ensure job details are accurate before proceeding to Entity Registry."}),"\n",(0,s.jsx)(n.h4,{id:"entity-registry",children:"Entity Registry"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create Entity",src:i(9013).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Access Entity Registry from the Control Center to view raised requests and create new entities. Fill required data and submit your request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Entity Detail View",src:i(6172).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Important Considerations:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Ensure entity details align with your data model"}),"\n",(0,s.jsx)(n.li,{children:"The entity serves as a logical container for feature groups"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"feature-group-registry",children:"Feature Group Registry"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create Feature Group",src:i(2805).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:"Access Feature Group Registry from the Control Center to view raised requests and create new feature groups. Fill required data and submit your request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Group Detail View",src:i(1420).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Important Considerations:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Primary keys must match the store primary keys"}),"\n",(0,s.jsx)(n.li,{children:"TTL settings determine how long feature data is stored"}),"\n",(0,s.jsx)(n.li,{children:"Configure cache settings based on access patterns"}),"\n",(0,s.jsx)(n.li,{children:"Approved feature groups automatically add necessary columns to the database table"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"feature-addition",children:"Feature Addition"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Add Features",src:i(3581).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:"Access Feature Addition from the Control Center to view raised requests and add new features. Fill required data and submit your request."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Feature Detail View",src:i(7540).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Important Considerations:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Ensure feature data types are compatible with source data"}),"\n",(0,s.jsx)(n.li,{children:"Set appropriate default values and correct source data column mapping"}),"\n",(0,s.jsx)(n.li,{children:"Approved features automatically add columns to the database table"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"need-help",children:"Need Help?"}),"\n",(0,s.jsx)(n.p,{children:"Please reach out to the BharatMLStack core team for any questions about using TruffleBox."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"admin-approval-flow",children:"Admin Approval Flow"}),"\n",(0,s.jsx)(n.p,{children:"As an admin, you're responsible for reviewing and managing user requests."}),"\n",(0,s.jsx)(n.h3,{id:"request-management",children:"Request Management"}),"\n",(0,s.jsx)(n.h4,{id:"viewing-all-requests",children:"Viewing All Requests"}),"\n",(0,s.jsx)(n.p,{children:"After logging in as an admin, you can see all pending requests across different components (Stores, Jobs, Entities, Feature Groups, Features)."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Admin Dashboard",src:i(3247).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsx)(n.h4,{id:"request-approval-process",children:"Request Approval Process"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Review Details"}),": Click the info icon to view complete request details"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Request Details",src:i(3247).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsxs)(n.ol,{start:"2",children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Approval Option"}),": After review, use the approve/reject buttons"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Approval Buttons",src:i(3247).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsxs)(n.ol,{start:"3",children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Approval Process"}),":",(0,s.jsx)(n.br,{}),"\n",'Click "Approve" to process the request. The system will create database tables or add columns as needed. A success message confirms completion.']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Approval Success",src:i(3247).A+"",width:"3450",height:"1690"})}),"\n",(0,s.jsxs)(n.ol,{start:"4",children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Rejection Process"}),":",(0,s.jsx)(n.br,{}),"\n",'Click "Reject" to deny a request. Provide a rejection reason to help users understand why their request wasn\'t approved.']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Rejection Reason",src:i(2538).A+"",width:"3456",height:"1680"})}),"\n",(0,s.jsx)(n.p,{children:"Users can view the rejection reason in their respective registry page."}),"\n",(0,s.jsx)(n.h4,{id:"admin-support",children:"Admin Support"}),"\n",(0,s.jsx)(n.p,{children:"If you need assistance with admin functions, please contact the BharatMLStack core team."}),"\n",(0,s.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,s.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,s.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\ud83d\udcac ",(0,s.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,s.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,s.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,s.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,s.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,s.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1420:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-fg-details-1b1100bbb5d23fac31414b15f2a59366.png"},1983:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-feature-discovery-feature-details-b780eb1ede246eb257862a46f0fdb53e.png"},2538:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-reject-popup-9941183f1128e19034f41970d218d72f.png"},2564:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-edit-features-41cb78c09d70203c166fce91976d2ba0.png"},2805:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-fg-9c3b22e62b389f2c1baf968a6e201964.png"},3239:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-login-de1cbf15b2daa5c532875a94a4ad1a47.png"},3247:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-approve-store-1057c0853f92becfa9b1f87d165a72f9.png"},3581:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-add-features-6cb39960d91af3ee1c896492188cfcb5.png"},3849:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-store-d6f80ceb9a6570b225bba4653ac22dd8.png"},4125:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-registration-aed7738afc652b6418bdc00966850ec0.png"},4440:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-job-discovery-3fac78c4b09b6c76a7bc1dd0738cc93d.png"},4664:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-edit-fg-edc1a8999700e5c1e9ff023fe9f6413f.png"},5350:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-store-discovery-8c9042352255fff36b35b4aa193583f7.png"},5352:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-navigation-0e472fd13ccdae9448011eb9aebb990e.png"},6063:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-feature-discovery-c3a8456bb04479842666120a0ec082e6.png"},6172:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-entity-details-016ab5c5b2fef9f58bde75e6a07c9823.png"},6387:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-user-management-2c50fa8488f21ff07b9925c48a10f7cd.png"},7540:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-add-features-details-278a519cdfe25bead880d7a18e0b858e.png"},8162:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-feature-discovery-entity-details-839bb44b2cd99129eeb0ee785d19152c.png"},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var r=i(6540);const s={},t=r.createContext(s);function a(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(t.Provider,{value:n},e.children)}},8610:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-job-details-075436efba1df107ac7e42164ff6494a.png"},9013:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-entity-fe6449f47304e0377107d8e5b3ce1d30.png"},9352:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-register-store-details-a36537beae9ac91576186b193e858112.png"},9992:(e,n,i)=>{i.d(n,{A:()=>r});const r=i.p+"assets/images/v1.0.0-trufflebox-edit-entity-0c3bb1263b53ed678ae2f9310441f3d7.png"}}]); \ No newline at end of file diff --git a/docs/assets/js/17896441.4ff7d852.js b/docs/assets/js/17896441.4ff7d852.js new file mode 100644 index 00000000..915c5a76 --- /dev/null +++ b/docs/assets/js/17896441.4ff7d852.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8401],{594:(e,n,t)=>{t.d(n,{A:()=>j});t(6540);var s=t(4164),a=t(7559),i=t(6972),l=t(9169),o=t(8774),r=t(1312),c=t(6025),d=t(4848);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,c.Ay)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(o.A,{"aria-label":(0,r.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}var b=t(5260),v=t(4586);function x(e){const n=function({breadcrumbs:e}){const{siteConfig:n}=(0,v.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,t)=>({"@type":"ListItem",position:t+1,name:e.label,item:`${n.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,d.jsx)(b.A,{children:(0,d.jsx)("script",{type:"application/ld+json",children:JSON.stringify(n)})})}const g={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function f({children:e,href:n,isLast:t}){const s="breadcrumbs__link";return t?(0,d.jsx)("span",{className:s,children:e}):n?(0,d.jsx)(o.A,{className:s,href:n,children:(0,d.jsx)("span",{children:e})}):(0,d.jsx)("span",{className:s,children:e})}function p({children:e,active:n}){return(0,d.jsx)("li",{className:(0,s.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:e})}function j(){const e=(0,i.OF)(),n=(0,l.Dt)();return e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(x,{breadcrumbs:e}),(0,d.jsx)("nav",{className:(0,s.A)(a.G.docs.docBreadcrumbs,g.breadcrumbsContainer),"aria-label":(0,r.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",children:[n&&(0,d.jsx)(h,{}),e.map((n,t)=>{const s=t===e.length-1,a="category"===n.type&&n.linkUnlisted?void 0:n.href;return(0,d.jsx)(p,{active:s,children:(0,d.jsx)(f,{href:a,isLast:s,children:n.label})},t)})]})})]}):null}},833:(e,n,t)=>{t.r(n),t.d(n,{default:()=>F});var s=t(6540),a=t(5500),i=t(9532),l=t(4848);const o=s.createContext(null);function r({children:e,content:n}){const t=function(e){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}),[e])}(n);return(0,l.jsx)(o.Provider,{value:t,children:e})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:n,assets:t}=c();return(0,l.jsx)(a.be,{title:e.title,description:e.description,keywords:n.keywords,image:t.image??n.image})}var u=t(4164),m=t(4581),h=t(7719);function b(){const{metadata:e}=c();return(0,l.jsx)(h.A,{className:"docusaurus-mt-lg",previous:e.previous,next:e.next})}var v=t(1878),x=t(4267),g=t(7559),f=t(2053),p=t(4336);function j(){const{metadata:e}=c(),{editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(n||t||s);return i||o?(0,l.jsxs)("footer",{className:(0,u.A)(g.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,l.jsx)("div",{className:(0,u.A)("row margin-top--sm",g.G.docs.docFooterTagsRow),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(f.A,{tags:a})})}),o&&(0,l.jsx)(p.A,{className:(0,u.A)("margin-top--sm",g.G.docs.docFooterEditMetaRow),editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s})]}):null}var A=t(1422),N=t(5195),C=t(1312);const L={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function _({collapsed:e,...n}){return(0,l.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",L.tocCollapsibleButton,!e&&L.tocCollapsibleButtonExpanded,n.className),children:(0,l.jsx)(C.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const T={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function k({toc:e,className:n,minHeadingLevel:t,maxHeadingLevel:s}){const{collapsed:a,toggleCollapsed:i}=(0,A.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.A)(T.tocCollapsible,!a&&T.tocCollapsibleExpanded,n),children:[(0,l.jsx)(_,{collapsed:a,onClick:i}),(0,l.jsx)(A.N,{lazy:!0,className:T.tocCollapsibleContent,collapsed:a,children:(0,l.jsx)(N.A,{toc:e,minHeadingLevel:t,maxHeadingLevel:s})})]})}const H={tocMobile:"tocMobile_ITEo"};function y(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(k,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:(0,u.A)(g.G.docs.docTocMobile,H.tocMobile)})}var M=t(7763);function B(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(M.A,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:g.G.docs.docTocDesktop})}var I=t(1107),w=t(3253);function E({children:e}){const n=function(){const{metadata:e,frontMatter:n,contentTitle:t}=c();return n.hide_title||void 0!==t?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.A)(g.G.docs.docMarkdown,"markdown"),children:[n&&(0,l.jsx)("header",{children:(0,l.jsx)(I.A,{as:"h1",children:n})}),(0,l.jsx)(w.A,{children:e})]})}var V=t(594),O=t(1689);const R={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function G({children:e}){const n=function(){const{frontMatter:e,toc:n}=c(),t=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&n.length>0;return{hidden:s,mobile:a?(0,l.jsx)(y,{}):void 0,desktop:!a||"desktop"!==t&&"ssr"!==t?void 0:(0,l.jsx)(B,{})}}(),{metadata:t}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&R.docItemCol),children:[(0,l.jsx)(O.A,{metadata:t}),(0,l.jsx)(v.A,{}),(0,l.jsxs)("div",{className:R.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(V.A,{}),(0,l.jsx)(x.A,{}),n.mobile,(0,l.jsx)(E,{children:e}),(0,l.jsx)(j,{})]}),(0,l.jsx)(b,{})]})]}),n.desktop&&(0,l.jsx)("div",{className:"col col--3",children:n.desktop})]})}function F(e){const n=`docs-doc-id-${e.content.metadata.id}`,t=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.e3,{className:n,children:[(0,l.jsx)(d,{}),(0,l.jsx)(G,{children:(0,l.jsx)(t,{})})]})})}},1689:(e,n,t)=>{t.d(n,{A:()=>d});t(6540);var s=t(4164),a=t(4084),i=t(7559),l=t(7293),o=t(4848);function r({className:e}){return(0,o.jsx)(l.A,{type:"caution",title:(0,o.jsx)(a.Yh,{}),className:(0,s.A)(e,i.G.common.draftBanner),children:(0,o.jsx)(a.TT,{})})}var c=t(2234);function d({metadata:e}){const{unlisted:n,frontMatter:t}=e;return(0,o.jsxs)(o.Fragment,{children:[(n||t.unlisted)&&(0,o.jsx)(c.A,{}),t.draft&&(0,o.jsx)(r,{})]})}},1878:(e,n,t)=>{t.d(n,{A:()=>x});t(6540);var s=t(4164),a=t(4586),i=t(8774),l=t(1312),o=t(4070),r=t(7559),c=t(3886),d=t(3025),u=t(4848);const m={unreleased:function({siteTitle:e,versionMetadata:n}){return(0,u.jsx)(l.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:n}){return(0,u.jsx)(l.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const n=m[e.versionMetadata.banner];return(0,u.jsx)(n,{...e})}function b({versionLabel:e,to:n,onClick:t}){return(0,u.jsx)(l.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(i.A,{to:n,onClick:t,children:(0,u.jsx)(l.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function v({className:e,versionMetadata:n}){const{siteConfig:{title:t}}=(0,a.A)(),{pluginId:i}=(0,o.vT)({failfast:!0}),{savePreferredVersionName:l}=(0,c.g1)(i),{latestDocSuggestion:d,latestVersionSuggestion:m}=(0,o.HW)(i),v=d??(x=m).docs.find(e=>e.id===x.mainDocId);var x;return(0,u.jsxs)("div",{className:(0,s.A)(e,r.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:t,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(b,{versionLabel:m.label,to:v.path,onClick:()=>l(m.name)})})]})}function x({className:e}){const n=(0,d.r)();return n.banner?(0,u.jsx)(v,{className:e,versionMetadata:n}):null}},2053:(e,n,t)=>{t.d(n,{A:()=>r});t(6540);var s=t(4164),a=t(1312),i=t(6133);const l={tags:"tags_jXut",tag:"tag_QGVx"};var o=t(4848);function r({tags:e}){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("b",{children:(0,o.jsx)(a.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,o.jsx)("ul",{className:(0,s.A)(l.tags,"padding--none","margin-left--sm"),children:e.map(e=>(0,o.jsx)("li",{className:l.tag,children:(0,o.jsx)(i.A,{...e})},e.permalink))})]})}},2234:(e,n,t)=>{t.d(n,{A:()=>c});t(6540);var s=t(4164),a=t(7559),i=t(4084),l=t(7293),o=t(4848);function r({className:e}){return(0,o.jsx)(l.A,{type:"caution",title:(0,o.jsx)(i.Rc,{}),className:(0,s.A)(e,a.G.common.unlistedBanner),children:(0,o.jsx)(i.Uh,{})})}function c(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(i.AE,{}),(0,o.jsx)(r,{...e})]})}},4084:(e,n,t)=>{t.d(n,{AE:()=>r,Rc:()=>l,TT:()=>d,Uh:()=>o,Yh:()=>c});t(6540);var s=t(1312),a=t(5260),i=t(4848);function l(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function r(){return(0,i.jsx)(a.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},4267:(e,n,t)=>{t.d(n,{A:()=>r});t(6540);var s=t(4164),a=t(1312),i=t(7559),l=t(3025),o=t(4848);function r({className:e}){const n=(0,l.r)();return n.badge?(0,o.jsx)("span",{className:(0,s.A)(e,i.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(a.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},5195:(e,n,t)=>{t.d(n,{A:()=>v});var s=t(6540),a=t(6342);function i(e){const n=e.map(e=>({...e,parentIndex:-1,children:[]})),t=Array(7).fill(-1);n.forEach((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n});const s=[];return n.forEach(e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):s.push(a)}),s}function l({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return e.flatMap(e=>{const s=l({toc:e.children,minHeadingLevel:n,maxHeadingLevel:t});return function(e){return e.level>=n&&e.level<=t}(e)?[{...e,children:s}]:s})}function o(e){const n=e.getBoundingClientRect();return n.top===n.bottom?o(e.parentNode):n}function r(e,{anchorTopOffset:n}){const t=e.find(e=>o(e).top>=n);if(t){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight},[n]),e}function d(e){const n=(0,s.useRef)(void 0),t=c();(0,s.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function({minHeadingLevel:e,maxHeadingLevel:n}){const t=[];for(let s=e;s<=n;s+=1)t.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(t.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:t.current}),d=e.find(e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e));e.forEach(e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)})}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}},[e,t])}var u=t(8774),m=t(4848);function h({toc:e,className:n,linkClassName:t,isChild:s}){return e.length?(0,m.jsx)("ul",{className:s?void 0:n,children:e.map(e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:t??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:t})]},e.id))}):null}const b=s.memo(h);function v({toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:t="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:c,...u}){const h=(0,a.p)(),v=r??h.tableOfContents.minHeadingLevel,x=c??h.tableOfContents.maxHeadingLevel,g=function({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return(0,s.useMemo)(()=>l({toc:i(e),minHeadingLevel:n,maxHeadingLevel:t}),[e,n,t])}({toc:e,minHeadingLevel:v,maxHeadingLevel:x});return d((0,s.useMemo)(()=>{if(t&&o)return{linkClassName:t,linkActiveClassName:o,minHeadingLevel:v,maxHeadingLevel:x}},[t,o,v,x])),(0,m.jsx)(b,{toc:g,className:n,linkClassName:t,...u})}},6133:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var s=t(4164),a=t(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=t(4848);function o({permalink:e,label:n,count:t,description:o}){return(0,l.jsxs)(a.A,{rel:"tag",href:e,title:o,className:(0,s.A)(i.tag,t?i.tagWithCount:i.tagRegular),children:[n,t&&(0,l.jsx)("span",{children:t})]})}},7719:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var s=t(4164),a=t(1312),i=t(9022),l=t(4848);function o(e){const{className:n,previous:t,next:o}=e;return(0,l.jsxs)("nav",{className:(0,s.A)(n,"pagination-nav"),"aria-label":(0,a.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,l.jsx)(i.A,{...t,subLabel:(0,l.jsx)(a.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),o&&(0,l.jsx)(i.A,{...o,subLabel:(0,l.jsx)(a.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},7763:(e,n,t)=>{t.d(n,{A:()=>c});t(6540);var s=t(4164),a=t(5195);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=t(4848);const o="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c({className:e,...n}){return(0,l.jsx)("div",{className:(0,s.A)(i.tableOfContents,"thin-scrollbar",e),children:(0,l.jsx)(a.A,{...n,linkClassName:o,linkActiveClassName:r})})}},9022:(e,n,t)=>{t.d(n,{A:()=>l});t(6540);var s=t(4164),a=t(8774),i=t(4848);function l(e){const{permalink:n,title:t,subLabel:l,isNext:o}=e;return(0,i.jsxs)(a.A,{className:(0,s.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:n,children:[l&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,i.jsx)("div",{className:"pagination-nav__label",children:t})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/17896441.e023d99a.js b/docs/assets/js/17896441.e023d99a.js deleted file mode 100644 index 5e076aa5..00000000 --- a/docs/assets/js/17896441.e023d99a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8401],{594:(e,n,t)=>{t.d(n,{A:()=>j});t(6540);var s=t(4164),a=t(7559),i=t(6972),l=t(9169),o=t(8774),r=t(1312),c=t(6025),d=t(4848);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,c.Ay)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(o.A,{"aria-label":(0,r.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}var b=t(5260),v=t(4586);function x(e){const n=function({breadcrumbs:e}){const{siteConfig:n}=(0,v.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter((e=>e.href)).map(((e,t)=>({"@type":"ListItem",position:t+1,name:e.label,item:`${n.url}${e.href}`})))}}({breadcrumbs:e.breadcrumbs});return(0,d.jsx)(b.A,{children:(0,d.jsx)("script",{type:"application/ld+json",children:JSON.stringify(n)})})}const g={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function f({children:e,href:n,isLast:t}){const s="breadcrumbs__link";return t?(0,d.jsx)("span",{className:s,children:e}):n?(0,d.jsx)(o.A,{className:s,href:n,children:(0,d.jsx)("span",{children:e})}):(0,d.jsx)("span",{className:s,children:e})}function p({children:e,active:n}){return(0,d.jsx)("li",{className:(0,s.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:e})}function j(){const e=(0,i.OF)(),n=(0,l.Dt)();return e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(x,{breadcrumbs:e}),(0,d.jsx)("nav",{className:(0,s.A)(a.G.docs.docBreadcrumbs,g.breadcrumbsContainer),"aria-label":(0,r.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",children:[n&&(0,d.jsx)(h,{}),e.map(((n,t)=>{const s=t===e.length-1,a="category"===n.type&&n.linkUnlisted?void 0:n.href;return(0,d.jsx)(p,{active:s,children:(0,d.jsx)(f,{href:a,isLast:s,children:n.label})},t)}))]})})]}):null}},833:(e,n,t)=>{t.r(n),t.d(n,{default:()=>F});var s=t(6540),a=t(5500),i=t(9532),l=t(4848);const o=s.createContext(null);function r({children:e,content:n}){const t=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,l.jsx)(o.Provider,{value:t,children:e})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:n,assets:t}=c();return(0,l.jsx)(a.be,{title:e.title,description:e.description,keywords:n.keywords,image:t.image??n.image})}var u=t(4164),m=t(4581),h=t(7719);function b(){const{metadata:e}=c();return(0,l.jsx)(h.A,{className:"docusaurus-mt-lg",previous:e.previous,next:e.next})}var v=t(1878),x=t(4267),g=t(7559),f=t(2053),p=t(4336);function j(){const{metadata:e}=c(),{editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(n||t||s);return i||o?(0,l.jsxs)("footer",{className:(0,u.A)(g.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,l.jsx)("div",{className:(0,u.A)("row margin-top--sm",g.G.docs.docFooterTagsRow),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(f.A,{tags:a})})}),o&&(0,l.jsx)(p.A,{className:(0,u.A)("margin-top--sm",g.G.docs.docFooterEditMetaRow),editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s})]}):null}var A=t(1422),N=t(5195),C=t(1312);const L={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function _({collapsed:e,...n}){return(0,l.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",L.tocCollapsibleButton,!e&&L.tocCollapsibleButtonExpanded,n.className),children:(0,l.jsx)(C.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const T={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function k({toc:e,className:n,minHeadingLevel:t,maxHeadingLevel:s}){const{collapsed:a,toggleCollapsed:i}=(0,A.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.A)(T.tocCollapsible,!a&&T.tocCollapsibleExpanded,n),children:[(0,l.jsx)(_,{collapsed:a,onClick:i}),(0,l.jsx)(A.N,{lazy:!0,className:T.tocCollapsibleContent,collapsed:a,children:(0,l.jsx)(N.A,{toc:e,minHeadingLevel:t,maxHeadingLevel:s})})]})}const H={tocMobile:"tocMobile_ITEo"};function y(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(k,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:(0,u.A)(g.G.docs.docTocMobile,H.tocMobile)})}var M=t(7763);function B(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(M.A,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:g.G.docs.docTocDesktop})}var I=t(1107),w=t(3253);function E({children:e}){const n=function(){const{metadata:e,frontMatter:n,contentTitle:t}=c();return n.hide_title||void 0!==t?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.A)(g.G.docs.docMarkdown,"markdown"),children:[n&&(0,l.jsx)("header",{children:(0,l.jsx)(I.A,{as:"h1",children:n})}),(0,l.jsx)(w.A,{children:e})]})}var V=t(594),O=t(1689);const R={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function G({children:e}){const n=function(){const{frontMatter:e,toc:n}=c(),t=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&n.length>0;return{hidden:s,mobile:a?(0,l.jsx)(y,{}):void 0,desktop:!a||"desktop"!==t&&"ssr"!==t?void 0:(0,l.jsx)(B,{})}}(),{metadata:t}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&R.docItemCol),children:[(0,l.jsx)(O.A,{metadata:t}),(0,l.jsx)(v.A,{}),(0,l.jsxs)("div",{className:R.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(V.A,{}),(0,l.jsx)(x.A,{}),n.mobile,(0,l.jsx)(E,{children:e}),(0,l.jsx)(j,{})]}),(0,l.jsx)(b,{})]})]}),n.desktop&&(0,l.jsx)("div",{className:"col col--3",children:n.desktop})]})}function F(e){const n=`docs-doc-id-${e.content.metadata.id}`,t=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.e3,{className:n,children:[(0,l.jsx)(d,{}),(0,l.jsx)(G,{children:(0,l.jsx)(t,{})})]})})}},1689:(e,n,t)=>{t.d(n,{A:()=>d});t(6540);var s=t(4164),a=t(4084),i=t(7559),l=t(7293),o=t(4848);function r({className:e}){return(0,o.jsx)(l.A,{type:"caution",title:(0,o.jsx)(a.Yh,{}),className:(0,s.A)(e,i.G.common.draftBanner),children:(0,o.jsx)(a.TT,{})})}var c=t(2234);function d({metadata:e}){const{unlisted:n,frontMatter:t}=e;return(0,o.jsxs)(o.Fragment,{children:[(n||t.unlisted)&&(0,o.jsx)(c.A,{}),t.draft&&(0,o.jsx)(r,{})]})}},1878:(e,n,t)=>{t.d(n,{A:()=>x});t(6540);var s=t(4164),a=t(4586),i=t(8774),l=t(1312),o=t(4070),r=t(7559),c=t(3886),d=t(3025),u=t(4848);const m={unreleased:function({siteTitle:e,versionMetadata:n}){return(0,u.jsx)(l.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:n}){return(0,u.jsx)(l.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const n=m[e.versionMetadata.banner];return(0,u.jsx)(n,{...e})}function b({versionLabel:e,to:n,onClick:t}){return(0,u.jsx)(l.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(i.A,{to:n,onClick:t,children:(0,u.jsx)(l.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function v({className:e,versionMetadata:n}){const{siteConfig:{title:t}}=(0,a.A)(),{pluginId:i}=(0,o.vT)({failfast:!0}),{savePreferredVersionName:l}=(0,c.g1)(i),{latestDocSuggestion:d,latestVersionSuggestion:m}=(0,o.HW)(i),v=d??(x=m).docs.find((e=>e.id===x.mainDocId));var x;return(0,u.jsxs)("div",{className:(0,s.A)(e,r.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:t,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(b,{versionLabel:m.label,to:v.path,onClick:()=>l(m.name)})})]})}function x({className:e}){const n=(0,d.r)();return n.banner?(0,u.jsx)(v,{className:e,versionMetadata:n}):null}},2053:(e,n,t)=>{t.d(n,{A:()=>r});t(6540);var s=t(4164),a=t(1312),i=t(6133);const l={tags:"tags_jXut",tag:"tag_QGVx"};var o=t(4848);function r({tags:e}){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("b",{children:(0,o.jsx)(a.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,o.jsx)("ul",{className:(0,s.A)(l.tags,"padding--none","margin-left--sm"),children:e.map((e=>(0,o.jsx)("li",{className:l.tag,children:(0,o.jsx)(i.A,{...e})},e.permalink)))})]})}},2234:(e,n,t)=>{t.d(n,{A:()=>c});t(6540);var s=t(4164),a=t(4084),i=t(7559),l=t(7293),o=t(4848);function r({className:e}){return(0,o.jsx)(l.A,{type:"caution",title:(0,o.jsx)(a.Rc,{}),className:(0,s.A)(e,i.G.common.unlistedBanner),children:(0,o.jsx)(a.Uh,{})})}function c(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.AE,{}),(0,o.jsx)(r,{...e})]})}},4084:(e,n,t)=>{t.d(n,{AE:()=>r,Rc:()=>l,TT:()=>d,Uh:()=>o,Yh:()=>c});t(6540);var s=t(1312),a=t(5260),i=t(4848);function l(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function r(){return(0,i.jsx)(a.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(s.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},4267:(e,n,t)=>{t.d(n,{A:()=>r});t(6540);var s=t(4164),a=t(1312),i=t(7559),l=t(3025),o=t(4848);function r({className:e}){const n=(0,l.r)();return n.badge?(0,o.jsx)("span",{className:(0,s.A)(e,i.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(a.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},5195:(e,n,t)=>{t.d(n,{A:()=>v});var s=t(6540),a=t(6342);function i(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n}));const s=[];return n.forEach((e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):s.push(a)})),s}function l({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return e.flatMap((e=>{const s=l({toc:e.children,minHeadingLevel:n,maxHeadingLevel:t});return function(e){return e.level>=n&&e.level<=t}(e)?[{...e,children:s}]:s}))}function o(e){const n=e.getBoundingClientRect();return n.top===n.bottom?o(e.parentNode):n}function r(e,{anchorTopOffset:n}){const t=e.find((e=>o(e).top>=n));if(t){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,s.useRef)(void 0),t=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function({minHeadingLevel:e,maxHeadingLevel:n}){const t=[];for(let s=e;s<=n;s+=1)t.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(t.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,t])}var u=t(8774),m=t(4848);function h({toc:e,className:n,linkClassName:t,isChild:s}){return e.length?(0,m.jsx)("ul",{className:s?void 0:n,children:e.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:t??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:n,linkClassName:t})]},e.id)))}):null}const b=s.memo(h);function v({toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:t="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:c,...u}){const h=(0,a.p)(),v=r??h.tableOfContents.minHeadingLevel,x=c??h.tableOfContents.maxHeadingLevel,g=function({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return(0,s.useMemo)((()=>l({toc:i(e),minHeadingLevel:n,maxHeadingLevel:t})),[e,n,t])}({toc:e,minHeadingLevel:v,maxHeadingLevel:x});return d((0,s.useMemo)((()=>{if(t&&o)return{linkClassName:t,linkActiveClassName:o,minHeadingLevel:v,maxHeadingLevel:x}}),[t,o,v,x])),(0,m.jsx)(b,{toc:g,className:n,linkClassName:t,...u})}},6133:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var s=t(4164),a=t(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=t(4848);function o({permalink:e,label:n,count:t,description:o}){return(0,l.jsxs)(a.A,{rel:"tag",href:e,title:o,className:(0,s.A)(i.tag,t?i.tagWithCount:i.tagRegular),children:[n,t&&(0,l.jsx)("span",{children:t})]})}},7719:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var s=t(4164),a=t(1312),i=t(9022),l=t(4848);function o(e){const{className:n,previous:t,next:o}=e;return(0,l.jsxs)("nav",{className:(0,s.A)(n,"pagination-nav"),"aria-label":(0,a.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,l.jsx)(i.A,{...t,subLabel:(0,l.jsx)(a.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),o&&(0,l.jsx)(i.A,{...o,subLabel:(0,l.jsx)(a.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},7763:(e,n,t)=>{t.d(n,{A:()=>c});t(6540);var s=t(4164),a=t(5195);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=t(4848);const o="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c({className:e,...n}){return(0,l.jsx)("div",{className:(0,s.A)(i.tableOfContents,"thin-scrollbar",e),children:(0,l.jsx)(a.A,{...n,linkClassName:o,linkActiveClassName:r})})}},9022:(e,n,t)=>{t.d(n,{A:()=>l});t(6540);var s=t(4164),a=t(8774),i=t(4848);function l(e){const{permalink:n,title:t,subLabel:l,isNext:o}=e;return(0,i.jsxs)(a.A,{className:(0,s.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:n,children:[l&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,i.jsx)("div",{className:"pagination-nav__label",children:t})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/1a64de69.22893b6e.js b/docs/assets/js/1a64de69.844e372c.js similarity index 69% rename from docs/assets/js/1a64de69.22893b6e.js rename to docs/assets/js/1a64de69.844e372c.js index 4e9a6ac1..e55cfef9 100644 --- a/docs/assets/js/1a64de69.22893b6e.js +++ b/docs/assets/js/1a64de69.844e372c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3645],{1694:a=>{a.exports=JSON.parse('{"tag":{"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho","allTagsPath":"/BharatMLStack/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/meesho","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3645],{1694:a=>{a.exports=JSON.parse('{"tag":{"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho","allTagsPath":"/BharatMLStack/blog/tags","count":5,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/meesho","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/1f391b9e.4acd5995.js b/docs/assets/js/1f391b9e.4acd5995.js new file mode 100644 index 00000000..7ffe71ca --- /dev/null +++ b/docs/assets/js/1f391b9e.4acd5995.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6061],{1689:(e,n,t)=>{t.d(n,{A:()=>d});t(6540);var a=t(4164),i=t(4084),s=t(7559),r=t(7293),l=t(4848);function c({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(i.Yh,{}),className:(0,a.A)(e,s.G.common.draftBanner),children:(0,l.jsx)(i.TT,{})})}var o=t(2234);function d({metadata:e}){const{unlisted:n,frontMatter:t}=e;return(0,l.jsxs)(l.Fragment,{children:[(n||t.unlisted)&&(0,l.jsx)(o.A,{}),t.draft&&(0,l.jsx)(c,{})]})}},2234:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var a=t(4164),i=t(7559),s=t(4084),r=t(7293),l=t(4848);function c({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(s.Rc,{}),className:(0,a.A)(e,i.G.common.unlistedBanner),children:(0,l.jsx)(s.Uh,{})})}function o(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.AE,{}),(0,l.jsx)(c,{...e})]})}},4084:(e,n,t)=>{t.d(n,{AE:()=>c,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>o});t(6540);var a=t(1312),i=t(5260),s=t(4848);function r(){return(0,s.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,s.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,s.jsx)(i.A,{children:(0,s.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function o(){return(0,s.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,s.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},5195:(e,n,t)=>{t.d(n,{A:()=>v});var a=t(6540),i=t(6342);function s(e){const n=e.map(e=>({...e,parentIndex:-1,children:[]})),t=Array(7).fill(-1);n.forEach((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n});const a=[];return n.forEach(e=>{const{parentIndex:t,...i}=e;t>=0?n[t].children.push(i):a.push(i)}),a}function r({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return e.flatMap(e=>{const a=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:t});return function(e){return e.level>=n&&e.level<=t}(e)?[{...e,children:a}]:a})}function l(e){const n=e.getBoundingClientRect();return n.top===n.bottom?l(e.parentNode):n}function c(e,{anchorTopOffset:n}){const t=e.find(e=>l(e).top>=n);if(t){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight},[n]),e}function d(e){const n=(0,a.useRef)(void 0),t=o();(0,a.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:i,minHeadingLevel:s,maxHeadingLevel:r}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),l=function({minHeadingLevel:e,maxHeadingLevel:n}){const t=[];for(let a=e;a<=n;a+=1)t.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(t.join()))}({minHeadingLevel:s,maxHeadingLevel:r}),o=c(l,{anchorTopOffset:t.current}),d=e.find(e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e));e.forEach(e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(i),e.classList.add(i),n.current=e):e.classList.remove(i)}(e,e===d)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[e,t])}var m=t(8774),u=t(4848);function f({toc:e,className:n,linkClassName:t,isChild:a}){return e.length?(0,u.jsx)("ul",{className:a?void 0:n,children:e.map(e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.A,{to:`#${e.id}`,className:t??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(f,{isChild:!0,toc:e.children,className:n,linkClassName:t})]},e.id))}):null}const h=a.memo(f);function v({toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:t="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:c,maxHeadingLevel:o,...m}){const f=(0,i.p)(),v=c??f.tableOfContents.minHeadingLevel,x=o??f.tableOfContents.maxHeadingLevel,g=function({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return(0,a.useMemo)(()=>r({toc:s(e),minHeadingLevel:n,maxHeadingLevel:t}),[e,n,t])}({toc:e,minHeadingLevel:v,maxHeadingLevel:x});return d((0,a.useMemo)(()=>{if(t&&l)return{linkClassName:t,linkActiveClassName:l,minHeadingLevel:v,maxHeadingLevel:x}},[t,l,v,x])),(0,u.jsx)(h,{toc:g,className:n,linkClassName:t,...m})}},7763:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var a=t(4164),i=t(5195);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var r=t(4848);const l="table-of-contents__link toc-highlight",c="table-of-contents__link--active";function o({className:e,...n}){return(0,r.jsx)("div",{className:(0,a.A)(s.tableOfContents,"thin-scrollbar",e),children:(0,r.jsx)(i.A,{...n,linkClassName:l,linkActiveClassName:c})})}},7973:(e,n,t)=>{t.r(n),t.d(n,{default:()=>f});t(6540);var a=t(4164),i=t(5500),s=t(7559),r=t(1656),l=t(3253),c=t(7763),o=t(1689),d=t(4336);const m={mdxPageWrapper:"mdxPageWrapper_j9I6"};var u=t(4848);function f(e){const{content:n}=e,{metadata:t,assets:f}=n,{title:h,editUrl:v,description:x,frontMatter:g,lastUpdatedBy:p,lastUpdatedAt:j}=t,{keywords:A,wrapperClassName:b,hide_table_of_contents:L}=g,N=f.image??g.image,C=!!(v||j||p);return(0,u.jsx)(i.e3,{className:(0,a.A)(b??s.G.wrapper.mdxPages,s.G.page.mdxPage),children:(0,u.jsxs)(r.A,{children:[(0,u.jsx)(i.be,{title:h,description:x,keywords:A,image:N}),(0,u.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,u.jsxs)("div",{className:(0,a.A)("row",m.mdxPageWrapper),children:[(0,u.jsxs)("div",{className:(0,a.A)("col",!L&&"col--8"),children:[(0,u.jsx)(o.A,{metadata:t}),(0,u.jsx)("article",{children:(0,u.jsx)(l.A,{children:(0,u.jsx)(n,{})})}),C&&(0,u.jsx)(d.A,{className:(0,a.A)("margin-top--sm",s.G.pages.pageFooterEditMetaRow),editUrl:v,lastUpdatedAt:j,lastUpdatedBy:p})]}),!L&&n.toc.length>0&&(0,u.jsx)("div",{className:"col col--2",children:(0,u.jsx)(c.A,{toc:n.toc,minHeadingLevel:g.toc_min_heading_level,maxHeadingLevel:g.toc_max_heading_level})})]})})]})})}}}]); \ No newline at end of file diff --git a/docs/assets/js/1f391b9e.8e4379a0.js b/docs/assets/js/1f391b9e.8e4379a0.js deleted file mode 100644 index 76c76713..00000000 --- a/docs/assets/js/1f391b9e.8e4379a0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6061],{1689:(e,n,t)=>{t.d(n,{A:()=>d});t(6540);var a=t(4164),i=t(4084),s=t(7559),r=t(7293),l=t(4848);function c({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(i.Yh,{}),className:(0,a.A)(e,s.G.common.draftBanner),children:(0,l.jsx)(i.TT,{})})}var o=t(2234);function d({metadata:e}){const{unlisted:n,frontMatter:t}=e;return(0,l.jsxs)(l.Fragment,{children:[(n||t.unlisted)&&(0,l.jsx)(o.A,{}),t.draft&&(0,l.jsx)(c,{})]})}},2234:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var a=t(4164),i=t(4084),s=t(7559),r=t(7293),l=t(4848);function c({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(i.Rc,{}),className:(0,a.A)(e,s.G.common.unlistedBanner),children:(0,l.jsx)(i.Uh,{})})}function o(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.AE,{}),(0,l.jsx)(c,{...e})]})}},4084:(e,n,t)=>{t.d(n,{AE:()=>c,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>o});t(6540);var a=t(1312),i=t(5260),s=t(4848);function r(){return(0,s.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,s.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,s.jsx)(i.A,{children:(0,s.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function o(){return(0,s.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,s.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},5195:(e,n,t)=>{t.d(n,{A:()=>v});var a=t(6540),i=t(6342);function s(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...i}=e;t>=0?n[t].children.push(i):a.push(i)})),a}function r({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return e.flatMap((e=>{const a=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:t});return function(e){return e.level>=n&&e.level<=t}(e)?[{...e,children:a}]:a}))}function l(e){const n=e.getBoundingClientRect();return n.top===n.bottom?l(e.parentNode):n}function c(e,{anchorTopOffset:n}){const t=e.find((e=>l(e).top>=n));if(t){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,a.useRef)(void 0),t=o();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:i,minHeadingLevel:s,maxHeadingLevel:r}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),l=function({minHeadingLevel:e,maxHeadingLevel:n}){const t=[];for(let a=e;a<=n;a+=1)t.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(t.join()))}({minHeadingLevel:s,maxHeadingLevel:r}),o=c(l,{anchorTopOffset:t.current}),d=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(i),e.classList.add(i),n.current=e):e.classList.remove(i)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,t])}var m=t(8774),u=t(4848);function f({toc:e,className:n,linkClassName:t,isChild:a}){return e.length?(0,u.jsx)("ul",{className:a?void 0:n,children:e.map((e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.A,{to:`#${e.id}`,className:t??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(f,{isChild:!0,toc:e.children,className:n,linkClassName:t})]},e.id)))}):null}const h=a.memo(f);function v({toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:t="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:c,maxHeadingLevel:o,...m}){const f=(0,i.p)(),v=c??f.tableOfContents.minHeadingLevel,x=o??f.tableOfContents.maxHeadingLevel,g=function({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return(0,a.useMemo)((()=>r({toc:s(e),minHeadingLevel:n,maxHeadingLevel:t})),[e,n,t])}({toc:e,minHeadingLevel:v,maxHeadingLevel:x});return d((0,a.useMemo)((()=>{if(t&&l)return{linkClassName:t,linkActiveClassName:l,minHeadingLevel:v,maxHeadingLevel:x}}),[t,l,v,x])),(0,u.jsx)(h,{toc:g,className:n,linkClassName:t,...m})}},7763:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var a=t(4164),i=t(5195);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var r=t(4848);const l="table-of-contents__link toc-highlight",c="table-of-contents__link--active";function o({className:e,...n}){return(0,r.jsx)("div",{className:(0,a.A)(s.tableOfContents,"thin-scrollbar",e),children:(0,r.jsx)(i.A,{...n,linkClassName:l,linkActiveClassName:c})})}},7973:(e,n,t)=>{t.r(n),t.d(n,{default:()=>f});t(6540);var a=t(4164),i=t(5500),s=t(7559),r=t(1656),l=t(3253),c=t(7763),o=t(1689),d=t(4336);const m={mdxPageWrapper:"mdxPageWrapper_j9I6"};var u=t(4848);function f(e){const{content:n}=e,{metadata:t,assets:f}=n,{title:h,editUrl:v,description:x,frontMatter:g,lastUpdatedBy:p,lastUpdatedAt:j}=t,{keywords:A,wrapperClassName:b,hide_table_of_contents:L}=g,N=f.image??g.image,C=!!(v||j||p);return(0,u.jsx)(i.e3,{className:(0,a.A)(b??s.G.wrapper.mdxPages,s.G.page.mdxPage),children:(0,u.jsxs)(r.A,{children:[(0,u.jsx)(i.be,{title:h,description:x,keywords:A,image:N}),(0,u.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,u.jsxs)("div",{className:(0,a.A)("row",m.mdxPageWrapper),children:[(0,u.jsxs)("div",{className:(0,a.A)("col",!L&&"col--8"),children:[(0,u.jsx)(o.A,{metadata:t}),(0,u.jsx)("article",{children:(0,u.jsx)(l.A,{children:(0,u.jsx)(n,{})})}),C&&(0,u.jsx)(d.A,{className:(0,a.A)("margin-top--sm",s.G.pages.pageFooterEditMetaRow),editUrl:v,lastUpdatedAt:j,lastUpdatedBy:p})]}),!L&&n.toc.length>0&&(0,u.jsx)("div",{className:"col col--2",children:(0,u.jsx)(c.A,{toc:n.toc,minHeadingLevel:g.toc_min_heading_level,maxHeadingLevel:g.toc_max_heading_level})})]})})]})})}}}]); \ No newline at end of file diff --git a/docs/assets/js/252a9097.3acfe41e.js b/docs/assets/js/252a9097.3acfe41e.js new file mode 100644 index 00000000..291cf393 --- /dev/null +++ b/docs/assets/js/252a9097.3acfe41e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4424],{248:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"inferflow/v1.0.0/architecture","title":"Architecture","description":"Inferflow is part of BharatMLStack, a graph-driven feature retrieval and model inference orchestration engine built in Go. It eliminates the need for custom feature retrieval code by using configurable DAG topologies to dynamically resolve entity relationships, fetch features from the Online Feature Store, and orchestrate model scoring \u2014 all driven by configuration stored in etcd.","source":"@site/docs/inferflow/v1.0.0/architecture.md","sourceDirName":"inferflow/v1.0.0","slug":"/inferflow/v1.0.0/architecture","permalink":"/BharatMLStack/inferflow/v1.0.0/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/inferflow/v1.0.0/architecture.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Architecture","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"v1.0.0","permalink":"/BharatMLStack/inferflow/v1.0.0"},"next":{"title":"Key Functionalities","permalink":"/BharatMLStack/inferflow/v1.0.0/functionalities"}}');var i=r(4848),s=r(8453);const o={title:"Architecture",sidebar_position:1},l="BharatMLStack - Inferflow",c={},d=[{value:"Overview",id:"overview",level:2},{value:"High-Level Architecture",id:"high-level-architecture",level:2},{value:"Core Components",id:"core-components",level:2},{value:"1. gRPC Server",id:"1-grpc-server",level:3},{value:"2. DAG Topology Executor",id:"2-dag-topology-executor",level:3},{value:"3. Component Types",id:"3-component-types",level:3},{value:"4. ComponentMatrix \u2014 The 2D Result Matrix",id:"4-componentmatrix--the-2d-result-matrix",level:3},{value:"How the matrix evolves through the DAG",id:"how-the-matrix-evolves-through-the-dag",level:4},{value:"Matrix structure",id:"matrix-structure",level:4},{value:"5. Configuration Management (etcd)",id:"5-configuration-management-etcd",level:3},{value:"6. External Integrations",id:"6-external-integrations",level:3},{value:"Online Feature Store (OnFS)",id:"online-feature-store-onfs",level:4},{value:"Predator (Model Serving)",id:"predator-model-serving",level:4},{value:"Numerix (Compute Engine)",id:"numerix-compute-engine",level:4},{value:"Kafka (Inference Logging)",id:"kafka-inference-logging",level:4},{value:"Request Flow",id:"request-flow",level:2},{value:"Observability",id:"observability",level:2},{value:"Metrics (StatsD / Telegraf)",id:"metrics-statsd--telegraf",level:3},{value:"Logging",id:"logging",level:3},{value:"Deployment",id:"deployment",level:2},{value:"Docker",id:"docker",level:3},{value:"Supported Environments",id:"supported-environments",level:3},{value:"Configuration",id:"configuration",level:3},{value:"Target Users",id:"target-users",level:2},{value:"Benefits",id:"benefits",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"bharatmlstack---inferflow",children:"BharatMLStack - Inferflow"})}),"\n",(0,i.jsxs)(n.p,{children:["Inferflow is part of ",(0,i.jsx)(n.strong,{children:"BharatMLStack"}),", a graph-driven feature retrieval and model inference orchestration engine built in ",(0,i.jsx)(n.strong,{children:"Go"}),". It eliminates the need for custom feature retrieval code by using configurable DAG topologies to dynamically resolve entity relationships, fetch features from the Online Feature Store, and orchestrate model scoring \u2014 all driven by configuration stored in ",(0,i.jsx)(n.strong,{children:"etcd"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,i.jsx)(n.p,{children:"In a typical ML serving pipeline, every new model requires bespoke code to:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Fetch features from multiple entities (user, product, user x category, etc.)"}),"\n",(0,i.jsx)(n.li,{children:"Infer intermediate entity relationships (e.g., extract category from product to fetch user x category data)"}),"\n",(0,i.jsx)(n.li,{children:"Orchestrate one or more model inference calls"}),"\n",(0,i.jsx)(n.li,{children:"Handle I/O, batching, and error propagation"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Inferflow abstracts all of this behind a ",(0,i.jsx)(n.strong,{children:"config-driven DAG executor"}),". Given a ",(0,i.jsx)(n.code,{children:"model_config_id"})," and context entities (e.g., ",(0,i.jsx)(n.code,{children:"userId"}),", ",(0,i.jsx)(n.code,{children:"productIds"}),"), it:"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Loads a pre-defined feature retrieval and inference graph from etcd"}),"\n",(0,i.jsx)(n.li,{children:"Executes the graph to resolve entity relationships dynamically"}),"\n",(0,i.jsx)(n.li,{children:"Retrieves features from the Online Feature Store (OnFS) in parallel"}),"\n",(0,i.jsx)(n.li,{children:"Calls model serving endpoints (Predator) and compute services (Numerix)"}),"\n",(0,i.jsx)(n.li,{children:"Returns scored results as a structured response"}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"high-level-architecture",children:"High-Level Architecture"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Inferflow Architecture - DAG Topology Executor",src:r(7748).A+"",width:"2036",height:"1212"})}),"\n",(0,i.jsxs)(n.p,{children:["The diagram shows the internal DAG structure of Inferflow's topology executor. gRPC APIs (Pair, Point, Slate) feed into the DAG, where ",(0,i.jsx)(n.strong,{children:"Feature Init"})," bootstraps the ComponentMatrix. Feature components (FS User, FS Product, FS Region, FS User Cat, FS Region Scat) fetch features from ",(0,i.jsx)(n.strong,{children:"OnFS"})," in parallel and populate columns in the shared ",(0,i.jsx)(n.strong,{children:"2D Result Matrix"}),". Model components (Model A, Model B) call ",(0,i.jsx)(n.strong,{children:"Predator"})," for inference, and compute components call ",(0,i.jsx)(n.strong,{children:"Numerix"})," for operations like reranking. The entire DAG topology is driven by config loaded from ",(0,i.jsx)(n.strong,{children:"etcd"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"core-components",children:"Core Components"}),"\n",(0,i.jsx)(n.h3,{id:"1-grpc-server",children:"1. gRPC Server"}),"\n",(0,i.jsxs)(n.p,{children:["Inferflow exposes its APIs via a gRPC server, with HTTP health endpoints multiplexed on the same port using ",(0,i.jsx)(n.strong,{children:"cmux"}),". The server provides:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Inferflow API"})," \u2014 ",(0,i.jsx)(n.code,{children:"RetrieveModelScore"}),": entity-based feature retrieval and scoring"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Predict API"})," \u2014 ",(0,i.jsx)(n.code,{children:"InferPointWise"}),", ",(0,i.jsx)(n.code,{children:"InferPairWise"}),", ",(0,i.jsx)(n.code,{children:"InferSlateWise"}),": structured inference with targets, pairs, and slates"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"2-dag-topology-executor",children:"2. DAG Topology Executor"}),"\n",(0,i.jsxs)(n.p,{children:["The heart of Inferflow. Each model configuration defines a ",(0,i.jsx)(n.code,{children:"component_dependency"})," map that describes a Directed Acyclic Graph (DAG) of components."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Execution model:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Uses ",(0,i.jsx)(n.strong,{children:"Kahn's algorithm"})," for topological ordering"]}),"\n",(0,i.jsxs)(n.li,{children:["Components at the same level run ",(0,i.jsx)(n.strong,{children:"concurrently"})," in goroutines"]}),"\n",(0,i.jsxs)(n.li,{children:["All components share a mutable ",(0,i.jsx)(n.code,{children:"ComponentMatrix"})," (rows = entity IDs, columns = features/scores)"]}),"\n",(0,i.jsxs)(n.li,{children:["DAG topologies are ",(0,i.jsx)(n.strong,{children:"cached"})," using Murmur3 hashing with Ristretto cache"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Validation:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Cycle detection via in-degree analysis"}),"\n",(0,i.jsxs)(n.li,{children:["Component existence verification against the ",(0,i.jsx)(n.code,{children:"ComponentProvider"})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"3-component-types",children:"3. Component Types"}),"\n",(0,i.jsx)(n.p,{children:"Inferflow defines four types of DAG components:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Component"}),(0,i.jsx)(n.th,{children:"Role"}),(0,i.jsx)(n.th,{children:"External Dependency"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"FeatureInitComponent"})}),(0,i.jsxs)(n.td,{children:["Root node \u2014 initializes the ",(0,i.jsx)(n.code,{children:"ComponentMatrix"})," with entity IDs and schema"]}),(0,i.jsx)(n.td,{children:"None"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"FeatureComponent"})}),(0,i.jsx)(n.td,{children:"Fetches features from the Online Feature Store for a specific entity type"}),(0,i.jsx)(n.td,{children:"OnFS (gRPC)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"PredatorComponent"})}),(0,i.jsx)(n.td,{children:"Calls model serving endpoints for inference scoring"}),(0,i.jsx)(n.td,{children:"Predator / Helix (gRPC)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"NumerixComponent"})}),(0,i.jsx)(n.td,{children:"Calls compute engine for operations like reranking"}),(0,i.jsx)(n.td,{children:"Numerix (gRPC)"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"4-componentmatrix--the-2d-result-matrix",children:"4. ComponentMatrix \u2014 The 2D Result Matrix"}),"\n",(0,i.jsx)(n.p,{children:"The ComponentMatrix is a shared, mutable 2D data structure that flows through the entire DAG. Every component reads from and writes to this matrix, progressively building a complete feature + score row for each entity."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"DAG Execution & 2D Matrix Flow",src:r(3066).A+"",width:"672",height:"778"})}),"\n",(0,i.jsx)(n.h4,{id:"how-the-matrix-evolves-through-the-dag",children:"How the matrix evolves through the DAG"}),"\n",(0,i.jsx)(n.p,{children:"The diagram above illustrates the three execution phases and how the 2D matrix grows at each stage:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Phase 1 \u2014 Feature Retrieval"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"init"})," node creates an empty matrix with one row per target entity ID. Feature components then execute \u2014 first the top-level entities (entity A, entity B) fetch their features from OnFS and populate their columns (shown as colored blocks). Derived entities (entity C, D, E) resolve their keys from the already-populated columns and add more feature columns. At this point the matrix contains all feature data, with each color representing features from a different entity."]}),"\n",(0,i.jsxs)(n.p,{children:["The right side of the diagram shows the matrix being ",(0,i.jsx)(n.strong,{children:"decomposed"})," \u2014 feature columns from different entities are separated into per-model input groups, selecting only the features each model needs."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Phase 2 \u2014 Model Invocation"})}),"\n",(0,i.jsxs)(n.p,{children:["Model X and Model Y each receive their decomposed feature slices, call ",(0,i.jsx)(n.strong,{children:"Predator"})," for inference, and write score columns back into the matrix (shown as new colored columns appended to the right). Multiple models can run in parallel if they don't depend on each other's outputs."]}),"\n",(0,i.jsx)(n.p,{children:"The scores are then decomposed again to prepare inputs for the compute stage."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Phase 3 \u2014 Numerix Compute"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Score Comb"})," node takes score columns from both models, calls ",(0,i.jsx)(n.strong,{children:"Numerix"})," for a final compute operation (e.g., score combination, reranking), and writes the final score column (shown in dark red) into the matrix. The result is a complete row per entity with all features and all scores."]}),"\n",(0,i.jsx)(n.h4,{id:"matrix-structure",children:"Matrix structure"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Property"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Rows"})}),(0,i.jsx)(n.td,{children:"One per target entity ID (e.g., each product being scored)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"String columns"})}),(0,i.jsx)(n.td,{children:"Human-readable values used in responses"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Byte columns"})}),(0,i.jsx)(n.td,{children:"Binary-encoded feature values used for model inputs"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Column naming"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"entity_label:feature_group:feature_name"})})]})]})]}),"\n",(0,i.jsx)(n.p,{children:"Each component only reads the columns it needs and writes to its own columns, enabling safe concurrent execution across independent branches of the DAG."}),"\n",(0,i.jsxs)(n.p,{children:["For slate-based APIs, a companion ",(0,i.jsx)(n.code,{children:"SlateData"})," structure holds per-slate matrices and scores, with ",(0,i.jsx)(n.code,{children:"slate_target_indices"})," mapping slates to rows in the main matrix."]}),"\n",(0,i.jsx)(n.h3,{id:"5-configuration-management-etcd",children:"5. Configuration Management (etcd)"}),"\n",(0,i.jsx)(n.p,{children:"Model configurations are stored in etcd and hot-reloaded via watchers:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Config paths"}),": ",(0,i.jsx)(n.code,{children:"/config/inferflow/services/"}),", ",(0,i.jsx)(n.code,{children:"/model-config"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Watch mechanism"}),": etcd watchers trigger ",(0,i.jsx)(n.code,{children:"ReloadModelConfigMapAndRegisterComponents"})," on any change"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"On reload"}),": Updates ",(0,i.jsx)(n.code,{children:"ConfigMap"}),", re-initializes feature schemas, and re-registers DAG components"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["This means new models or configuration changes go live ",(0,i.jsx)(n.strong,{children:"without redeployment"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"6-external-integrations",children:"6. External Integrations"}),"\n",(0,i.jsx)(n.h4,{id:"online-feature-store-onfs",children:"Online Feature Store (OnFS)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["gRPC client calling ",(0,i.jsx)(n.code,{children:"FeatureService.RetrieveFeatures"})]}),"\n",(0,i.jsx)(n.li,{children:"Batched retrieval with configurable batch size and deadline"}),"\n",(0,i.jsxs)(n.li,{children:["Auth via ",(0,i.jsx)(n.code,{children:"CALLER_ID"})," and ",(0,i.jsx)(n.code,{children:"CALLER_TOKEN"})," metadata"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"predator-model-serving",children:"Predator (Model Serving)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Uses ",(0,i.jsx)(n.code,{children:"helix-client"})," for model inference"]}),"\n",(0,i.jsxs)(n.li,{children:["Supports ",(0,i.jsx)(n.strong,{children:"percentage-based traffic routing"})," across multiple model endpoints"]}),"\n",(0,i.jsx)(n.li,{children:"Configurable calibration and batch sizing"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"numerix-compute-engine",children:"Numerix (Compute Engine)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Uses ",(0,i.jsx)(n.code,{children:"helix-client"})," Numerix client"]}),"\n",(0,i.jsxs)(n.li,{children:["RPC: ",(0,i.jsx)(n.code,{children:"NumerixService.Compute"})," with entity score data"]}),"\n",(0,i.jsx)(n.li,{children:"Used for compute operations like reranking"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"kafka-inference-logging",children:"Kafka (Inference Logging)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Async inference log publishing using ",(0,i.jsx)(n.code,{children:"segmentio/kafka-go"})]}),"\n",(0,i.jsxs)(n.li,{children:["Supports ",(0,i.jsx)(n.strong,{children:"Proto"}),", ",(0,i.jsx)(n.strong,{children:"Arrow"}),", and ",(0,i.jsx)(n.strong,{children:"Parquet"})," serialization formats"]}),"\n",(0,i.jsxs)(n.li,{children:["Configurable sampling via ",(0,i.jsx)(n.code,{children:"LoggingPerc"})," and user-based daily sampling"]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"request-flow",children:"Request Flow"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"1. Client sends gRPC request with model_config_id + entity IDs\n \u2502\n2. Load ModelConfig from etcd-backed ConfigMap\n \u2502\n3. Adapt proto request \u2192 ComponentRequest\n (build ComponentMatrix with entity schema)\n \u2502\n4. Resolve DAG topology from component_dependency config\n \u2502\n5. Execute DAG (Kahn's algorithm, concurrent):\n \u2502\n \u251c\u2500 FeatureInitComponent: populate matrix with entity IDs + schema\n \u2502\n \u251c\u2500 FeatureComponents (parallel): fetch features from OnFS \u2192 fill matrix columns\n \u2502\n \u251c\u2500 PredatorComponent: build feature payloads from matrix \u2192 call model \u2192 write scores\n \u2502\n \u2514\u2500 NumerixComponent: read scores from matrix \u2192 call compute \u2192 write final scores\n \u2502\n6. Build response from matrix columns per ResponseConfig\n \u2502\n7. (Optional) Async Kafka logging of inference features and scores\n \u2502\n8. Return gRPC response to client\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"observability",children:"Observability"}),"\n",(0,i.jsx)(n.h3,{id:"metrics-statsd--telegraf",children:"Metrics (StatsD / Telegraf)"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Metric"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.retrievemodelscore.request.total"})}),(0,i.jsx)(n.td,{children:"Total RetrieveModelScore requests"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.retrievemodelscore.latency"})}),(0,i.jsx)(n.td,{children:"End-to-end latency"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.retrievemodelscore.batch.size"})}),(0,i.jsx)(n.td,{children:"Batch size per request"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"predict.infer.request.total"})}),(0,i.jsx)(n.td,{children:"Total Predict API requests"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"predict.infer.latency"})}),(0,i.jsx)(n.td,{children:"Predict API latency"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.component.execution.total"})}),(0,i.jsx)(n.td,{children:"Per-component execution count"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.component.execution.latency"})}),(0,i.jsx)(n.td,{children:"Per-component latency"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.component.execution.error"})}),(0,i.jsx)(n.td,{children:"Component-level errors"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.component.feature.count"})}),(0,i.jsx)(n.td,{children:"Feature count per component"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.external.api.request.total"})}),(0,i.jsx)(n.td,{children:"External API call count"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.external.api.latency"})}),(0,i.jsx)(n.td,{children:"External API latency"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.component.inmemorycache.request.total"})}),(0,i.jsx)(n.td,{children:"Cache hit/miss total"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.component.inmemorycache.miss"})}),(0,i.jsx)(n.td,{children:"Cache misses"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"inferflow.logging.kafka_sent"})}),(0,i.jsx)(n.td,{children:"Kafka log messages sent"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"logging",children:"Logging"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Structured JSON logging via ",(0,i.jsx)(n.strong,{children:"zerolog"})]}),"\n",(0,i.jsx)(n.li,{children:"Configurable log levels"}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"deployment",children:"Deployment"}),"\n",(0,i.jsx)(n.h3,{id:"docker",children:"Docker"}),"\n",(0,i.jsx)(n.p,{children:"Inferflow ships as a multi-stage Docker image:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Builder"}),": Go 1.19 Alpine with optional Kafka support (librdkafka)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Runtime"}),": Debian 10 slim"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Build command"}),": ",(0,i.jsx)(n.code,{children:'go build -tags musl -ldflags "-extldflags -static" -o server cmd/${module}/main.go'})]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"supported-environments",children:"Supported Environments"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Kubernetes (K8s)"}),"\n",(0,i.jsx)(n.li,{children:"Google Kubernetes Engine (GKE)"}),"\n",(0,i.jsx)(n.li,{children:"Amazon EKS"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(n.p,{children:"All configuration is driven via environment variables (loaded by Viper) and etcd. No config files are required at deployment time."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"target-users",children:"Target Users"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"User"}),(0,i.jsx)(n.th,{children:"Role"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Data Scientists"}),(0,i.jsx)(n.td,{children:"Define model configs and feature retrieval graphs via config \u2014 no code needed"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"ML Engineers"}),(0,i.jsx)(n.td,{children:"Onboard new models by updating etcd config; manage DAG topologies"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Backend Developers"}),(0,i.jsx)(n.td,{children:"Integrate via gRPC SDKs for real-time scoring in application services"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Platform Engineers"}),(0,i.jsx)(n.td,{children:"Deploy, scale, and monitor Inferflow clusters"})]})]})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"benefits",children:"Benefits"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"No-code feature retrieval"})," \u2014 new models need only a config change, not custom code"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Feature consistency"})," \u2014 same graph-driven retrieval ensures identical features across experiments"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Faster iteration"})," \u2014 experiment with new models in minutes, not days"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Concurrent execution"})," \u2014 DAG components run in parallel for minimal latency"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Hot reloading"})," \u2014 model config changes via etcd go live without redeployment"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multi-API support"})," \u2014 PointWise, PairWise, and SlateWise inference patterns out of the box"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Production-grade"})," \u2014 built in Go with gRPC, designed for millions of QPS"]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},3066:(e,n,r)=>{r.d(n,{A:()=>t});const t=r.p+"assets/images/v1.0.0-inferflow-dag-matrix-0f13b51422587e6099cf4ee783844db1.png"},7748:(e,n,r)=>{r.d(n,{A:()=>t});const t=r.p+"assets/images/v1.0.0-inferflow-arch-bce54b3b4f7d3be68fa22dc204529f53.png"},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>l});var t=r(6540);const i={},s=t.createContext(i);function o(e){const n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/2c62ead1.fc5c1b17.js b/docs/assets/js/2c62ead1.fc5c1b17.js new file mode 100644 index 00000000..83e25c6b --- /dev/null +++ b/docs/assets/js/2c62ead1.fc5c1b17.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5801],{1688:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"numerix/v1.0.0/functionalities","title":"Key Functionalities","description":"Overview","source":"@site/docs/numerix/v1.0.0/functionalities.md","sourceDirName":"numerix/v1.0.0","slug":"/numerix/v1.0.0/functionalities","permalink":"/BharatMLStack/numerix/v1.0.0/functionalities","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/numerix/v1.0.0/functionalities.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Key Functionalities","sidebar_position":3},"sidebar":"tutorialSidebar","previous":{"title":"Benchmarks","permalink":"/BharatMLStack/numerix/v1.0.0/benchmarks"},"next":{"title":"Release Notes","permalink":"/BharatMLStack/numerix/v1.0.0/release-notes"}}');var r=n(4848),t=n(8453);const l={title:"Key Functionalities",sidebar_position:3},o="Numerix \u2014 Key Functionalities",a={},c=[{value:"Overview",id:"overview",level:2},{value:"\ud83d\ude80 Core Capabilities",id:"-core-capabilities",level:2},{value:"Expression Evaluation",id:"expression-evaluation",level:3},{value:"Input Formats",id:"input-formats",level:3},{value:"Request Patterns",id:"request-patterns",level:3},{value:"\ud83c\udfaf Developer Experience",id:"-developer-experience",level:2},{value:"gRPC Service",id:"grpc-service",level:3},{value:"Example Call (grpcurl)",id:"example-call-grpcurl",level:3},{value:"\ud83d\udcca Observability",id:"-observability",level:2},{value:"\u2699\ufe0f Configuration & Registry",id:"\ufe0f-configuration--registry",level:2},{value:"\ud83e\uddea Example Scenarios",id:"-example-scenarios",level:2},{value:"Batched evaluation",id:"batched-evaluation",level:3},{value:"Mixed input formats",id:"mixed-input-formats",level:3},{value:"\ud83d\udd27 Tuning Knobs",id:"-tuning-knobs",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const i={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.header,{children:(0,r.jsx)(i.h1,{id:"numerix--key-functionalities",children:"Numerix \u2014 Key Functionalities"})}),"\n",(0,r.jsx)(i.h2,{id:"overview",children:"Overview"}),"\n",(0,r.jsxs)(i.p,{children:["Numerix evaluates mathematical expressions over feature matrices with a simple, low-latency gRPC surface. Each request references a ",(0,r.jsx)(i.code,{children:"compute_id"}),"; Numerix resolves a postfix expression, maps variables to input columns, and evaluates it over fp32/fp64 vectors with compiler-assisted SIMD."]}),"\n",(0,r.jsx)(i.h2,{id:"-core-capabilities",children:"\ud83d\ude80 Core Capabilities"}),"\n",(0,r.jsx)(i.h3,{id:"expression-evaluation",children:"Expression Evaluation"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Postfix execution"}),": Linear-time, stack-based evaluation over aligned vectors."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Vectorized math"}),": Compiler autovectorization (NEON/SVE on ARM, SSE/AVX on x86) \u2014 no handwritten intrinsics."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Typed compute"}),": Inputs converted to ",(0,r.jsx)(i.code,{children:"fp32"})," or ",(0,r.jsx)(i.code,{children:"fp64"})," for predictable performance."]}),"\n"]}),"\n",(0,r.jsx)(i.h3,{id:"input-formats",children:"Input Formats"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Strings"}),": Easy-to-produce feature values (converted internally)."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Bytes"}),": Efficient wire format for high-throughput paths."]}),"\n"]}),"\n",(0,r.jsx)(i.h3,{id:"request-patterns",children:"Request Patterns"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Single entity or batch"}),": Multiple ",(0,r.jsx)(i.code,{children:"entity_scores"})," per call."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Schema-driven"}),": Column order in ",(0,r.jsx)(i.code,{children:"schema"})," drives variable mapping in expressions."]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"-developer-experience",children:"\ud83c\udfaf Developer Experience"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"gRPC API"}),": Simple single RPC \u2014 ",(0,r.jsx)(i.code,{children:"Numerix/Compute"}),"."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Protobuf schema"}),": Language-agnostic client generation."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Deterministic behavior"}),": No parsing at request time; expression resolved from registry."]}),"\n"]}),"\n",(0,r.jsx)(i.h3,{id:"grpc-service",children:"gRPC Service"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-protobuf",children:"service Numerix {\n rpc Compute(NumerixRequestProto) returns (NumerixResponseProto);\n}\n"})}),"\n",(0,r.jsx)(i.h3,{id:"example-call-grpcurl",children:"Example Call (grpcurl)"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{className:"language-bash",children:'grpcurl -plaintext \\\n -import-path ./numerix/src/protos/proto \\\n -proto numerix.proto \\\n -d \'{\n "entityScoreData": {\n "schema": ["feature1", "feature2"],\n "entityScores": [ { "stringData": { "values": ["1.0", "2.0"] } } ],\n "computeId": "1001",\n "dataType": "fp32"\n }\n }\' \\\n localhost:8080 numerix.Numerix/Compute\n'})}),"\n",(0,r.jsx)(i.h2,{id:"-observability",children:"\ud83d\udcca Observability"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Datadog/DogStatsD"}),": Latency (P50/P95/P99), RPS, error rate via UDP client."]}),"\n",(0,r.jsxs)(i.li,{children:["Optional ",(0,r.jsx)(i.code,{children:"/metrics"})," endpoint for local/adhoc debugging."]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"\ufe0f-configuration--registry",children:"\u2699\ufe0f Configuration & Registry"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"etcd registry"}),": ",(0,r.jsx)(i.code,{children:"compute_id (int) \u2192 postfix expression"})," mapping."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Environment-driven config"}),": endpoints, timeouts, sampling rate."]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"-example-scenarios",children:"\ud83e\uddea Example Scenarios"}),"\n",(0,r.jsx)(i.h3,{id:"batched-evaluation",children:"Batched evaluation"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:["Submit multiple entities in one call to reduce RPC overhead; evaluate the same ",(0,r.jsx)(i.code,{children:"compute_id"})," across all rows."]}),"\n"]}),"\n",(0,r.jsx)(i.h3,{id:"mixed-input-formats",children:"Mixed input formats"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsx)(i.li,{children:"Start with string inputs for ease; migrate to bytes for performance without changing the expression or API."}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"-tuning-knobs",children:"\ud83d\udd27 Tuning Knobs"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Data type"}),": choose ",(0,r.jsx)(i.code,{children:"fp32"})," (speed) vs ",(0,r.jsx)(i.code,{children:"fp64"})," (precision)."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Batch size"}),": tune number of entities per call for your p99 vs throughput goals."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.strong,{children:"Sampling rate"}),": adjust Datadog metric sampling to balance signal vs cost."]}),"\n"]}),"\n",(0,r.jsx)(i.hr,{}),"\n",(0,r.jsx)(i.h2,{id:"contributing",children:"Contributing"}),"\n",(0,r.jsxs)(i.p,{children:["We welcome contributions from the community! Please see our ",(0,r.jsx)(i.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,r.jsx)(i.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:["\ud83d\udcac ",(0,r.jsx)(i.strong,{children:"Discord"}),": Join our ",(0,r.jsx)(i.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,r.jsxs)(i.li,{children:["\ud83d\udc1b ",(0,r.jsx)(i.strong,{children:"Issues"}),": Report bugs and request features on ",(0,r.jsx)(i.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,r.jsxs)(i.li,{children:["\ud83d\udce7 ",(0,r.jsx)(i.strong,{children:"Email"}),": Contact us at ",(0,r.jsx)(i.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"license",children:"License"}),"\n",(0,r.jsxs)(i.p,{children:["BharatMLStack is open-source software licensed under the ",(0,r.jsx)(i.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,r.jsx)(i.hr,{}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function u(e={}){const{wrapper:i}={...(0,t.R)(),...e.components};return i?(0,r.jsx)(i,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,i,n)=>{n.d(i,{R:()=>l,x:()=>o});var s=n(6540);const r={},t=s.createContext(r);function l(e){const i=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(t.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/2d865531.3ec70534.js b/docs/assets/js/2d865531.3ec70534.js new file mode 100644 index 00000000..d2d66fc0 --- /dev/null +++ b/docs/assets/js/2d865531.3ec70534.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9197],{4153:t=>{t.exports=JSON.parse('{"authors":[{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null,"count":3},{"name":"Aditya Kumar","title":"Lead Software Engineer @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null,"count":2},{"name":"Jigar Dave","title":"Lead Software Engineer @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null,"count":2},{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null,"count":3},{"name":"Bhawani Singh","title":"Architect @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null,"count":2},{"name":"Mohit Kumar","title":"SDE-III @ Meesho","url":"https://github.com/kmohit00","imageURL":"https://github.com/kmohit00.png","key":"mohit","page":null,"count":0}]}')}}]); \ No newline at end of file diff --git a/docs/assets/js/2d865531.a5005531.js b/docs/assets/js/2d865531.a5005531.js deleted file mode 100644 index f959c03e..00000000 --- a/docs/assets/js/2d865531.a5005531.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9197],{4153:t=>{t.exports=JSON.parse('{"authors":[{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null,"count":1},{"name":"Aditya Kumar","title":"SDE-III @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null,"count":1},{"name":"Jigar Dave","title":"SDE-IV @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null,"count":1},{"name":"Jaya Kumar","title":"MLE-III @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null,"count":0},{"name":"Bhawani Singh","title":"SDE-IV @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null,"count":1},{"name":"Mohit Kumar","title":"SDE-III @ Meesho","url":"https://github.com/kmohit00","imageURL":"https://github.com/kmohit00.png","key":"mohit","page":null,"count":0}]}')}}]); \ No newline at end of file diff --git a/docs/assets/js/3216e812.877aa30c.js b/docs/assets/js/3216e812.877aa30c.js new file mode 100644 index 00000000..0c4e114e --- /dev/null +++ b/docs/assets/js/3216e812.877aa30c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4771],{1494:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"v1.0.0","description":"Numerix v1.0.0","slug":"/numerix/v1.0.0","permalink":"/BharatMLStack/numerix/v1.0.0","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Numerix","permalink":"/BharatMLStack/category/numerix"},"next":{"title":"Architecture","permalink":"/BharatMLStack/numerix/v1.0.0/architecture"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/393be207.81b456e5.js b/docs/assets/js/393be207.6e979fd2.js similarity index 80% rename from docs/assets/js/393be207.81b456e5.js rename to docs/assets/js/393be207.6e979fd2.js index 044303c5..ff548d9e 100644 --- a/docs/assets/js/393be207.81b456e5.js +++ b/docs/assets/js/393be207.6e979fd2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4134],{591:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"type":"mdx","permalink":"/BharatMLStack/markdown-page","source":"@site/src/pages/markdown-page.md","title":"Markdown page example","description":"You don\'t need React to write simple standalone pages.","frontMatter":{"title":"Markdown page example"},"unlisted":false}');var o=n(4848),r=n(8453);const s={title:"Markdown page example"},c="Markdown page example",p={},d=[];function i(e){const t={h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"markdown-page-example",children:"Markdown page example"})}),"\n",(0,o.jsx)(t.p,{children:"You don't need React to write simple standalone pages."})]})}function l(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>c});var a=n(6540);const o={},r=a.createContext(o);function s(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),a.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4134],{591:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"type":"mdx","permalink":"/BharatMLStack/markdown-page","source":"@site/src/pages/markdown-page.md","title":"Markdown page example","description":"You don\'t need React to write simple standalone pages.","frontMatter":{"title":"Markdown page example"},"unlisted":false}');var o=n(4848),r=n(8453);const s={title:"Markdown page example"},c="Markdown page example",p={},d=[];function i(e){const t={h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"markdown-page-example",children:"Markdown page example"})}),"\n",(0,o.jsx)(t.p,{children:"You don't need React to write simple standalone pages."})]})}function l(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>c});var a=n(6540);const o={},r=a.createContext(o);function s(e){const t=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),a.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/3980073a.4ab85476.js b/docs/assets/js/3980073a.43116f8b.js similarity index 71% rename from docs/assets/js/3980073a.4ab85476.js rename to docs/assets/js/3980073a.43116f8b.js index a2b5d33b..482c5b6e 100644 --- a/docs/assets/js/3980073a.4ab85476.js +++ b/docs/assets/js/3980073a.43116f8b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[940],{3840:t=>{t.exports=JSON.parse('{"tag":{"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store","allTagsPath":"/BharatMLStack/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/interaction-store","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[940],{3840:t=>{t.exports=JSON.parse('{"tag":{"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store","allTagsPath":"/BharatMLStack/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/interaction-store","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/3aeb33c7.b4a8c40f.js b/docs/assets/js/3aeb33c7.b4a8c40f.js new file mode 100644 index 00000000..854f0ff5 --- /dev/null +++ b/docs/assets/js/3aeb33c7.b4a8c40f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[974],{5969:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-five","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-five/index.md","source":"@site/blog/bharatmlstack-history/post-five/index.md","title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","description":"BharatMLStack","date":"2025-06-02T00:00:00.000Z","tags":[{"inline":true,"label":"llm","permalink":"/BharatMLStack/blog/tags/llm"},{"inline":true,"label":"vllm","permalink":"/BharatMLStack/blog/tags/vllm"},{"inline":true,"label":"tensorrt-llm","permalink":"/BharatMLStack/blog/tags/tensorrt-llm"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":4.93,"hasTruncateMarker":false,"authors":[{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null}],"frontMatter":{"slug":"post-five","title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","authors":["jaya"],"date":"2025-6-2","tags":["llm","vllm","tensorrt-llm","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"nextItem":{"title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","permalink":"/BharatMLStack/blog/post-three"}}')},7309:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>h,contentTitle:()=>d,default:()=>o,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=i(5969),s=i(4848),l=i(8453);const r={slug:"post-five",title:"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale",authors:["jaya"],date:"2025-6-2",tags:["llm","vllm","tensorrt-llm","mlplatform","meesho","bharatmlstack"]},d=void 0,h={authorsImageUrls:[void 0]},c=[{value:"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale",id:"llm-inference-optimization-techniques-engineering-sub-second-latency-at-scale",level:2},{value:"1. Advanced Memory Management: Paged & Prefix KV Caching",id:"1-advanced-memory-management-paged--prefix-kv-caching",level:2},{value:"Paged KV caching",id:"paged-kv-caching",level:3},{value:"KV cache quantization",id:"kv-cache-quantization",level:3},{value:"Prefix caching (the "voice bot" optimizer)",id:"prefix-caching-the-voice-bot-optimizer",level:3},{value:"2. Aggressive Quantization (INT4 AWQ & FP8)",id:"2-aggressive-quantization-int4-awq--fp8",level:2},{value:"INT4 AWQ (Activation-aware Weight Quantization)",id:"int4-awq-activation-aware-weight-quantization",level:3},{value:"FP8 precision",id:"fp8-precision",level:3},{value:"3. Kernel Fusion & Custom Plugins",id:"3-kernel-fusion--custom-plugins",level:2},{value:"4. Inflight (Continuous) Batching",id:"4-inflight-continuous-batching",level:2},{value:"5. Parallelism Strategies: Scaling Beyond One GPU",id:"5-parallelism-strategies-scaling-beyond-one-gpu",level:2},{value:"6. Speculative Decoding",id:"6-speculative-decoding",level:2},{value:"Few Benchmarks",id:"few-benchmarks",level:2},{value:"Search query rewriting",id:"search-query-rewriting",level:3},{value:"Voice bot query",id:"voice-bot-query",level:3},{value:"Conclusion",id:"conclusion",level:2}];function a(e){const t={h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"BharatMLStack",src:i(9200).A+"",width:"1396",height:"460"})}),"\n",(0,s.jsx)(t.h2,{id:"llm-inference-optimization-techniques-engineering-sub-second-latency-at-scale",children:"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale"}),"\n",(0,s.jsx)(t.p,{children:"Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack\u2014from memory management to kernel execution."}),"\n",(0,s.jsx)(t.h2,{id:"1-advanced-memory-management-paged--prefix-kv-caching",children:"1. Advanced Memory Management: Paged & Prefix KV Caching"}),"\n",(0,s.jsx)(t.p,{children:"The most significant bottleneck in LLM inference is not always compute, but memory bandwidth\u2014specifically managing the Key-Value (KV) cache."}),"\n",(0,s.jsx)(t.h3,{id:"paged-kv-caching",children:"Paged KV caching"}),"\n",(0,s.jsxs)(t.p,{children:["Standard caching suffers from fragmentation. We use ",(0,s.jsx)(t.strong,{children:"Paged KV caching"}),", which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory."]}),"\n",(0,s.jsx)(t.h3,{id:"kv-cache-quantization",children:"KV cache quantization"}),"\n",(0,s.jsxs)(t.p,{children:["To further maximize available memory, we implement ",(0,s.jsx)(t.strong,{children:"KV cache quantization"})," (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality."]}),"\n",(0,s.jsx)(t.h3,{id:"prefix-caching-the-voice-bot-optimizer",children:'Prefix caching (the "voice bot" optimizer)'}),"\n",(0,s.jsxs)(t.p,{children:['For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable ',(0,s.jsx)(t.strong,{children:"prefix caching"}),"."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Impact"}),": By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces ",(0,s.jsx)(t.strong,{children:"Time To First Token (TTFT)"})," by skipping redundant computation of the system prompt."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"2-aggressive-quantization-int4-awq--fp8",children:"2. Aggressive Quantization (INT4 AWQ & FP8)"}),"\n",(0,s.jsx)(t.p,{children:"Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy."}),"\n",(0,s.jsx)(t.h3,{id:"int4-awq-activation-aware-weight-quantization",children:"INT4 AWQ (Activation-aware Weight Quantization)"}),"\n",(0,s.jsxs)(t.p,{children:["For the Llama 3 family, we use ",(0,s.jsx)(t.strong,{children:"AWQ"})," to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed."]}),"\n",(0,s.jsx)(t.h3,{id:"fp8-precision",children:"FP8 precision"}),"\n",(0,s.jsxs)(t.p,{children:["For NVIDIA Hopper (H100) architectures, we are exploring ",(0,s.jsx)(t.strong,{children:"FP8 quantization"}),", leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Verification"}),": We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving ",(0,s.jsx)(t.strong,{children:">99% similarity"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"3-kernel-fusion--custom-plugins",children:"3. Kernel Fusion & Custom Plugins"}),"\n",(0,s.jsx)(t.p,{children:"To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Flash attention & FMHA"}),": We enable ",(0,s.jsx)(t.strong,{children:"Fused Multi-Head Attention (FMHA)"})," combined with flash attention to reduce memory reads/writes."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"GEMM plugins"}),": We use specialized ",(0,s.jsx)(t.strong,{children:"GEMM"})," plugins to accelerate transformer linear layers."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Removing input padding"}),": Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"4-inflight-continuous-batching",children:"4. Inflight (Continuous) Batching"}),"\n",(0,s.jsx)(t.p,{children:"Traditional static batching waits for all requests in a batch to finish before returning results\u2014so one long response delays everyone else."}),"\n",(0,s.jsxs)(t.p,{children:["We implement ",(0,s.jsx)(t.strong,{children:"inflight batching"}),": as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones."]}),"\n",(0,s.jsx)(t.h2,{id:"5-parallelism-strategies-scaling-beyond-one-gpu",children:"5. Parallelism Strategies: Scaling Beyond One GPU"}),"\n",(0,s.jsx)(t.p,{children:"For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Tensor parallelism (TP)"}),": Split weight matrices across multiple GPUs (e.g., 4\xd7 L4 or 8\xd7 A100). Each GPU computes a shard and outputs are reduced at every layer."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Pipeline parallelism (PP)"}),": Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B)."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"6-speculative-decoding",children:"6. Speculative Decoding"}),"\n",(0,s.jsxs)(t.p,{children:["To reduce inter-token latency (ITL), we explore ",(0,s.jsx)(t.strong,{children:"speculative decoding"}),"."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Mechanism"}),': A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).']}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Verification"}),": The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"few-benchmarks",children:"Few Benchmarks"}),"\n",(0,s.jsx)(t.p,{children:"Below are a couple of representative use cases and performance numbers."}),"\n",(0,s.jsx)(t.h3,{id:"search-query-rewriting",children:"Search query rewriting"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"LLM"}),": Fine-tuned llama-3.2-1B"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Input & output token length"}),": ~10\u201320"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Response type"}),": Non-streaming"]}),"\n"]}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Inference runtime"}),(0,s.jsx)(t.th,{children:"Hardware"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Max requests/sec"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Max p99 latency"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{children:"4 \xd7 L4 GPUs (multi-GPU)"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1000"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"95 ms"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{children:"1 \xd7 A100 40 GB GPU"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1000"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"69 ms"})]})]})]}),"\n",(0,s.jsx)(t.h3,{id:"voice-bot-query",children:"Voice bot query"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"LLM"}),": Llama-3.1-8B"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Input token length"}),": ~1900\u20132000"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Output token length"}),": ~200"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Response type"}),": Streaming"]}),"\n"]}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Inference runtime"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Concurrency"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"p99 TTFT (ms)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"p99 ITL (ms)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Token throughput (tokens/sec)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Request throughput (req/sec)"}),(0,s.jsx)(t.th,{children:"Hardware"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"36.27"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"22.78"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"45.66"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"0.23"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"49.81"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"23.21"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"89.37"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"0.45"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"55.33"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"36.62"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"153.39"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"0.78"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"8"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"66.5"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"39.11"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"279.88"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1.47"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"16"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"131.8"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"30.39"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"547.8"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2.77"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"32"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"277.22"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"48.02"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"925.7"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"4.78"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"64"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"498.52"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"71.62"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,164.40"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"6.2"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"128"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"677.31"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"120.37"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,445.18"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"7.69"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"256"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,926.31"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"216.88"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,600.81"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"8.52"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"21.17"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"9.24"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"130.05"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"0.68"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"25.78"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"9.21"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"264.5"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1.35"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"28.52"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"10.99"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"437.69"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2.27"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"8"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"34.4"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"12.61"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"760.49"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"3.96"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"16"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"68.03"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"14.32"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,343.80"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"7.01"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"32"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"185.96"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"16.82"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2,287.30"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"11.92"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"64"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"136.87"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"21.17"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"3,625.22"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"18.89"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"128"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"463.78"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"34.15"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"4,456.51"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"23.24"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"256"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"890.12"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"59.18"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"5,188.24"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"27.05"}),(0,s.jsx)(t.td,{children:"A100"})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,s.jsx)(t.p,{children:"High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure."}),"\n",(0,s.jsx)(t.p,{children:"These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications."})]})}function o(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>d});var n=i(6540);const s={},l=n.createContext(s);function r(e){const t=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(l.Provider,{value:t},e.children)}},9200:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"}}]); \ No newline at end of file diff --git a/docs/assets/js/4137b431.2e5cd4ca.js b/docs/assets/js/4137b431.2e5cd4ca.js deleted file mode 100644 index 125ba260..00000000 --- a/docs/assets/js/4137b431.2e5cd4ca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6054],{4019:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Online Feature Store","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Architecture","href":"/BharatMLStack/online-feature-store/v1.0.0/architecture","docId":"online-feature-store/v1.0.0/architecture","unlisted":false},{"type":"link","label":"Data Formats","href":"/BharatMLStack/online-feature-store/v1.0.0/data-formats","docId":"online-feature-store/v1.0.0/data-formats","unlisted":false},{"type":"link","label":"Benchmarks","href":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks","docId":"online-feature-store/v1.0.0/benchmarks","unlisted":false},{"type":"link","label":"Key Functionalities","href":"/BharatMLStack/online-feature-store/v1.0.0/functionalities","docId":"online-feature-store/v1.0.0/functionalities","unlisted":false},{"type":"link","label":"Release Notes","href":"/BharatMLStack/online-feature-store/v1.0.0/release-notes","docId":"online-feature-store/v1.0.0/release-notes","unlisted":false}],"href":"/BharatMLStack/online-feature-store/v1.0.0"}],"href":"/BharatMLStack/category/online-feature-store"},{"type":"category","label":"Quick Start","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Quick Start","href":"/BharatMLStack/quick-start/v1.0.0/quick-start","docId":"quick-start/v1.0.0/quick-start","unlisted":false}]}],"href":"/BharatMLStack/category/quick-start"},{"type":"category","label":"Trufflebox UI","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"User Manual","href":"/BharatMLStack/trufflebox-ui/v1.0.0/userguide","docId":"trufflebox-ui/v1.0.0/userguide","unlisted":false}]}],"href":"/BharatMLStack/category/trufflebox-ui"},{"type":"category","label":"SDKs","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Go SDK","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"GRPC Feature client","href":"/BharatMLStack/sdks/go/v1.0.0/feature_client","docId":"sdks/go/v1.0.0/feature_client","unlisted":false}]}],"href":"/BharatMLStack/category/go-sdk"},{"type":"category","label":"Python SDK","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"GRPC Feature client","href":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client","docId":"sdks/python/v1.0.0/grpc_feature_client","unlisted":false},{"type":"link","label":"Spark client","href":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client","docId":"sdks/python/v1.0.0/spark_feature_push_client","unlisted":false}],"href":"/BharatMLStack/category/v100"}],"href":"/BharatMLStack/category/python-sdk"}],"href":"/BharatMLStack/category/sdks"}]},"docs":{"online-feature-store/v1.0.0/architecture":{"id":"online-feature-store/v1.0.0/architecture","title":"Architecture","description":"The Online Feature Store (OnFS) is part of BharatMLStack, designed to support real-time ML workloads through low-latency feature retrieval and flexible feature ingestion pipelines. It ensures that features generated offline or online are immediately accessible for inference.","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/benchmarks":{"id":"online-feature-store/v1.0.0/benchmarks","title":"Benchmarks","description":"Summary","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/data-formats":{"id":"online-feature-store/v1.0.0/data-formats","title":"Data Formats","description":"In this section we will go through the data-formats which is at the hear of online-feature-store, it\'s inspired form other storage efficient formats like parquet & arrow, but custom made to deliver in constraint environment. The two key data-formats are:","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/functionalities":{"id":"online-feature-store/v1.0.0/functionalities","title":"Key Functionalities","description":"Overview","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/release-notes":{"id":"online-feature-store/v1.0.0/release-notes","title":"Release Notes","description":"Version 1.0.0 \ud83d\ude80","sidebar":"tutorialSidebar"},"quick-start/v1.0.0/quick-start":{"id":"quick-start/v1.0.0/quick-start","title":"Quick Start","description":"Discord","sidebar":"tutorialSidebar"},"sdks/go/v1.0.0/feature_client":{"id":"sdks/go/v1.0.0/feature_client","title":"GRPC Feature client","description":"Build Status","sidebar":"tutorialSidebar"},"sdks/python/v1.0.0/grpc_feature_client":{"id":"sdks/python/v1.0.0/grpc_feature_client","title":"GRPC Feature client","description":"PyPI version","sidebar":"tutorialSidebar"},"sdks/python/v1.0.0/spark_feature_push_client":{"id":"sdks/python/v1.0.0/spark_feature_push_client","title":"Spark client","description":"PyPI version","sidebar":"tutorialSidebar"},"trufflebox-ui/v1.0.0/userguide":{"id":"trufflebox-ui/v1.0.0/userguide","title":"User Manual","description":"This guide covers the complete setup and usage of the Online Feature Store system, including the core services (Online Feature Store and Horizon) and the TruffleBox UI for feature management.","sidebar":"tutorialSidebar"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/4137b431.c6fedbd3.js b/docs/assets/js/4137b431.c6fedbd3.js new file mode 100644 index 00000000..548cc0ed --- /dev/null +++ b/docs/assets/js/4137b431.c6fedbd3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6054],{4019:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Online Feature Store","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Architecture","href":"/BharatMLStack/online-feature-store/v1.0.0/architecture","docId":"online-feature-store/v1.0.0/architecture","unlisted":false},{"type":"link","label":"Data Formats","href":"/BharatMLStack/online-feature-store/v1.0.0/data-formats","docId":"online-feature-store/v1.0.0/data-formats","unlisted":false},{"type":"link","label":"Benchmarks","href":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks","docId":"online-feature-store/v1.0.0/benchmarks","unlisted":false},{"type":"link","label":"Key Functionalities","href":"/BharatMLStack/online-feature-store/v1.0.0/functionalities","docId":"online-feature-store/v1.0.0/functionalities","unlisted":false},{"type":"link","label":"Release Notes","href":"/BharatMLStack/online-feature-store/v1.0.0/release-notes","docId":"online-feature-store/v1.0.0/release-notes","unlisted":false}],"href":"/BharatMLStack/online-feature-store/v1.0.0"}],"href":"/BharatMLStack/category/online-feature-store"},{"type":"category","label":"Inferflow","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Architecture","href":"/BharatMLStack/inferflow/v1.0.0/architecture","docId":"inferflow/v1.0.0/architecture","unlisted":false},{"type":"link","label":"Key Functionalities","href":"/BharatMLStack/inferflow/v1.0.0/functionalities","docId":"inferflow/v1.0.0/functionalities","unlisted":false},{"type":"link","label":"Configuration Guide","href":"/BharatMLStack/inferflow/v1.0.0/configuration","docId":"inferflow/v1.0.0/configuration","unlisted":false},{"type":"link","label":"Release Notes","href":"/BharatMLStack/inferflow/v1.0.0/release-notes","docId":"inferflow/v1.0.0/release-notes","unlisted":false}],"href":"/BharatMLStack/inferflow/v1.0.0"}],"href":"/BharatMLStack/category/inferflow"},{"type":"category","label":"Quick Start","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Quick Start","href":"/BharatMLStack/quick-start/v1.0.0/quick-start","docId":"quick-start/v1.0.0/quick-start","unlisted":false}]}],"href":"/BharatMLStack/category/quick-start"},{"type":"category","label":"Trufflebox UI","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"User Manual","href":"/BharatMLStack/trufflebox-ui/v1.0.0/userguide","docId":"trufflebox-ui/v1.0.0/userguide","unlisted":false}]}],"href":"/BharatMLStack/category/trufflebox-ui"},{"type":"category","label":"SDKs","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Go SDK","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"GRPC Feature client","href":"/BharatMLStack/sdks/go/v1.0.0/feature_client","docId":"sdks/go/v1.0.0/feature_client","unlisted":false}]}],"href":"/BharatMLStack/category/go-sdk"},{"type":"category","label":"Python SDK","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"GRPC Feature client","href":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client","docId":"sdks/python/v1.0.0/grpc_feature_client","unlisted":false},{"type":"link","label":"Spark client","href":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client","docId":"sdks/python/v1.0.0/spark_feature_push_client","unlisted":false}],"href":"/BharatMLStack/category/v100"}],"href":"/BharatMLStack/category/python-sdk"}],"href":"/BharatMLStack/category/sdks"},{"type":"category","label":"Numerix","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"v1.0.0","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Architecture","href":"/BharatMLStack/numerix/v1.0.0/architecture","docId":"numerix/v1.0.0/architecture","unlisted":false},{"type":"link","label":"Benchmarks","href":"/BharatMLStack/numerix/v1.0.0/benchmarks","docId":"numerix/v1.0.0/benchmarks","unlisted":false},{"type":"link","label":"Key Functionalities","href":"/BharatMLStack/numerix/v1.0.0/functionalities","docId":"numerix/v1.0.0/functionalities","unlisted":false},{"type":"link","label":"Release Notes","href":"/BharatMLStack/numerix/v1.0.0/release-notes","docId":"numerix/v1.0.0/release-notes","unlisted":false}],"href":"/BharatMLStack/numerix/v1.0.0"}],"href":"/BharatMLStack/category/numerix"}]},"docs":{"inferflow/v1.0.0/architecture":{"id":"inferflow/v1.0.0/architecture","title":"Architecture","description":"Inferflow is part of BharatMLStack, a graph-driven feature retrieval and model inference orchestration engine built in Go. It eliminates the need for custom feature retrieval code by using configurable DAG topologies to dynamically resolve entity relationships, fetch features from the Online Feature Store, and orchestrate model scoring \u2014 all driven by configuration stored in etcd.","sidebar":"tutorialSidebar"},"inferflow/v1.0.0/configuration":{"id":"inferflow/v1.0.0/configuration","title":"Configuration Guide","description":"Inferflow is fully config-driven. All model onboarding, feature retrieval logic, DAG topology, and inference behavior are controlled through configuration stored in etcd \u2014 with zero code changes required.","sidebar":"tutorialSidebar"},"inferflow/v1.0.0/functionalities":{"id":"inferflow/v1.0.0/functionalities","title":"Key Functionalities","description":"Overview","sidebar":"tutorialSidebar"},"inferflow/v1.0.0/release-notes":{"id":"inferflow/v1.0.0/release-notes","title":"Release Notes","description":"Version 1.0.0","sidebar":"tutorialSidebar"},"numerix/v1.0.0/architecture":{"id":"numerix/v1.0.0/architecture","title":"Architecture","description":"---","sidebar":"tutorialSidebar"},"numerix/v1.0.0/benchmarks":{"id":"numerix/v1.0.0/benchmarks","title":"Benchmarks","description":"This PoC measures the performance of vector addition in Rust with and without compiler SIMD optimizations. Requests consist of repeated fixed-size vector addition operations processed in parallel by the CPU. These results provide perspective on how much faster SIMD makes vectorized computations, and similar improvements are expected for other vectorized operations in Numerix.","sidebar":"tutorialSidebar"},"numerix/v1.0.0/functionalities":{"id":"numerix/v1.0.0/functionalities","title":"Key Functionalities","description":"Overview","sidebar":"tutorialSidebar"},"numerix/v1.0.0/release-notes":{"id":"numerix/v1.0.0/release-notes","title":"Release Notes","description":"Version 1.0.0 \ud83d\ude80","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/architecture":{"id":"online-feature-store/v1.0.0/architecture","title":"Architecture","description":"The Online Feature Store (OnFS) is part of BharatMLStack, designed to support real-time ML workloads through low-latency feature retrieval and flexible feature ingestion pipelines. It ensures that features generated offline or online are immediately accessible for inference.","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/benchmarks":{"id":"online-feature-store/v1.0.0/benchmarks","title":"Benchmarks","description":"Summary","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/data-formats":{"id":"online-feature-store/v1.0.0/data-formats","title":"Data Formats","description":"In this section we will go through the data-formats which is at the hear of online-feature-store, it\'s inspired form other storage efficient formats like parquet & arrow, but custom made to deliver in constraint environment. The two key data-formats are:","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/functionalities":{"id":"online-feature-store/v1.0.0/functionalities","title":"Key Functionalities","description":"Overview","sidebar":"tutorialSidebar"},"online-feature-store/v1.0.0/release-notes":{"id":"online-feature-store/v1.0.0/release-notes","title":"Release Notes","description":"Version 1.0.0 \ud83d\ude80","sidebar":"tutorialSidebar"},"quick-start/v1.0.0/quick-start":{"id":"quick-start/v1.0.0/quick-start","title":"Quick Start","description":"Discord","sidebar":"tutorialSidebar"},"sdks/go/v1.0.0/feature_client":{"id":"sdks/go/v1.0.0/feature_client","title":"GRPC Feature client","description":"Build Status","sidebar":"tutorialSidebar"},"sdks/python/v1.0.0/grpc_feature_client":{"id":"sdks/python/v1.0.0/grpc_feature_client","title":"GRPC Feature client","description":"PyPI version","sidebar":"tutorialSidebar"},"sdks/python/v1.0.0/spark_feature_push_client":{"id":"sdks/python/v1.0.0/spark_feature_push_client","title":"Spark client","description":"PyPI version","sidebar":"tutorialSidebar"},"trufflebox-ui/v1.0.0/userguide":{"id":"trufflebox-ui/v1.0.0/userguide","title":"User Manual","description":"This guide covers the complete setup and usage of the Online Feature Store system, including the core services (Online Feature Store and Horizon) and the TruffleBox UI for feature management.","sidebar":"tutorialSidebar"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/428aafcc.2c1db158.js b/docs/assets/js/428aafcc.2c1db158.js new file mode 100644 index 00000000..813dbcdf --- /dev/null +++ b/docs/assets/js/428aafcc.2c1db158.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5503],{702:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/vss-c482f6eac4c68b3219e4c562a6b717ec.png"},788:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-three","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-three/index.md","source":"@site/blog/bharatmlstack-history/post-three/index.md","title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","description":"BharatMLStack","date":"2024-05-21T00:00:00.000Z","tags":[{"inline":true,"label":"model-inference","permalink":"/BharatMLStack/blog/tags/model-inference"},{"inline":true,"label":"embedding-search","permalink":"/BharatMLStack/blog/tags/embedding-search"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":3.6,"hasTruncateMarker":false,"authors":[{"name":"Aditya Kumar","title":"Lead Software Engineer @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null},{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null}],"frontMatter":{"slug":"post-three","title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","authors":["aditya","jaya","adarsha"],"date":"2024-05-21T00:00:00.000Z","tags":["model-inference","embedding-search","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"prevItem":{"title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","permalink":"/BharatMLStack/blog/post-three"},"nextItem":{"title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","permalink":"/BharatMLStack/blog/post-two"}}')},6e3:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"},7999:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var i=t(788),a=t(4848),r=t(8453);const s={slug:"post-three",title:"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search",authors:["aditya","jaya","adarsha"],date:new Date("2024-05-21T00:00:00.000Z"),tags:["model-inference","embedding-search","mlplatform","meesho","bharatmlstack"]},l=void 0,o={authorsImageUrls:[void 0,void 0,void 0]},d=[{value:"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search",id:"cracking-the-code-scaling-model-inference--real-time-embedding-search",level:2},{value:"Breaking Free from the Scalability Ceiling",id:"breaking-free-from-the-scalability-ceiling",level:2},{value:"The Model Serving Bottleneck\u2014A Wake-Up Call",id:"the-model-serving-bottlenecka-wake-up-call",level:3},{value:"Scaling Triton on GKE",id:"scaling-triton-on-gke",level:3},{value:"Fixing the Cold Start Problem",id:"fixing-the-cold-start-problem",level:3},{value:"Embedding Search: The Last Piece of the Puzzle",id:"embedding-search-the-last-piece-of-the-puzzle",level:2},{value:"Choosing the Right Vector Database",id:"choosing-the-right-vector-database",level:3},{value:"Embedding Freshness & Real-Time Updates",id:"embedding-freshness--real-time-updates",level:3},{value:"Final Takeaways: Scaling Smartly for Real-Time ML",id:"final-takeaways-scaling-smartly-for-real-time-ml",level:2}];function c(e){const n={h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{alt:"BharatMLStack",src:t(6e3).A+"",width:"1396",height:"460"})}),"\n",(0,a.jsx)(n.h2,{id:"cracking-the-code-scaling-model-inference--real-time-embedding-search",children:"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search"}),"\n",(0,a.jsx)(n.p,{children:"By mid-2023, we had transformed our ML stack\u2014building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\ud83d\udd39 Scaling model inference without hitting infrastructure roadblocks"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\udd39 Moving embedding search from batch to real-time for candidate generation"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Here\u2019s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system."}),"\n",(0,a.jsx)(n.h2,{id:"breaking-free-from-the-scalability-ceiling",children:"Breaking Free from the Scalability Ceiling"}),"\n",(0,a.jsx)(n.h3,{id:"the-model-serving-bottlenecka-wake-up-call",children:"The Model Serving Bottleneck\u2014A Wake-Up Call"}),"\n",(0,a.jsx)(n.p,{children:"July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue\u2014scaling our model-serving infrastructure was taking 10\u201315 minutes. In real-time ML, that\u2019s an eternity.\nIn one of our war rooms, we ran a quick experiment:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine."}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Fired requests and compared the outputs with our existing cloud-hosted setup."}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 The results matched\u2014perfectly."}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:'That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn\'t allocate enough compute resources in time. Luckily, they did\u2014but the seed was planted.\nThen in October, just two weeks before MBS, we got an alarming response from our infrastructure team:\n"Node availability may be an issue."\nWith no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?'}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\u2705 p99 latency dropped from 90\u2013100ms to 30\u201340ms"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 Triton handled significantly higher throughput on fewer resources"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 No model changes were needed"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"MBS ran without a hitch, proving that self-hosted inference was the way forward."}),"\n",(0,a.jsx)(n.h3,{id:"scaling-triton-on-gke",children:"Scaling Triton on GKE"}),"\n",(0,a.jsx)(n.p,{children:"This left us with two choices:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"1\ufe0f\u20e3 Port models to a managed cloud inference service, investing time in learning a new deployment stack"}),"\n",(0,a.jsx)(n.li,{children:"2\ufe0f\u20e3 Scale our existing Triton setup on GKE, optimizing for cost and performance"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"We went with Option 2\u2014and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations."}),"\n",(0,a.jsx)(n.h3,{id:"fixing-the-cold-start-problem",children:"Fixing the Cold Start Problem"}),"\n",(0,a.jsx)(n.p,{children:"As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7\u20139 minutes to spin up."}),"\n",(0,a.jsx)(n.p,{children:"After profiling, we found the culprits:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Triton\u2019s base image\u2014a massive 5GB"}),"\n",(0,a.jsx)(n.li,{children:"Model binaries\u2014often 1GB+"}),"\n",(0,a.jsx)(n.li,{children:"Startup delay\u2014mostly due to downloading and initializing these assets"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother."}),"\n",(0,a.jsx)(n.h2,{id:"embedding-search-the-last-piece-of-the-puzzle",children:"Embedding Search: The Last Piece of the Puzzle"}),"\n",(0,a.jsx)(n.p,{children:"By mid-2023, most of our ML stack had gone real-time\u2014except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system."}),"\n",(0,a.jsx)(n.h3,{id:"choosing-the-right-vector-database",children:"Choosing the Right Vector Database"}),"\n",(0,a.jsx)(n.p,{children:"We benchmarked three production-ready vector DBs across key parameters:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Milvus"}),"\n",(0,a.jsx)(n.li,{children:"Qdrant"}),"\n",(0,a.jsx)(n.li,{children:"Weaviate"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"After extensive POCs, Qdrant stood out for its:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\u2705 Blazing-fast search latency on high-dimensional vectors"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 Efficient memory usage, crucial for in-memory workloads"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 Support for upserts and soft deletes, vital for Ads use cases"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 gRPC + REST APIs, making integration seamless"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search\u2014a perfect fit for our needs."}),"\n",(0,a.jsx)(n.h3,{id:"embedding-freshness--real-time-updates",children:"Embedding Freshness & Real-Time Updates"}),"\n",(0,a.jsx)(n.p,{children:"To ensure embeddings stayed up to date, we built a dual ingestion pipeline:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\ud83d\udccc Daily Refresh: A bulk pipeline updated embeddings overnight"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\udccc Real-Time Updates: Ads events triggered immediate upserts/deletes"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:'This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.'}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{alt:"Skye",src:t(702).A+"",width:"1260",height:"644"})}),"\n",(0,a.jsx)(n.h2,{id:"final-takeaways-scaling-smartly-for-real-time-ml",children:"Final Takeaways: Scaling Smartly for Real-Time ML"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Building a custom Triton image reduced cold starts, improving responsiveness"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Qdrant-based embedding search enabled real-time personalization at scale"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"By early 2024, Meesho\u2019s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead."})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>l});var i=t(6540);const a={},r=i.createContext(a);function s(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/45a03d07.6212d749.js b/docs/assets/js/45a03d07.6212d749.js new file mode 100644 index 00000000..9dbe9ea8 --- /dev/null +++ b/docs/assets/js/45a03d07.6212d749.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9955],{8539:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"v1.0.0","description":"Numerix v1.0.0","slug":"/inferflow/v1.0.0","permalink":"/BharatMLStack/inferflow/v1.0.0","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Inferflow","permalink":"/BharatMLStack/category/inferflow"},"next":{"title":"Architecture","permalink":"/BharatMLStack/inferflow/v1.0.0/architecture"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/479eb034.0c88dc68.js b/docs/assets/js/479eb034.fc01692f.js similarity index 70% rename from docs/assets/js/479eb034.0c88dc68.js rename to docs/assets/js/479eb034.fc01692f.js index 560af3f1..7a5850f1 100644 --- a/docs/assets/js/479eb034.0c88dc68.js +++ b/docs/assets/js/479eb034.fc01692f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5425],{9341:a=>{a.exports=JSON.parse('{"tag":{"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform","allTagsPath":"/BharatMLStack/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/mlplatform","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5425],{9341:a=>{a.exports=JSON.parse('{"tag":{"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform","allTagsPath":"/BharatMLStack/blog/tags","count":5,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/mlplatform","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/4af50aac.a113ce2d.js b/docs/assets/js/4af50aac.f9b29cbf.js similarity index 97% rename from docs/assets/js/4af50aac.a113ce2d.js rename to docs/assets/js/4af50aac.f9b29cbf.js index a6058d52..03afe77a 100644 --- a/docs/assets/js/4af50aac.a113ce2d.js +++ b/docs/assets/js/4af50aac.f9b29cbf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1964],{6220:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"sdks/go/v1.0.0/feature_client","title":"GRPC Feature client","description":"Build Status","source":"@site/docs/sdks/go/v1.0.0/feature_client.md","sourceDirName":"sdks/go/v1.0.0","slug":"/sdks/go/v1.0.0/feature_client","permalink":"/BharatMLStack/sdks/go/v1.0.0/feature_client","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/sdks/go/v1.0.0/feature_client.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"GRPC Feature client","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Go SDK","permalink":"/BharatMLStack/category/go-sdk"},"next":{"title":"Python SDK","permalink":"/BharatMLStack/category/python-sdk"}}');var i=t(4848),r=t(8453);const l={title:"GRPC Feature client",sidebar_position:1},o="BharatMLStack Go SDK",a={},c=[{value:"Features",id:"features",level:2},{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Usage",id:"usage",level:2},{value:"Basic Usage",id:"basic-usage",level:3},{value:"Complete Example",id:"complete-example",level:3},{value:"Development",id:"development",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Building",id:"building",level:3},{value:"Testing",id:"testing",level:3},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.img,{src:"https://github.com/Meesho/BharatMLStack/actions/workflows/go-sdk.yml/badge.svg",alt:"Build Status"}),"\n",(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/release-v1.0.0-blue?style=flat",alt:"Static Badge"}),"\n",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/Discord-Join%20Chat-7289da?style=flat&logo=discord&logoColor=white",alt:"Discord"})})]}),"\n",(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"bharatmlstack-go-sdk",children:"BharatMLStack Go SDK"})}),"\n",(0,i.jsx)(n.p,{children:"A Go SDK for interacting with BharatMLStack components, providing easy-to-use client libraries for the Online Feature Store and other services."}),"\n",(0,i.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Online Feature Store Client"}),": Complete gRPC client for feature retrieval and persistence"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multiple API Methods"}),": Support for ",(0,i.jsx)(n.code,{children:"RetrieveFeatures"}),", ",(0,i.jsx)(n.code,{children:"RetrieveDecodedFeatures"}),", and ",(0,i.jsx)(n.code,{children:"PersistFeatures"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Protocol Buffer Support"}),": Generated clients from proto definitions with full type safety"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch Processing"}),": Configurable batch sizes for efficient bulk operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Authentication"}),": Built-in support for caller ID and token-based authentication"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Connection Management"}),": Configurable timeouts, TLS, and connection pooling"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Metrics Integration"}),": Built-in timing and count metrics for monitoring"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Type-Safe API"}),": Strongly typed Go interfaces and data structures"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Test Coverage"}),": Comprehensive test suite with mocking support"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"go get github.com/Meesho/BharatMLStack/go-sdk\n"})}),"\n",(0,i.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(n.p,{children:"The SDK requires a configuration object with the following fields:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Field"}),(0,i.jsx)(n.th,{children:"Type"}),(0,i.jsx)(n.th,{children:"Required"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"Host"})}),(0,i.jsx)(n.td,{children:"string"}),(0,i.jsx)(n.td,{children:"Yes"}),(0,i.jsx)(n.td,{children:'Server hostname (e.g., "localhost", "feature-store.example.com")'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"Port"})}),(0,i.jsx)(n.td,{children:"string"}),(0,i.jsx)(n.td,{children:"Yes"}),(0,i.jsx)(n.td,{children:'Server port (e.g., "8080", "443")'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"CallerId"})}),(0,i.jsx)(n.td,{children:"string"}),(0,i.jsx)(n.td,{children:"Yes"}),(0,i.jsx)(n.td,{children:"Unique identifier for your service/application"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"CallerToken"})}),(0,i.jsx)(n.td,{children:"string"}),(0,i.jsx)(n.td,{children:"Yes"}),(0,i.jsx)(n.td,{children:"Authentication token for API access"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"DeadLine"})}),(0,i.jsx)(n.td,{children:"int"}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{children:"Request timeout in milliseconds (default: 5000)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"PlainText"})}),(0,i.jsx)(n.td,{children:"bool"}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{children:"Use plaintext connection instead of TLS (default: false)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"BatchSize"})}),(0,i.jsx)(n.td,{children:"int"}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{children:"Maximum batch size for bulk operations (default: 50)"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsx)(n.h3,{id:"basic-usage",children:"Basic Usage"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-go",children:'package main\n\nimport (\n "context"\n "log"\n \n "github.com/Meesho/BharatMLStack/go-sdk/pkg/onfs"\n)\n\nfunc main() {\n config := &onfs.Config{\n Host: "localhost",\n Port: "8080",\n PlainText: true, // For local development\n CallerId: "my-service",\n CallerToken: "my-token",\n }\n\n // Initialize client (timing and count can be nil)\n client := onfs.NewClientV1(config, nil, nil)\n \n // Your feature operations here...\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"complete-example",children:"Complete Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-go",children:'package main\n\nimport (\n "context"\n "log"\n "time"\n \n "github.com/Meesho/BharatMLStack/go-sdk/pkg/onfs"\n)\n\nfunc main() {\n // Create configuration\n config := &onfs.Config{\n Host: "localhost",\n Port: "8080",\n DeadLine: 5000, // 5 seconds timeout in milliseconds\n PlainText: true, // Use plaintext connection for local development\n BatchSize: 50, // Optional: batch size for requests\n CallerId: "your-service-id",\n CallerToken: "your-auth-token",\n }\n\n // Timing and count functions (can be nil for basic usage)\n timing := func(name string, value time.Duration, tags []string) {\n log.Printf("Timing: %s took %v with tags %v", name, value, tags)\n }\n count := func(name string, value int64, tags []string) {\n log.Printf("Count: %s = %d with tags %v", name, value, tags)\n }\n\n // Initialize the client\n client := onfs.InitClient(onfs.Version1, config, timing, count)\n // Or alternatively use: client := onfs.NewClientV1(config, timing, count)\n\n ctx := context.Background()\n\n // Example: Retrieve features\n query := &onfs.Query{\n EntityLabel: "user",\n FeatureGroups: []onfs.FeatureGroup{\n {\n Label: "user_features",\n FeatureLabels: []string{"age", "location", "preferences"},\n },\n },\n KeysSchema: []string{"user_id"},\n Keys: []onfs.Keys{\n {Cols: []string{"12345"}},\n {Cols: []string{"67890"}},\n },\n }\n\n result, err := client.RetrieveFeatures(ctx, query)\n if err != nil {\n log.Fatalf("Failed to retrieve features: %v", err)\n }\n\n log.Printf("Retrieved %d rows for entity %s", len(result.Rows), result.EntityLabel)\n\n // Example: Retrieve decoded features (string values)\n decodedResult, err := client.RetrieveDecodedFeatures(ctx, query)\n if err != nil {\n log.Fatalf("Failed to retrieve decoded features: %v", err)\n }\n\n log.Printf("Retrieved %d decoded rows", len(decodedResult.Rows))\n\n // Example: Persist features\n persistRequest := &onfs.PersistFeaturesRequest{\n EntityLabel: "user",\n KeysSchema: []string{"user_id"},\n FeatureGroups: []onfs.FeatureGroupSchema{\n {\n Label: "user_features",\n FeatureLabels: []string{"age", "location"},\n },\n },\n Data: []onfs.Data{\n {\n KeyValues: []string{"12345"},\n FeatureValues: []onfs.FeatureValues{\n {\n Values: onfs.Values{\n Int32Values: []int32{25},\n StringValues: []string{"New York"},\n },\n },\n },\n },\n },\n }\n\n persistResponse, err := client.PersistFeatures(ctx, persistRequest)\n if err != nil {\n log.Fatalf("Failed to persist features: %v", err)\n }\n\n log.Printf("Persist result: %s", persistResponse.Message)\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"development",children:"Development"}),"\n",(0,i.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Go 1.22 or later (as specified in go.mod)"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"building",children:"Building"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Build all packages\ngo build ./...\n\n# Run tests\ngo test ./...\n\n# Run tests with coverage\ngo test -v -coverprofile=coverage.out ./...\ngo tool cover -html=coverage.out\n"})}),"\n",(0,i.jsx)(n.h3,{id:"testing",children:"Testing"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Run all tests\ngo test -v ./...\n\n# Run specific package tests\ngo test -v ./pkg/onfs\n\n# Run with race detection\ngo test -race ./...\n"})}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcac ",(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>o});var s=t(6540);const i={},r=s.createContext(i);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1964],{6220:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"sdks/go/v1.0.0/feature_client","title":"GRPC Feature client","description":"Build Status","source":"@site/docs/sdks/go/v1.0.0/feature_client.md","sourceDirName":"sdks/go/v1.0.0","slug":"/sdks/go/v1.0.0/feature_client","permalink":"/BharatMLStack/sdks/go/v1.0.0/feature_client","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/sdks/go/v1.0.0/feature_client.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"GRPC Feature client","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Go SDK","permalink":"/BharatMLStack/category/go-sdk"},"next":{"title":"Python SDK","permalink":"/BharatMLStack/category/python-sdk"}}');var i=t(4848),r=t(8453);const l={title:"GRPC Feature client",sidebar_position:1},o="BharatMLStack Go SDK",a={},c=[{value:"Features",id:"features",level:2},{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Usage",id:"usage",level:2},{value:"Basic Usage",id:"basic-usage",level:3},{value:"Complete Example",id:"complete-example",level:3},{value:"Development",id:"development",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Building",id:"building",level:3},{value:"Testing",id:"testing",level:3},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.img,{src:"https://github.com/Meesho/BharatMLStack/actions/workflows/go-sdk.yml/badge.svg",alt:"Build Status"}),"\n",(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/release-v1.0.0-blue?style=flat",alt:"Static Badge"}),"\n",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:(0,i.jsx)(n.img,{src:"https://img.shields.io/badge/Discord-Join%20Chat-7289da?style=flat&logo=discord&logoColor=white",alt:"Discord"})})]}),"\n",(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"bharatmlstack-go-sdk",children:"BharatMLStack Go SDK"})}),"\n",(0,i.jsx)(n.p,{children:"A Go SDK for interacting with BharatMLStack components, providing easy-to-use client libraries for the Online Feature Store and other services."}),"\n",(0,i.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Online Feature Store Client"}),": Complete gRPC client for feature retrieval and persistence"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multiple API Methods"}),": Support for ",(0,i.jsx)(n.code,{children:"RetrieveFeatures"}),", ",(0,i.jsx)(n.code,{children:"RetrieveDecodedFeatures"}),", and ",(0,i.jsx)(n.code,{children:"PersistFeatures"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Protocol Buffer Support"}),": Generated clients from proto definitions with full type safety"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch Processing"}),": Configurable batch sizes for efficient bulk operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Authentication"}),": Built-in support for caller ID and token-based authentication"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Connection Management"}),": Configurable timeouts, TLS, and connection pooling"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Metrics Integration"}),": Built-in timing and count metrics for monitoring"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Type-Safe API"}),": Strongly typed Go interfaces and data structures"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Test Coverage"}),": Comprehensive test suite with mocking support"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"go get github.com/Meesho/BharatMLStack/go-sdk\n"})}),"\n",(0,i.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsx)(n.p,{children:"The SDK requires a configuration object with the following fields:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Field"}),(0,i.jsx)(n.th,{children:"Type"}),(0,i.jsx)(n.th,{children:"Required"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"Host"})}),(0,i.jsx)(n.td,{children:"string"}),(0,i.jsx)(n.td,{children:"Yes"}),(0,i.jsx)(n.td,{children:'Server hostname (e.g., "localhost", "feature-store.example.com")'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"Port"})}),(0,i.jsx)(n.td,{children:"string"}),(0,i.jsx)(n.td,{children:"Yes"}),(0,i.jsx)(n.td,{children:'Server port (e.g., "8080", "443")'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"CallerId"})}),(0,i.jsx)(n.td,{children:"string"}),(0,i.jsx)(n.td,{children:"Yes"}),(0,i.jsx)(n.td,{children:"Unique identifier for your service/application"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"CallerToken"})}),(0,i.jsx)(n.td,{children:"string"}),(0,i.jsx)(n.td,{children:"Yes"}),(0,i.jsx)(n.td,{children:"Authentication token for API access"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"DeadLine"})}),(0,i.jsx)(n.td,{children:"int"}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{children:"Request timeout in milliseconds (default: 5000)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"PlainText"})}),(0,i.jsx)(n.td,{children:"bool"}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{children:"Use plaintext connection instead of TLS (default: false)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"BatchSize"})}),(0,i.jsx)(n.td,{children:"int"}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{children:"Maximum batch size for bulk operations (default: 50)"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsx)(n.h3,{id:"basic-usage",children:"Basic Usage"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-go",children:'package main\n\nimport (\n "context"\n "log"\n \n "github.com/Meesho/BharatMLStack/go-sdk/pkg/onfs"\n)\n\nfunc main() {\n config := &onfs.Config{\n Host: "localhost",\n Port: "8080",\n PlainText: true, // For local development\n CallerId: "my-service",\n CallerToken: "my-token",\n }\n\n // Initialize client (timing and count can be nil)\n client := onfs.NewClientV1(config, nil, nil)\n \n // Your feature operations here...\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"complete-example",children:"Complete Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-go",children:'package main\n\nimport (\n "context"\n "log"\n "time"\n \n "github.com/Meesho/BharatMLStack/go-sdk/pkg/onfs"\n)\n\nfunc main() {\n // Create configuration\n config := &onfs.Config{\n Host: "localhost",\n Port: "8080",\n DeadLine: 5000, // 5 seconds timeout in milliseconds\n PlainText: true, // Use plaintext connection for local development\n BatchSize: 50, // Optional: batch size for requests\n CallerId: "your-service-id",\n CallerToken: "your-auth-token",\n }\n\n // Timing and count functions (can be nil for basic usage)\n timing := func(name string, value time.Duration, tags []string) {\n log.Printf("Timing: %s took %v with tags %v", name, value, tags)\n }\n count := func(name string, value int64, tags []string) {\n log.Printf("Count: %s = %d with tags %v", name, value, tags)\n }\n\n // Initialize the client\n client := onfs.InitClient(onfs.Version1, config, timing, count)\n // Or alternatively use: client := onfs.NewClientV1(config, timing, count)\n\n ctx := context.Background()\n\n // Example: Retrieve features\n query := &onfs.Query{\n EntityLabel: "user",\n FeatureGroups: []onfs.FeatureGroup{\n {\n Label: "user_features",\n FeatureLabels: []string{"age", "location", "preferences"},\n },\n },\n KeysSchema: []string{"user_id"},\n Keys: []onfs.Keys{\n {Cols: []string{"12345"}},\n {Cols: []string{"67890"}},\n },\n }\n\n result, err := client.RetrieveFeatures(ctx, query)\n if err != nil {\n log.Fatalf("Failed to retrieve features: %v", err)\n }\n\n log.Printf("Retrieved %d rows for entity %s", len(result.Rows), result.EntityLabel)\n\n // Example: Retrieve decoded features (string values)\n decodedResult, err := client.RetrieveDecodedFeatures(ctx, query)\n if err != nil {\n log.Fatalf("Failed to retrieve decoded features: %v", err)\n }\n\n log.Printf("Retrieved %d decoded rows", len(decodedResult.Rows))\n\n // Example: Persist features\n persistRequest := &onfs.PersistFeaturesRequest{\n EntityLabel: "user",\n KeysSchema: []string{"user_id"},\n FeatureGroups: []onfs.FeatureGroupSchema{\n {\n Label: "user_features",\n FeatureLabels: []string{"age", "location"},\n },\n },\n Data: []onfs.Data{\n {\n KeyValues: []string{"12345"},\n FeatureValues: []onfs.FeatureValues{\n {\n Values: onfs.Values{\n Int32Values: []int32{25},\n StringValues: []string{"New York"},\n },\n },\n },\n },\n },\n }\n\n persistResponse, err := client.PersistFeatures(ctx, persistRequest)\n if err != nil {\n log.Fatalf("Failed to persist features: %v", err)\n }\n\n log.Printf("Persist result: %s", persistResponse.Message)\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"development",children:"Development"}),"\n",(0,i.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Go 1.22 or later (as specified in go.mod)"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"building",children:"Building"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Build all packages\ngo build ./...\n\n# Run tests\ngo test ./...\n\n# Run tests with coverage\ngo test -v -coverprofile=coverage.out ./...\ngo tool cover -html=coverage.out\n"})}),"\n",(0,i.jsx)(n.h3,{id:"testing",children:"Testing"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Run all tests\ngo test -v ./...\n\n# Run specific package tests\ngo test -v ./pkg/onfs\n\n# Run with race detection\ngo test -race ./...\n"})}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcac ",(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>o});var s=t(6540);const i={},r=s.createContext(i);function l(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/4caa95bf.2e5bda05.js b/docs/assets/js/4caa95bf.2e5bda05.js deleted file mode 100644 index 910749a2..00000000 --- a/docs/assets/js/4caa95bf.2e5bda05.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2344],{551:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-csdb-skip-read-e3926080f7341aa7d3c6ec6d8274ea14.png"},1807:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-psdb-fixed-length-encodding-dd252110b084e01cf38f21de16b3a1a5.png"},2863:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-psdb-string-encoding-b1d69e9452269124d1b545020fa27d63.png"},5019:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-psdb-anatomy-c1735559f93dce6d0bb3894d16047059.png"},8453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>l});var t=i(6540);const s={},r=t.createContext(s);function d(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(r.Provider,{value:n},e.children)}},8726:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-psdb-bool-encoding-4b154fdf5e6d79a67c91b6fb21c7209e.png"},9584:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"online-feature-store/v1.0.0/data-formats","title":"Data Formats","description":"In this section we will go through the data-formats which is at the hear of online-feature-store, it\'s inspired form other storage efficient formats like parquet & arrow, but custom made to deliver in constraint environment. The two key data-formats are:","source":"@site/docs/online-feature-store/v1.0.0/data-formats.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/data-formats","permalink":"/BharatMLStack/online-feature-store/v1.0.0/data-formats","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/data-formats.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Data Formats","sidebar_position":2},"sidebar":"tutorialSidebar","previous":{"title":"Architecture","permalink":"/BharatMLStack/online-feature-store/v1.0.0/architecture"},"next":{"title":"Benchmarks","permalink":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks"}}');var s=i(4848),r=i(8453);const d={title:"Data Formats",sidebar_position:2},l="Data Format for Permanent & Cache Storage",c={},a=[{value:"PSDB (Permanent Storage Data Block) Format",id:"psdb-permanent-storage-data-block-format",level:2},{value:"\ud83e\uddf1 Structure Overview",id:"-structure-overview",level:3},{value:"Supported Data Types",id:"supported-data-types",level:3},{value:"Scalar Types",id:"scalar-types",level:4},{value:"Vector Types",id:"vector-types",level:4},{value:"\ud83d\udce6 Encoding for Scalar Feature Type",id:"-encoding-for-scalar-feature-type",level:3},{value:"1. \ud83d\udd21 String Feature Group (Variable Length Encoding using Pascal)",id:"1--string-feature-group-variable-length-encoding-using-pascal",level:4},{value:"2. \ud83d\udfe9 Boolean Feature Group (Bit-Packed)",id:"2--boolean-feature-group-bit-packed",level:4},{value:"3. \ud83d\udccf Fixed-Length Feature Group",id:"3--fixed-length-feature-group",level:4},{value:"4. Compression",id:"4-compression",level:4},{value:"\ud83e\uddec Encoding for Vector Types",id:"-encoding-for-vector-types",level:3},{value:"Conceptual Overview",id:"conceptual-overview",level:4},{value:"Vector Length Metadata",id:"vector-length-metadata",level:4},{value:"Encoding Process",id:"encoding-process",level:4},{value:"Input Structure",id:"input-structure",level:5},{value:"Length Validation",id:"length-validation",level:5},{value:"Flattening Strategy",id:"flattening-strategy",level:5},{value:"Contiguous Layout",id:"contiguous-layout",level:5},{value:"\ud83d\udd04 Deserialization/Decoding Flow",id:"-deserializationdecoding-flow",level:3},{value:"Memory Efficiency Benefits",id:"memory-efficiency-benefits",level:3},{value:"Cache Storage Data Block (CSDB) Design",id:"cache-storage-data-block-csdb-design",level:2},{value:"Overview",id:"overview",level:3},{value:"Structure and Purpose",id:"structure-and-purpose",level:3},{value:"Core Fields and Memory Layout",id:"core-fields-and-memory-layout",level:4},{value:"Cache Types",id:"cache-types",level:4},{value:"Format & Encoding",id:"format--encoding",level:3},{value:"Differences Between In-Memory and Distributed Caching",id:"differences-between-in-memory-and-distributed-caching",level:3},{value:"Optimizations & Features",id:"optimizations--features",level:3}];function o(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"data-format-for-permanent--cache-storage",children:"Data Format for Permanent & Cache Storage"})}),"\n",(0,s.jsx)(n.p,{children:"In this section we will go through the data-formats which is at the hear of online-feature-store, it's inspired form other storage efficient formats like parquet & arrow, but custom made to deliver in constraint environment. The two key data-formats are:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"PSDB"})," - Permanent Storage Data Block used wile storing data in ScyllaDB"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"CSDB"})," - Cache Storage Data Block used while storing data in DragonflyDB or Redis, optimal for KV"]}),"\n",(0,s.jsx)(n.li,{}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"psdb-permanent-storage-data-block-format",children:"PSDB (Permanent Storage Data Block) Format"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"PSDB"})," format is a compact, versioned, and schema-aware binary layout used to store feature groups efficiently for ML inference. It supports multiple datatypes (strings, booleans, fixed-size vectors), versioning, TTL, and metadata encoding in a compact header."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"-structure-overview",children:"\ud83e\uddf1 Structure Overview"}),"\n",(0,s.jsx)(n.p,{children:"Each PSDB block is composed of multiple byte sections:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Permanent Storage Data Block Anatomy",src:i(5019).A+"",width:"1854",height:"1102"})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Byte"}),(0,s.jsx)(n.th,{children:"Bits"}),(0,s.jsx)(n.th,{children:"Field"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0-1"}),(0,s.jsx)(n.td,{children:"0-15"}),(0,s.jsx)(n.td,{children:"Feature Schema Version"}),(0,s.jsx)(n.td,{children:"Version for tracking schema changes (additions/deletions) in feature group"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2-6"}),(0,s.jsx)(n.td,{children:"16-55"}),(0,s.jsx)(n.td,{children:"Expiry Timestamp"}),(0,s.jsx)(n.td,{children:"Encoded as a compact representation, ~513 days max"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"56-59"}),(0,s.jsx)(n.td,{children:"Layout Version"}),(0,s.jsx)(n.td,{children:"Used to ensure backward compatibility with layout format changes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"60-62"}),(0,s.jsx)(n.td,{children:"Compression Type"}),(0,s.jsx)(n.td,{children:"3-bit field specifying compression algorithm"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7-8"}),(0,s.jsx)(n.td,{children:"63-67"}),(0,s.jsx)(n.td,{children:"Data Type"}),(0,s.jsx)(n.td,{children:"5-bit field split across bytes 7 and 8"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"68-71"}),(0,s.jsx)(n.td,{children:"Bool Last Valid Bit"}),(0,s.jsx)(n.td,{children:"4-bit field for last valid boolean bit"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"supported-data-types",children:"Supported Data Types"}),"\n",(0,s.jsx)(n.h4,{id:"scalar-types",children:"Scalar Types"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Container"}),(0,s.jsx)(n.th,{children:"Size"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"FP32"}),", ",(0,s.jsx)(n.code,{children:"FP16"}),", ",(0,s.jsx)(n.code,{children:"FP8E4M3"}),", ",(0,s.jsx)(n.code,{children:"FP8E5M2"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]float32"})}),(0,s.jsx)(n.td,{children:"4/2/1/1 bytes"}),(0,s.jsx)(n.td,{children:"Floating point numbers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Int32"}),", ",(0,s.jsx)(n.code,{children:"Int16"}),", ",(0,s.jsx)(n.code,{children:"Int8"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]int32"})}),(0,s.jsx)(n.td,{children:"4/2/1 bytes"}),(0,s.jsx)(n.td,{children:"Signed integers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Uint32"}),", ",(0,s.jsx)(n.code,{children:"Uint16"}),", ",(0,s.jsx)(n.code,{children:"Uint8"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]uint32"})}),(0,s.jsx)(n.td,{children:"4/2/1 bytes"}),(0,s.jsx)(n.td,{children:"Unsigned integers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FP64"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]float64"})}),(0,s.jsx)(n.td,{children:"8 bytes"}),(0,s.jsx)(n.td,{children:"Double precision float"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Int64"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]int64"})}),(0,s.jsx)(n.td,{children:"8 bytes"}),(0,s.jsx)(n.td,{children:"64-bit signed integer"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Uint64"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]uint64"})}),(0,s.jsx)(n.td,{children:"8 bytes"}),(0,s.jsx)(n.td,{children:"64-bit unsigned integer"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"String"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]string"})}),(0,s.jsx)(n.td,{children:"Variable"}),(0,s.jsx)(n.td,{children:"Pascal-style strings"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Bool"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]uint8"})}),(0,s.jsx)(n.td,{children:"Bit-packed"}),(0,s.jsx)(n.td,{children:"Boolean values"})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"vector-types",children:"Vector Types"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Container"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"FP32Vector"}),", ",(0,s.jsx)(n.code,{children:"FP16Vector"}),", etc."]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]float32"})}),(0,s.jsx)(n.td,{children:"2D slices of floating point"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Int32Vector"}),", ",(0,s.jsx)(n.code,{children:"Int16Vector"}),", etc."]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]int32"})}),(0,s.jsx)(n.td,{children:"2D slices of signed integers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Uint32Vector"}),", ",(0,s.jsx)(n.code,{children:"Uint16Vector"}),", etc."]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]uint32"})}),(0,s.jsx)(n.td,{children:"2D slices of unsigned integers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FP64Vector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]float64"})}),(0,s.jsx)(n.td,{children:"2D slices of doubles"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Int64Vector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]int64"})}),(0,s.jsx)(n.td,{children:"2D slices of 64-bit signed"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Uint64Vector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]uint64"})}),(0,s.jsx)(n.td,{children:"2D slices of 64-bit unsigned"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"StringVector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]string"})}),(0,s.jsx)(n.td,{children:"2D slices of strings"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"BoolVector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]uint8"})}),(0,s.jsx)(n.td,{children:"2D slices of bit-packed bools"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"-encoding-for-scalar-feature-type",children:"\ud83d\udce6 Encoding for Scalar Feature Type"}),"\n",(0,s.jsx)(n.h4,{id:"1--string-feature-group-variable-length-encoding-using-pascal",children:"1. \ud83d\udd21 String Feature Group (Variable Length Encoding using Pascal)"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Max string length: ",(0,s.jsx)(n.strong,{children:"65536"})]}),"\n",(0,s.jsxs)(n.li,{children:["Format:\n",(0,s.jsx)(n.img,{alt:"PSDB String encoding",src:i(2863).A+"",width:"1488",height:"204"})]}),"\n",(0,s.jsxs)(n.li,{children:["Deserialization:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Read length prefixes"}),"\n",(0,s.jsxs)(n.li,{children:["Extract string bytes using ",(0,s.jsx)(n.code,{children:"StrLenX"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"2--boolean-feature-group-bit-packed",children:"2. \ud83d\udfe9 Boolean Feature Group (Bit-Packed)"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Saves space using bit-level packing."}),"\n",(0,s.jsxs)(n.li,{children:["Encoding:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Raw: 1 byte per feature"}),"\n",(0,s.jsx)(n.li,{children:"Bit-packed: 1 bit per boolean"}),"\n",(0,s.jsxs)(n.li,{children:["Additional index (",(0,s.jsx)(n.code,{children:"bool last idx"}),") stores where the last bit resides"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Format:\n",(0,s.jsx)(n.img,{alt:"PSDB Bool encoding",src:i(8726).A+"",width:"1120",height:"712"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"3--fixed-length-feature-group",children:"3. \ud83d\udccf Fixed-Length Feature Group"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["For fixed-size vectors (",(0,s.jsx)(n.code,{children:"n"})," bytes each)"]}),"\n",(0,s.jsxs)(n.li,{children:["Format:\n",(0,s.jsx)(n.img,{alt:"PSDB Fixed Length Datatype encoding",src:i(1807).A+"",width:"1122",height:"202"})]}),"\n",(0,s.jsx)(n.li,{children:"Efficient for dense numeric features like float32, int64, etc."}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"4-compression",children:"4. Compression"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"TypeNone (0)"}),": Raw storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"TypeZSTD (1)"}),": Compressed using Zstandard"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Compression is opportunistic. During serialization, if compressed size is not smaller, PSDB falls back to uncompressed format. It keeps the read/high througput path use less CPU cycles. Also only data part of PSDB is compressed allowing decompression only if block has a valid TTL"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"-encoding-for-vector-types",children:"\ud83e\uddec Encoding for Vector Types"}),"\n",(0,s.jsx)(n.h4,{id:"conceptual-overview",children:"Conceptual Overview"}),"\n",(0,s.jsx)(n.p,{children:"PSDB encodes vector data by flattening multi-dimensional arrays into a single contiguous byte buffer while preserving the ability to reconstruct the original vector boundaries."}),"\n",(0,s.jsx)(n.h4,{id:"vector-length-metadata",children:"Vector Length Metadata"}),"\n",(0,s.jsx)(n.p,{children:"Each feature group maintains metadata about vector dimensions in the Feature Registry. For example, if a feature group has:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"fg1:\n version-2:\n features:\n f1: { vector_len: 6, default: [bytes] }\n f2: { vector_len: 3, default: [bytes] }\n version-1:\n features:\n f1: { vector_len: 6, default: [bytes] }\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Feature f1 with vector_len: 6"}),"\n",(0,s.jsx)(n.li,{children:"Feature f2 with vector_len: 3"}),"\n",(0,s.jsx)(n.li,{}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This means:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"f1"})," contains vectors of exactly 6 elements each"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"f2"})," contains vectors of exactly 3 elements each"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"encoding-process",children:"Encoding Process"}),"\n",(0,s.jsx)(n.h5,{id:"input-structure",children:(0,s.jsx)(n.strong,{children:"Input Structure"})}),"\n",(0,s.jsx)(n.p,{children:"The serializer receives vector data as 2D slices where:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Outer dimension represents different feature instances/entities"}),"\n",(0,s.jsx)(n.li,{children:"Inner dimension represents the vector elements for each instance"}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"length-validation",children:(0,s.jsx)(n.strong,{children:"Length Validation"})}),"\n",(0,s.jsx)(n.p,{children:"Before encoding, PSDB validates that each vector's actual length matches the declared vector_len from the feature metadata. This ensures data integrity and enables efficient decoding."}),"\n",(0,s.jsx)(n.h5,{id:"flattening-strategy",children:(0,s.jsx)(n.strong,{children:"Flattening Strategy"})}),"\n",(0,s.jsx)(n.p,{children:"Vectors are serialized in row-major order (also called C-style order):"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All elements of the first vector are written consecutively"}),"\n",(0,s.jsx)(n.li,{children:"Followed by all elements of the second vector"}),"\n",(0,s.jsx)(n.li,{children:"And so on..."}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"contiguous-layout",children:(0,s.jsx)(n.strong,{children:"Contiguous Layout"})}),"\n",(0,s.jsx)(n.p,{children:"The resulting byte buffer contains all vector elements placed end-to-end without gaps or separators. The decoder can reconstruct vector boundaries because it knows:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The data type size (e.g., 4 bytes for float32), from feature registry"}),"\n",(0,s.jsx)(n.li,{children:"The vector length for each position, from feature registry"}),"\n",(0,s.jsx)(n.li,{children:"The total number of vectors, from feature registry"}),"\n",(0,s.jsxs)(n.li,{children:["In case of ",(0,s.jsx)(n.code,{children:"variable length"})," length is encoded into the data, like for ",(0,s.jsx)(n.code,{children:"String"})," data-type"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"-deserializationdecoding-flow",children:"\ud83d\udd04 Deserialization/Decoding Flow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Extract version"})," from first 2 bytes."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Look up schema"})," from etcd using the version."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Determine feature shapes"})," (e.g., vector lengths)."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Slice and decode"})," data from byte buffer accordingly."]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"memory-efficiency-benefits",children:"Memory Efficiency Benefits"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"No Padding"}),": Elements are packed tightly without alignment padding"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"No Delimiters"}),": Vector boundaries are implicit, not stored explicitly"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cache Friendly"}),": Sequential memory access patterns during encoding/decoding"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Minimal Metadata"}),": Only vector lengths are stored separately, not per-element"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"cache-storage-data-block-csdb-design",children:"Cache Storage Data Block (CSDB) Design"}),"\n",(0,s.jsx)(n.h3,{id:"overview",children:"Overview"}),"\n",(0,s.jsx)(n.p,{children:"The Cache Storage Data Block (CSDB) is a compact binary data format that encapsulates serialized data blocks for multiple feature groups. It is designed to support both in-memory and distributed caching of deserialized PSDB (Permanent Storage Data Block) content, optimizing for speed, deduplication, and minimal memory overhead."}),"\n",(0,s.jsx)(n.h3,{id:"structure-and-purpose",children:"Structure and Purpose"}),"\n",(0,s.jsx)(n.p,{children:"Each CSDB contains a mapping of feature group IDs (FG IDs) to deserialized PSDBs. For distributed systems, this structure is flattened into a serialized byte slice. The CSDB supports layout versioning for backward compatibility and negative caching for feature groups with no associated data."}),"\n",(0,s.jsx)(n.h4,{id:"core-fields-and-memory-layout",children:"Core Fields and Memory Layout"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-go",children:"type CacheStorageDataBlock struct {\n // 8-byte aligned map pointer\n FGIdToDDB map[int]*DeserializedPSDB // offset: 0\n\n // 24-byte slice (ptr, len, cap)\n serializedCSDB []byte // offset: 8\n\n // 4-byte fields\n TTL uint32 // offset: 32\n\n // 1-byte fields\n layoutVersion uint8 // offset: 36\n cacheType CacheType // offset: 37\n // 2 bytes padding to maintain 4-byte alignment\n}\n"})}),"\n",(0,s.jsx)(n.p,{children:"The structure is memory-aligned for optimal performance:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Pointers and slices are 8-byte aligned"}),"\n",(0,s.jsxs)(n.li,{children:["Smaller fields (like ",(0,s.jsx)(n.code,{children:"uint8"}),") are grouped and padded to avoid false sharing"]}),"\n",(0,s.jsx)(n.li,{children:"This layout ensures efficient use of CPU caches during access"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"cache-types",children:"Cache Types"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"In-Memory Cache"}),": Uses the ",(0,s.jsx)(n.code,{children:"FGIdToDDB"})," map directly and avoids serialization unless explicitly requested."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Distributed Cache"}),": Stores a serialized binary format in ",(0,s.jsx)(n.code,{children:"serializedCSDB"}),", which is deserialized lazily when required."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"format--encoding",children:"Format & Encoding"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"CSDB Binary Layout"}),": Serialized CSDBs follow this compact format:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"[LayoutVersion (1 byte)][FGID (2 bytes)][DataLen (2 bytes)][Data ...] \u2192 repeated per feature group\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["FGID and DataLen are encoded as ",(0,s.jsx)(n.code,{children:"uint16"})]}),"\n",(0,s.jsxs)(n.li,{children:["If ",(0,s.jsx)(n.code,{children:"DataLen == 0"}),", it denotes a negative cache (no data available for that FG)"]}),"\n",(0,s.jsx)(n.li,{children:"The data section contains the PSDB header and either compressed or uncompressed data"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This layout allows fast scanning and partial deserialization for selected FG IDs, making it optimal for large-scale caching systems."}),"\n",(0,s.jsx)(n.h3,{id:"differences-between-in-memory-and-distributed-caching",children:"Differences Between In-Memory and Distributed Caching"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Aspect"}),(0,s.jsx)(n.th,{children:"In-Memory CSDB"}),(0,s.jsx)(n.th,{children:"Distributed CSDB"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Storage Format"}),(0,s.jsx)(n.td,{children:"Live Go objects (map[int]*DeserializedPSDB)"}),(0,s.jsxs)(n.td,{children:["Serialized byte buffer (",(0,s.jsx)(n.code,{children:"[]byte"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Deserialization"}),(0,s.jsx)(n.td,{children:"Performed on-demand using offset map"}),(0,s.jsx)(n.td,{children:"Performed on-demand using offset map"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Compression"}),(0,s.jsx)(n.td,{children:"Optional during serialization"}),(0,s.jsx)(n.td,{children:"Typically enabled to reduce payload size"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Usage Pattern"}),(0,s.jsx)(n.td,{children:"Fast lookup in active process memory"}),(0,s.jsx)(n.td,{children:"Cross-node cache sharing and persistence"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Memory Overhead"}),(0,s.jsx)(n.td,{children:"Higher (due to live objects)"}),(0,s.jsx)(n.td,{children:"Lower (compact representation)"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"optimizations--features",children:"Optimizations & Features"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Partial FG ID Fetch"}),": When only a subset of FG IDs is needed, CSDB avoids unnecessary deserialization of other IDs."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Negative Caching"}),": FG IDs with no data are encoded with ",(0,s.jsx)(n.code,{children:"DataLen=0"}),", saving space and avoiding repeated lookups."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Offset-Length Map"}),": During deserialization, FGID to offset+length pairs are cached internally for efficient random access."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Versioning Support"}),": Layout version is stored as the first byte to enable format upgrades while maintaining backward compatibility."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Diagram below explains how compute cycles are saved by partial de-compression."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CSDB Partial Decompression",src:i(551).A+"",width:"2292",height:"828"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file diff --git a/docs/assets/js/4caa95bf.ca3bb1d0.js b/docs/assets/js/4caa95bf.ca3bb1d0.js new file mode 100644 index 00000000..109ee1e0 --- /dev/null +++ b/docs/assets/js/4caa95bf.ca3bb1d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2344],{3560:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-psdb-anatomy-c1735559f93dce6d0bb3894d16047059.png"},6230:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-psdb-fixed-length-encodding-dd252110b084e01cf38f21de16b3a1a5.png"},7676:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-psdb-string-encoding-b1d69e9452269124d1b545020fa27d63.png"},7780:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-csdb-skip-read-e3926080f7341aa7d3c6ec6d8274ea14.png"},8453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>l});var t=i(6540);const s={},r=t.createContext(s);function d(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(r.Provider,{value:n},e.children)}},8645:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/v1.0.0-psdb-bool-encoding-4b154fdf5e6d79a67c91b6fb21c7209e.png"},9584:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"online-feature-store/v1.0.0/data-formats","title":"Data Formats","description":"In this section we will go through the data-formats which is at the hear of online-feature-store, it\'s inspired form other storage efficient formats like parquet & arrow, but custom made to deliver in constraint environment. The two key data-formats are:","source":"@site/docs/online-feature-store/v1.0.0/data-formats.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/data-formats","permalink":"/BharatMLStack/online-feature-store/v1.0.0/data-formats","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/data-formats.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Data Formats","sidebar_position":2},"sidebar":"tutorialSidebar","previous":{"title":"Architecture","permalink":"/BharatMLStack/online-feature-store/v1.0.0/architecture"},"next":{"title":"Benchmarks","permalink":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks"}}');var s=i(4848),r=i(8453);const d={title:"Data Formats",sidebar_position:2},l="Data Format for Permanent & Cache Storage",c={},a=[{value:"PSDB (Permanent Storage Data Block) Format",id:"psdb-permanent-storage-data-block-format",level:2},{value:"\ud83e\uddf1 Structure Overview",id:"-structure-overview",level:3},{value:"Supported Data Types",id:"supported-data-types",level:3},{value:"Scalar Types",id:"scalar-types",level:4},{value:"Vector Types",id:"vector-types",level:4},{value:"\ud83d\udce6 Encoding for Scalar Feature Type",id:"-encoding-for-scalar-feature-type",level:3},{value:"1. \ud83d\udd21 String Feature Group (Variable Length Encoding using Pascal)",id:"1--string-feature-group-variable-length-encoding-using-pascal",level:4},{value:"2. \ud83d\udfe9 Boolean Feature Group (Bit-Packed)",id:"2--boolean-feature-group-bit-packed",level:4},{value:"3. \ud83d\udccf Fixed-Length Feature Group",id:"3--fixed-length-feature-group",level:4},{value:"4. Compression",id:"4-compression",level:4},{value:"\ud83e\uddec Encoding for Vector Types",id:"-encoding-for-vector-types",level:3},{value:"Conceptual Overview",id:"conceptual-overview",level:4},{value:"Vector Length Metadata",id:"vector-length-metadata",level:4},{value:"Encoding Process",id:"encoding-process",level:4},{value:"Input Structure",id:"input-structure",level:5},{value:"Length Validation",id:"length-validation",level:5},{value:"Flattening Strategy",id:"flattening-strategy",level:5},{value:"Contiguous Layout",id:"contiguous-layout",level:5},{value:"\ud83d\udd04 Deserialization/Decoding Flow",id:"-deserializationdecoding-flow",level:3},{value:"Memory Efficiency Benefits",id:"memory-efficiency-benefits",level:3},{value:"Cache Storage Data Block (CSDB) Design",id:"cache-storage-data-block-csdb-design",level:2},{value:"Overview",id:"overview",level:3},{value:"Structure and Purpose",id:"structure-and-purpose",level:3},{value:"Core Fields and Memory Layout",id:"core-fields-and-memory-layout",level:4},{value:"Cache Types",id:"cache-types",level:4},{value:"Format & Encoding",id:"format--encoding",level:3},{value:"Differences Between In-Memory and Distributed Caching",id:"differences-between-in-memory-and-distributed-caching",level:3},{value:"Optimizations & Features",id:"optimizations--features",level:3}];function o(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"data-format-for-permanent--cache-storage",children:"Data Format for Permanent & Cache Storage"})}),"\n",(0,s.jsx)(n.p,{children:"In this section we will go through the data-formats which is at the hear of online-feature-store, it's inspired form other storage efficient formats like parquet & arrow, but custom made to deliver in constraint environment. The two key data-formats are:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"PSDB"})," - Permanent Storage Data Block used wile storing data in ScyllaDB"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"CSDB"})," - Cache Storage Data Block used while storing data in DragonflyDB or Redis, optimal for KV"]}),"\n",(0,s.jsx)(n.li,{}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"psdb-permanent-storage-data-block-format",children:"PSDB (Permanent Storage Data Block) Format"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"PSDB"})," format is a compact, versioned, and schema-aware binary layout used to store feature groups efficiently for ML inference. It supports multiple datatypes (strings, booleans, fixed-size vectors), versioning, TTL, and metadata encoding in a compact header."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"-structure-overview",children:"\ud83e\uddf1 Structure Overview"}),"\n",(0,s.jsx)(n.p,{children:"Each PSDB block is composed of multiple byte sections:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Permanent Storage Data Block Anatomy",src:i(3560).A+"",width:"1854",height:"1102"})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Byte"}),(0,s.jsx)(n.th,{children:"Bits"}),(0,s.jsx)(n.th,{children:"Field"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0-1"}),(0,s.jsx)(n.td,{children:"0-15"}),(0,s.jsx)(n.td,{children:"Feature Schema Version"}),(0,s.jsx)(n.td,{children:"Version for tracking schema changes (additions/deletions) in feature group"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2-6"}),(0,s.jsx)(n.td,{children:"16-55"}),(0,s.jsx)(n.td,{children:"Expiry Timestamp"}),(0,s.jsx)(n.td,{children:"Encoded as a compact representation, ~513 days max"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"56-59"}),(0,s.jsx)(n.td,{children:"Layout Version"}),(0,s.jsx)(n.td,{children:"Used to ensure backward compatibility with layout format changes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"60-62"}),(0,s.jsx)(n.td,{children:"Compression Type"}),(0,s.jsx)(n.td,{children:"3-bit field specifying compression algorithm"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7-8"}),(0,s.jsx)(n.td,{children:"63-67"}),(0,s.jsx)(n.td,{children:"Data Type"}),(0,s.jsx)(n.td,{children:"5-bit field split across bytes 7 and 8"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"68-71"}),(0,s.jsx)(n.td,{children:"Bool Last Valid Bit"}),(0,s.jsx)(n.td,{children:"4-bit field for last valid boolean bit"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"supported-data-types",children:"Supported Data Types"}),"\n",(0,s.jsx)(n.h4,{id:"scalar-types",children:"Scalar Types"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Container"}),(0,s.jsx)(n.th,{children:"Size"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"FP32"}),", ",(0,s.jsx)(n.code,{children:"FP16"}),", ",(0,s.jsx)(n.code,{children:"FP8E4M3"}),", ",(0,s.jsx)(n.code,{children:"FP8E5M2"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]float32"})}),(0,s.jsx)(n.td,{children:"4/2/1/1 bytes"}),(0,s.jsx)(n.td,{children:"Floating point numbers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Int32"}),", ",(0,s.jsx)(n.code,{children:"Int16"}),", ",(0,s.jsx)(n.code,{children:"Int8"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]int32"})}),(0,s.jsx)(n.td,{children:"4/2/1 bytes"}),(0,s.jsx)(n.td,{children:"Signed integers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Uint32"}),", ",(0,s.jsx)(n.code,{children:"Uint16"}),", ",(0,s.jsx)(n.code,{children:"Uint8"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]uint32"})}),(0,s.jsx)(n.td,{children:"4/2/1 bytes"}),(0,s.jsx)(n.td,{children:"Unsigned integers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FP64"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]float64"})}),(0,s.jsx)(n.td,{children:"8 bytes"}),(0,s.jsx)(n.td,{children:"Double precision float"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Int64"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]int64"})}),(0,s.jsx)(n.td,{children:"8 bytes"}),(0,s.jsx)(n.td,{children:"64-bit signed integer"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Uint64"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]uint64"})}),(0,s.jsx)(n.td,{children:"8 bytes"}),(0,s.jsx)(n.td,{children:"64-bit unsigned integer"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"String"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]string"})}),(0,s.jsx)(n.td,{children:"Variable"}),(0,s.jsx)(n.td,{children:"Pascal-style strings"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Bool"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]uint8"})}),(0,s.jsx)(n.td,{children:"Bit-packed"}),(0,s.jsx)(n.td,{children:"Boolean values"})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"vector-types",children:"Vector Types"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Container"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"FP32Vector"}),", ",(0,s.jsx)(n.code,{children:"FP16Vector"}),", etc."]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]float32"})}),(0,s.jsx)(n.td,{children:"2D slices of floating point"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Int32Vector"}),", ",(0,s.jsx)(n.code,{children:"Int16Vector"}),", etc."]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]int32"})}),(0,s.jsx)(n.td,{children:"2D slices of signed integers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Uint32Vector"}),", ",(0,s.jsx)(n.code,{children:"Uint16Vector"}),", etc."]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]uint32"})}),(0,s.jsx)(n.td,{children:"2D slices of unsigned integers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FP64Vector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]float64"})}),(0,s.jsx)(n.td,{children:"2D slices of doubles"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Int64Vector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]int64"})}),(0,s.jsx)(n.td,{children:"2D slices of 64-bit signed"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Uint64Vector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]uint64"})}),(0,s.jsx)(n.td,{children:"2D slices of 64-bit unsigned"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"StringVector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]string"})}),(0,s.jsx)(n.td,{children:"2D slices of strings"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"BoolVector"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[][]uint8"})}),(0,s.jsx)(n.td,{children:"2D slices of bit-packed bools"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"-encoding-for-scalar-feature-type",children:"\ud83d\udce6 Encoding for Scalar Feature Type"}),"\n",(0,s.jsx)(n.h4,{id:"1--string-feature-group-variable-length-encoding-using-pascal",children:"1. \ud83d\udd21 String Feature Group (Variable Length Encoding using Pascal)"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Max string length: ",(0,s.jsx)(n.strong,{children:"65536"})]}),"\n",(0,s.jsxs)(n.li,{children:["Format:\n",(0,s.jsx)(n.img,{alt:"PSDB String encoding",src:i(7676).A+"",width:"1488",height:"204"})]}),"\n",(0,s.jsxs)(n.li,{children:["Deserialization:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Read length prefixes"}),"\n",(0,s.jsxs)(n.li,{children:["Extract string bytes using ",(0,s.jsx)(n.code,{children:"StrLenX"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"2--boolean-feature-group-bit-packed",children:"2. \ud83d\udfe9 Boolean Feature Group (Bit-Packed)"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Saves space using bit-level packing."}),"\n",(0,s.jsxs)(n.li,{children:["Encoding:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Raw: 1 byte per feature"}),"\n",(0,s.jsx)(n.li,{children:"Bit-packed: 1 bit per boolean"}),"\n",(0,s.jsxs)(n.li,{children:["Additional index (",(0,s.jsx)(n.code,{children:"bool last idx"}),") stores where the last bit resides"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Format:\n",(0,s.jsx)(n.img,{alt:"PSDB Bool encoding",src:i(8645).A+"",width:"1120",height:"712"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"3--fixed-length-feature-group",children:"3. \ud83d\udccf Fixed-Length Feature Group"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["For fixed-size vectors (",(0,s.jsx)(n.code,{children:"n"})," bytes each)"]}),"\n",(0,s.jsxs)(n.li,{children:["Format:\n",(0,s.jsx)(n.img,{alt:"PSDB Fixed Length Datatype encoding",src:i(6230).A+"",width:"1122",height:"202"})]}),"\n",(0,s.jsx)(n.li,{children:"Efficient for dense numeric features like float32, int64, etc."}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"4-compression",children:"4. Compression"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"TypeNone (0)"}),": Raw storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"TypeZSTD (1)"}),": Compressed using Zstandard"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Compression is opportunistic. During serialization, if compressed size is not smaller, PSDB falls back to uncompressed format. It keeps the read/high througput path use less CPU cycles. Also only data part of PSDB is compressed allowing decompression only if block has a valid TTL"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"-encoding-for-vector-types",children:"\ud83e\uddec Encoding for Vector Types"}),"\n",(0,s.jsx)(n.h4,{id:"conceptual-overview",children:"Conceptual Overview"}),"\n",(0,s.jsx)(n.p,{children:"PSDB encodes vector data by flattening multi-dimensional arrays into a single contiguous byte buffer while preserving the ability to reconstruct the original vector boundaries."}),"\n",(0,s.jsx)(n.h4,{id:"vector-length-metadata",children:"Vector Length Metadata"}),"\n",(0,s.jsx)(n.p,{children:"Each feature group maintains metadata about vector dimensions in the Feature Registry. For example, if a feature group has:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"fg1:\n version-2:\n features:\n f1: { vector_len: 6, default: [bytes] }\n f2: { vector_len: 3, default: [bytes] }\n version-1:\n features:\n f1: { vector_len: 6, default: [bytes] }\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Feature f1 with vector_len: 6"}),"\n",(0,s.jsx)(n.li,{children:"Feature f2 with vector_len: 3"}),"\n",(0,s.jsx)(n.li,{}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This means:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"f1"})," contains vectors of exactly 6 elements each"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"f2"})," contains vectors of exactly 3 elements each"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"encoding-process",children:"Encoding Process"}),"\n",(0,s.jsx)(n.h5,{id:"input-structure",children:(0,s.jsx)(n.strong,{children:"Input Structure"})}),"\n",(0,s.jsx)(n.p,{children:"The serializer receives vector data as 2D slices where:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Outer dimension represents different feature instances/entities"}),"\n",(0,s.jsx)(n.li,{children:"Inner dimension represents the vector elements for each instance"}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"length-validation",children:(0,s.jsx)(n.strong,{children:"Length Validation"})}),"\n",(0,s.jsx)(n.p,{children:"Before encoding, PSDB validates that each vector's actual length matches the declared vector_len from the feature metadata. This ensures data integrity and enables efficient decoding."}),"\n",(0,s.jsx)(n.h5,{id:"flattening-strategy",children:(0,s.jsx)(n.strong,{children:"Flattening Strategy"})}),"\n",(0,s.jsx)(n.p,{children:"Vectors are serialized in row-major order (also called C-style order):"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"All elements of the first vector are written consecutively"}),"\n",(0,s.jsx)(n.li,{children:"Followed by all elements of the second vector"}),"\n",(0,s.jsx)(n.li,{children:"And so on..."}),"\n"]}),"\n",(0,s.jsx)(n.h5,{id:"contiguous-layout",children:(0,s.jsx)(n.strong,{children:"Contiguous Layout"})}),"\n",(0,s.jsx)(n.p,{children:"The resulting byte buffer contains all vector elements placed end-to-end without gaps or separators. The decoder can reconstruct vector boundaries because it knows:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The data type size (e.g., 4 bytes for float32), from feature registry"}),"\n",(0,s.jsx)(n.li,{children:"The vector length for each position, from feature registry"}),"\n",(0,s.jsx)(n.li,{children:"The total number of vectors, from feature registry"}),"\n",(0,s.jsxs)(n.li,{children:["In case of ",(0,s.jsx)(n.code,{children:"variable length"})," length is encoded into the data, like for ",(0,s.jsx)(n.code,{children:"String"})," data-type"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"-deserializationdecoding-flow",children:"\ud83d\udd04 Deserialization/Decoding Flow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Extract version"})," from first 2 bytes."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Look up schema"})," from etcd using the version."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Determine feature shapes"})," (e.g., vector lengths)."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Slice and decode"})," data from byte buffer accordingly."]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"memory-efficiency-benefits",children:"Memory Efficiency Benefits"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"No Padding"}),": Elements are packed tightly without alignment padding"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"No Delimiters"}),": Vector boundaries are implicit, not stored explicitly"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cache Friendly"}),": Sequential memory access patterns during encoding/decoding"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Minimal Metadata"}),": Only vector lengths are stored separately, not per-element"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"cache-storage-data-block-csdb-design",children:"Cache Storage Data Block (CSDB) Design"}),"\n",(0,s.jsx)(n.h3,{id:"overview",children:"Overview"}),"\n",(0,s.jsx)(n.p,{children:"The Cache Storage Data Block (CSDB) is a compact binary data format that encapsulates serialized data blocks for multiple feature groups. It is designed to support both in-memory and distributed caching of deserialized PSDB (Permanent Storage Data Block) content, optimizing for speed, deduplication, and minimal memory overhead."}),"\n",(0,s.jsx)(n.h3,{id:"structure-and-purpose",children:"Structure and Purpose"}),"\n",(0,s.jsx)(n.p,{children:"Each CSDB contains a mapping of feature group IDs (FG IDs) to deserialized PSDBs. For distributed systems, this structure is flattened into a serialized byte slice. The CSDB supports layout versioning for backward compatibility and negative caching for feature groups with no associated data."}),"\n",(0,s.jsx)(n.h4,{id:"core-fields-and-memory-layout",children:"Core Fields and Memory Layout"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-go",children:"type CacheStorageDataBlock struct {\n // 8-byte aligned map pointer\n FGIdToDDB map[int]*DeserializedPSDB // offset: 0\n\n // 24-byte slice (ptr, len, cap)\n serializedCSDB []byte // offset: 8\n\n // 4-byte fields\n TTL uint32 // offset: 32\n\n // 1-byte fields\n layoutVersion uint8 // offset: 36\n cacheType CacheType // offset: 37\n // 2 bytes padding to maintain 4-byte alignment\n}\n"})}),"\n",(0,s.jsx)(n.p,{children:"The structure is memory-aligned for optimal performance:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Pointers and slices are 8-byte aligned"}),"\n",(0,s.jsxs)(n.li,{children:["Smaller fields (like ",(0,s.jsx)(n.code,{children:"uint8"}),") are grouped and padded to avoid false sharing"]}),"\n",(0,s.jsx)(n.li,{children:"This layout ensures efficient use of CPU caches during access"}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"cache-types",children:"Cache Types"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"In-Memory Cache"}),": Uses the ",(0,s.jsx)(n.code,{children:"FGIdToDDB"})," map directly and avoids serialization unless explicitly requested."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Distributed Cache"}),": Stores a serialized binary format in ",(0,s.jsx)(n.code,{children:"serializedCSDB"}),", which is deserialized lazily when required."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"format--encoding",children:"Format & Encoding"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"CSDB Binary Layout"}),": Serialized CSDBs follow this compact format:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"[LayoutVersion (1 byte)][FGID (2 bytes)][DataLen (2 bytes)][Data ...] \u2192 repeated per feature group\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["FGID and DataLen are encoded as ",(0,s.jsx)(n.code,{children:"uint16"})]}),"\n",(0,s.jsxs)(n.li,{children:["If ",(0,s.jsx)(n.code,{children:"DataLen == 0"}),", it denotes a negative cache (no data available for that FG)"]}),"\n",(0,s.jsx)(n.li,{children:"The data section contains the PSDB header and either compressed or uncompressed data"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This layout allows fast scanning and partial deserialization for selected FG IDs, making it optimal for large-scale caching systems."}),"\n",(0,s.jsx)(n.h3,{id:"differences-between-in-memory-and-distributed-caching",children:"Differences Between In-Memory and Distributed Caching"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Aspect"}),(0,s.jsx)(n.th,{children:"In-Memory CSDB"}),(0,s.jsx)(n.th,{children:"Distributed CSDB"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Storage Format"}),(0,s.jsx)(n.td,{children:"Live Go objects (map[int]*DeserializedPSDB)"}),(0,s.jsxs)(n.td,{children:["Serialized byte buffer (",(0,s.jsx)(n.code,{children:"[]byte"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Deserialization"}),(0,s.jsx)(n.td,{children:"Performed on-demand using offset map"}),(0,s.jsx)(n.td,{children:"Performed on-demand using offset map"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Compression"}),(0,s.jsx)(n.td,{children:"Optional during serialization"}),(0,s.jsx)(n.td,{children:"Typically enabled to reduce payload size"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Usage Pattern"}),(0,s.jsx)(n.td,{children:"Fast lookup in active process memory"}),(0,s.jsx)(n.td,{children:"Cross-node cache sharing and persistence"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Memory Overhead"}),(0,s.jsx)(n.td,{children:"Higher (due to live objects)"}),(0,s.jsx)(n.td,{children:"Lower (compact representation)"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"optimizations--features",children:"Optimizations & Features"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Partial FG ID Fetch"}),": When only a subset of FG IDs is needed, CSDB avoids unnecessary deserialization of other IDs."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Negative Caching"}),": FG IDs with no data are encoded with ",(0,s.jsx)(n.code,{children:"DataLen=0"}),", saving space and avoiding repeated lookups."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Offset-Length Map"}),": During deserialization, FGID to offset+length pairs are cached internally for efficient random access."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Versioning Support"}),": Layout version is stored as the first byte to enable format upgrades while maintaining backward compatibility."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Diagram below explains how compute cycles are saved by partial de-compression."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CSDB Partial Decompression",src:i(7780).A+"",width:"2292",height:"828"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file diff --git a/docs/assets/js/4df0e30b.00b3a0ff.js b/docs/assets/js/4df0e30b.00b3a0ff.js new file mode 100644 index 00000000..ffd65ccd --- /dev/null +++ b/docs/assets/js/4df0e30b.00b3a0ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2379],{8453:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>o});var s=i(6540);const r={},t=s.createContext(r);function l(e){const n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(t.Provider,{value:n},e.children)}},9680:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"numerix/v1.0.0/architecture","title":"Architecture","description":"---","source":"@site/docs/numerix/v1.0.0/architecture.md","sourceDirName":"numerix/v1.0.0","slug":"/numerix/v1.0.0/architecture","permalink":"/BharatMLStack/numerix/v1.0.0/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/numerix/v1.0.0/architecture.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Architecture","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"v1.0.0","permalink":"/BharatMLStack/numerix/v1.0.0"},"next":{"title":"Benchmarks","permalink":"/BharatMLStack/numerix/v1.0.0/benchmarks"}}');var r=i(4848),t=i(8453);const l={title:"Architecture",sidebar_position:1},o="BharatMLStack - Numerix",a={},c=[{value:"High-Level Components",id:"high-level-components",level:2},{value:"What is SIMD?",id:"what-is-simd",level:2},{value:"Why SIMD Matters for Numerix",id:"why-simd-matters-for-numerix",level:2},{value:"Why ARM, Why LLVM",id:"why-arm-why-llvm",level:2},{value:"Request Model and Flow",id:"request-model-and-flow",level:2},{value:"Why Postfix Expressions",id:"why-postfix-expressions",level:2},{value:"gRPC Interface",id:"grpc-interface",level:2},{value:"Observability",id:"observability",level:2},{value:"Environments",id:"environments",level:2},{value:"Key Takeaways",id:"key-takeaways",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"bharatmlstack---numerix",children:"BharatMLStack - Numerix"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.p,{children:["Numerix is a Rust-based compute service in ",(0,r.jsx)(n.strong,{children:"BharatMLStack"})," designed for low-latency evaluation of mathematical expressions over feature matrices. Each request carries a compute_id and a matrix of features; Numerix fetches the corresponding postfix expression, maps variables to feature columns (treated as vectors), and evaluates the expression with a stack-based SIMD-optimized runtime."]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"high-level-components",children:"High-Level Components"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Tonic gRPC server (Rust)"}),": exposes ",(0,r.jsx)(n.code,{children:"Numerix/Compute"})," for low-latency requests.","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Accepts feature data as strings (for ease of use) or byte arrays (for efficient transmission)."}),"\n",(0,r.jsx)(n.li,{children:"All input data is converted internally to fp32 or fp64 vectors for evaluation."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Compute Registry (etcd)"}),": stores ",(0,r.jsx)(n.code,{children:"compute_id (int) \u2192 postfix expression"})," mappings."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Stack-based Evaluator"}),": Runs postfix expressions in linear time using a stack based approach over aligned vectors."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Vectorized Math Runtime"}),": No handwritten SIMD intrinsics; relies on ",(0,r.jsx)(n.strong,{children:"LLVM autovectorization"}),".","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Operations are intentionally simple and memory-aligned."}),"\n",(0,r.jsx)(n.li,{children:"Compiler emits SIMD instructions automatically."}),"\n",(0,r.jsx)(n.li,{children:"Portable across CPU architectures (ARM & AMD)."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Metrics and Health"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Latency, RPS, and error rates via ",(0,r.jsx)(n.strong,{children:"Datadog/DogStatsD"})," UDP client."]}),"\n",(0,r.jsxs)(n.li,{children:["Minimal HTTP endpoints (",(0,r.jsx)(n.code,{children:"/health"}),", optional ",(0,r.jsx)(n.code,{children:"/metrics"}),") for diagnostics."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"what-is-simd",children:"What is SIMD?"}),"\n",(0,r.jsx)(n.p,{children:"SIMD (Single Instruction, Multiple Data) is a CPU feature that allows a single instruction to operate on multiple data points at once. In Numerix, this means that operations on feature vectors can be executed in parallel, making evaluation of mathematical expressions faster and more predictable."}),"\n",(0,r.jsx)(n.h2,{id:"why-simd-matters-for-numerix",children:"Why SIMD Matters for Numerix"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Postfix expressions operate on vectors (columns of the input matrix)."}),"\n",(0,r.jsx)(n.li,{children:"SIMD allows multiple elements of these vectors to be processed in one CPU instruction, rather than element-by-element."}),"\n",(0,r.jsx)(n.li,{children:"This results in low-latency, high-throughput computation without the need for handwritten intrinsics \u2014 the compiler handles the vectorization automatically."}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"why-arm-why-llvm",children:"Why ARM, Why LLVM"}),"\n",(0,r.jsxs)(n.p,{children:["During design exploration, we tested SIMD on different architectures and found ",(0,r.jsx)(n.strong,{children:"ARM (AArch64)"})," with NEON/SVE/SVE2 provided excellent performance for our workloads."]}),"\n",(0,r.jsxs)(n.p,{children:["Instead of writing custom intrinsics, Numerix ",(0,r.jsx)(n.strong,{children:"compiles with SIMD flags"})," and lets LLVM handle vectorization:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'RUSTFLAGS="-C target-feature=+neon,+sve,+sve2" \\\ncargo build --release --target aarch64-unknown-linux-gnu\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"This approach works well because operations are straightforward, data is aligned, and compiler auto-vectorization is reliable."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"AMD/x86 builds are equally supported \u2014 enabling their SIMD extensions is just a matter of changing build flags."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"request-model-and-flow",children:"Request Model and Flow"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Client calls gRPC ",(0,r.jsx)(n.code,{children:"numerix.Numerix/Compute"})," with:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"schema"}),": ordered feature names"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"entity_scores"}),": per-entity vectors (string or bytes)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"compute_id"}),": integer identifier for the expression"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"data_type"})," (optional): e.g., ",(0,r.jsx)(n.code,{children:"fp32"})," or ",(0,r.jsx)(n.code,{children:"fp64"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["Service fetches the postfix expression for ",(0,r.jsx)(n.code,{children:"compute_id"})," which was pre-fetched from ",(0,r.jsx)(n.code,{children:"etcd"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"Request is validated for schema and data shape."}),"\n",(0,r.jsx)(n.li,{children:"The stack-based evaluator executes the expression in O(n) over tokens, with vectorized inner operations."}),"\n",(0,r.jsxs)(n.li,{children:["Response returns ",(0,r.jsx)(n.code,{children:"computation_score_data"})," or a structured ",(0,r.jsx)(n.code,{children:"error"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"why-postfix-expressions",children:"Why Postfix Expressions"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Stored in etcd"})," as postfix (Reverse Polish) notation."]}),"\n",(0,r.jsx)(n.li,{children:"Postfix makes evaluation parser-free and linear time."}),"\n",(0,r.jsxs)(n.li,{children:["Execution uses a stack machine:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Push operands (feature vectors)."}),"\n",(0,r.jsx)(n.li,{children:"Pop, compute, and push results for each operator."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.li,{children:"Benefits: predictable runtime, compiler-friendly loops, cache efficiency."}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"grpc-interface",children:"gRPC Interface"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Service:"})," ",(0,r.jsx)(n.code,{children:"numerix.Numerix"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"RPC:"})," ",(0,r.jsx)(n.code,{children:"Compute(NumerixRequestProto) \u2192 NumerixResponseProto"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Request fields:"})," ",(0,r.jsx)(n.code,{children:"schema"}),", ",(0,r.jsx)(n.code,{children:"entity_scores"}),", ",(0,r.jsx)(n.code,{children:"compute_id"}),", optional ",(0,r.jsx)(n.code,{children:"data_type"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Response fields:"})," ",(0,r.jsx)(n.code,{children:"computation_score_data"})," or ",(0,r.jsx)(n.code,{children:"error"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Example (grpcurl):"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'grpcurl -plaintext \\\n -import-path ./numerix/src/protos/proto \\\n -proto numerix.proto \\\n -d \'{\n "entityScoreData": {\n "schema": ["feature1", "feature2"],\n "entityScores": [ { "stringData": { "values": ["1.0", "2.0"] } } ],\n "computeId": "1001",\n "dataType": "fp32"\n }\n }\' \\\n localhost:8080 numerix.Numerix/Compute\n'})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"observability",children:"Observability"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Datadog (DogStatsD)"})," metrics publication via UDP client:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Latency (P50/P95/P99), error rate, RPS, internal failures"}),"\n",(0,r.jsx)(n.li,{children:"Configurable sampling rate via environment variables"}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["Optional ",(0,r.jsx)(n.code,{children:"/metrics"})," HTTP endpoint can be enabled for local debugging."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"environments",children:"Environments"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Kubernetes (K8s), including GKE and EKS"}),"\n",(0,r.jsx)(n.li,{children:"Multi-arch builds: amd64, arm64."}),"\n",(0,r.jsx)(n.li,{children:"ARM builds ship with NEON/SVE/SVE2 enabled."}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"key-takeaways",children:"Key Takeaways"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Minimal service surface: ",(0,r.jsx)(n.strong,{children:"gRPC + etcd"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"No custom intrinsics"})," \u2014 portable across ",(0,r.jsx)(n.strong,{children:"ARM & AMD"})," via compiler flags."]}),"\n",(0,r.jsx)(n.li,{children:"Supports both string and byte input, internally converted to aligned fp32/fp64 vectors."}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Stack-based postfix evaluation"})," : linear time, cache-friendly."]}),"\n",(0,r.jsx)(n.li,{children:"Predictable, ultra-low-latency performance."}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,r.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,r.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\ud83d\udcac ",(0,r.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,r.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,r.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,r.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,r.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,r.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/docs/assets/js/50899a24.c0cfae29.js b/docs/assets/js/50899a24.c0cfae29.js new file mode 100644 index 00000000..70349c40 --- /dev/null +++ b/docs/assets/js/50899a24.c0cfae29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1009],{1008:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Numerix","description":"Numerix is a mathematical compute engine for BharatML Stack. It is used to perform mathematical operations on matrices and vectors.","slug":"/category/numerix","permalink":"/BharatMLStack/category/numerix","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Spark client","permalink":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client"},"next":{"title":"v1.0.0","permalink":"/BharatMLStack/numerix/v1.0.0"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/5e95c892.a6c239e7.js b/docs/assets/js/5e95c892.7a2663a1.js similarity index 62% rename from docs/assets/js/5e95c892.a6c239e7.js rename to docs/assets/js/5e95c892.7a2663a1.js index 80ddfbad..899b5397 100644 --- a/docs/assets/js/5e95c892.a6c239e7.js +++ b/docs/assets/js/5e95c892.7a2663a1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9647],{7121:(e,s,r)=>{r.r(s),r.d(s,{default:()=>l});r(6540);var c=r(4164),u=r(5500),a=r(7559),d=r(2831),n=r(1656),t=r(4848);function l(e){return(0,t.jsx)(u.e3,{className:(0,c.A)(a.G.wrapper.docsPages),children:(0,t.jsx)(n.A,{children:(0,d.v)(e.route.routes)})})}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9647],{7121:(e,s,r)=>{r.r(s),r.d(s,{default:()=>l});r(6540);var c=r(4164),u=r(7559),a=r(5500),d=r(2831),n=r(1656),t=r(4848);function l(e){return(0,t.jsx)(a.e3,{className:(0,c.A)(u.G.wrapper.docsPages),children:(0,t.jsx)(n.A,{children:(0,d.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/docs/assets/js/621db11d.1a835b77.js b/docs/assets/js/621db11d.1a835b77.js new file mode 100644 index 00000000..f2d6d885 --- /dev/null +++ b/docs/assets/js/621db11d.1a835b77.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4212],{3250:(t,s,e)=>{e.r(s),e.d(s,{default:()=>m});e(6540);var a=e(4164),o=e(5500),r=e(7559),u=e(6461),l=e(8027),n=e(1463),i=e(1107),c=e(6382);const h={authorListItem:"authorListItem_n3yI"};var g=e(4848);function p({author:t}){return(0,g.jsx)("li",{className:h.authorListItem,children:(0,g.jsx)(c.A,{as:"h2",author:t,count:t.count})})}function d({authors:t}){return(0,g.jsx)("section",{className:(0,a.A)("margin-vert--lg",h.authorsListSection),children:(0,g.jsx)("ul",{children:t.map(t=>(0,g.jsx)(p,{author:t},t.key))})})}function m({authors:t,sidebar:s}){const e=(0,u.uz)();return(0,g.jsxs)(o.e3,{className:(0,a.A)(r.G.wrapper.blogPages,r.G.page.blogAuthorsListPage),children:[(0,g.jsx)(o.be,{title:e}),(0,g.jsx)(n.A,{tag:"blog_authors_list"}),(0,g.jsxs)(l.A,{sidebar:s,children:[(0,g.jsx)(i.A,{as:"h1",children:e}),(0,g.jsx)(d,{authors:t})]})]})}},6461:(t,s,e)=>{e.d(s,{ZD:()=>u,uz:()=>l});e(6540);var a=e(1312),o=e(5846);e(4848);function r(){const{selectMessage:t}=(0,o.W)();return s=>t(s,(0,a.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:s}))}function u(t){const s=r();return(0,a.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:s(t.count),tagName:t.label})}const l=()=>(0,a.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"})}}]); \ No newline at end of file diff --git a/docs/assets/js/621db11d.515621df.js b/docs/assets/js/621db11d.515621df.js deleted file mode 100644 index de839fa8..00000000 --- a/docs/assets/js/621db11d.515621df.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4212],{3250:(t,s,e)=>{e.r(s),e.d(s,{default:()=>m});e(6540);var a=e(4164),o=e(5500),r=e(7559),u=e(6461),l=e(8027),n=e(1463),i=e(1107),c=e(6382);const h={authorListItem:"authorListItem_n3yI"};var g=e(4848);function p({author:t}){return(0,g.jsx)("li",{className:h.authorListItem,children:(0,g.jsx)(c.A,{as:"h2",author:t,count:t.count})})}function d({authors:t}){return(0,g.jsx)("section",{className:(0,a.A)("margin-vert--lg",h.authorsListSection),children:(0,g.jsx)("ul",{children:t.map((t=>(0,g.jsx)(p,{author:t},t.key)))})})}function m({authors:t,sidebar:s}){const e=(0,u.uz)();return(0,g.jsxs)(o.e3,{className:(0,a.A)(r.G.wrapper.blogPages,r.G.page.blogAuthorsListPage),children:[(0,g.jsx)(o.be,{title:e}),(0,g.jsx)(n.A,{tag:"blog_authors_list"}),(0,g.jsxs)(l.A,{sidebar:s,children:[(0,g.jsx)(i.A,{as:"h1",children:e}),(0,g.jsx)(d,{authors:t})]})]})}},6461:(t,s,e)=>{e.d(s,{ZD:()=>u,uz:()=>l});e(6540);var a=e(1312),o=e(5846);e(4848);function r(){const{selectMessage:t}=(0,o.W)();return s=>t(s,(0,a.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:s}))}function u(t){const s=r();return(0,a.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:s(t.count),tagName:t.label})}const l=()=>(0,a.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"})}}]); \ No newline at end of file diff --git a/docs/assets/js/6479fb86.96631f8d.js b/docs/assets/js/6479fb86.96631f8d.js new file mode 100644 index 00000000..6f77cfc2 --- /dev/null +++ b/docs/assets/js/6479fb86.96631f8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5579],{3751:e=>{e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"post-five","metadata":{"permalink":"/BharatMLStack/blog/post-five","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-five/index.md","source":"@site/blog/bharatmlstack-history/post-five/index.md","title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","description":"BharatMLStack","date":"2025-06-02T00:00:00.000Z","tags":[{"inline":true,"label":"llm","permalink":"/BharatMLStack/blog/tags/llm"},{"inline":true,"label":"vllm","permalink":"/BharatMLStack/blog/tags/vllm"},{"inline":true,"label":"tensorrt-llm","permalink":"/BharatMLStack/blog/tags/tensorrt-llm"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":4.93,"hasTruncateMarker":false,"authors":[{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null}],"frontMatter":{"slug":"post-five","title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","authors":["jaya"],"date":"2025-6-2","tags":["llm","vllm","tensorrt-llm","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"nextItem":{"title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","permalink":"/BharatMLStack/blog/post-three"}},"content":"![BharatMLStack](./bms.png)\\n## LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale\\n\\nRaw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack\u2014from memory management to kernel execution.\\n\\n## 1. Advanced Memory Management: Paged & Prefix KV Caching\\n\\nThe most significant bottleneck in LLM inference is not always compute, but memory bandwidth\u2014specifically managing the Key-Value (KV) cache.\\n\\n### Paged KV caching\\n\\nStandard caching suffers from fragmentation. We use **Paged KV caching**, which operates similarly to an operating system\'s virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.\\n\\n### KV cache quantization\\n\\nTo further maximize available memory, we implement **KV cache quantization** (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.\\n\\n### Prefix caching (the \\"voice bot\\" optimizer)\\n\\nFor use cases like GenAI voice bots where the system prompt (e.g., \\"You are a helpful assistant...\\") is static across thousands of requests, we enable **prefix caching**.\\n\\n- **Impact**: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces **Time To First Token (TTFT)** by skipping redundant computation of the system prompt.\\n\\n## 2. Aggressive Quantization (INT4 AWQ & FP8)\\n\\nRunning models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.\\n\\n### INT4 AWQ (Activation-aware Weight Quantization)\\n\\nFor the Llama 3 family, we use **AWQ** to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.\\n\\n### FP8 precision\\n\\nFor NVIDIA Hopper (H100) architectures, we are exploring **FP8 quantization**, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.\\n\\n- **Verification**: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving **>99% similarity**.\\n\\n## 3. Kernel Fusion & Custom Plugins\\n\\nTo minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.\\n\\n- **Flash attention & FMHA**: We enable **Fused Multi-Head Attention (FMHA)** combined with flash attention to reduce memory reads/writes.\\n- **GEMM plugins**: We use specialized **GEMM** plugins to accelerate transformer linear layers.\\n- **Removing input padding**: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.\\n\\n## 4. Inflight (Continuous) Batching\\n\\nTraditional static batching waits for all requests in a batch to finish before returning results\u2014so one long response delays everyone else.\\n\\nWe implement **inflight batching**: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.\\n\\n## 5. Parallelism Strategies: Scaling Beyond One GPU\\n\\nFor large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.\\n\\n- **Tensor parallelism (TP)**: Split weight matrices across multiple GPUs (e.g., 4\xd7 L4 or 8\xd7 A100). Each GPU computes a shard and outputs are reduced at every layer.\\n- **Pipeline parallelism (PP)**: Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).\\n\\n## 6. Speculative Decoding\\n\\nTo reduce inter-token latency (ITL), we explore **speculative decoding**.\\n\\n- **Mechanism**: A smaller, faster \\"draft\\" model speculatively generates a short token sequence (e.g., 5 tokens).\\n- **Verification**: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.\\n\\n## Few Benchmarks\\n\\nBelow are a couple of representative use cases and performance numbers.\\n\\n### Search query rewriting\\n\\n- **LLM**: Fine-tuned llama-3.2-1B\\n- **Input & output token length**: ~10\u201320\\n- **Response type**: Non-streaming\\n\\n| Inference runtime | Hardware | Max requests/sec | Max p99 latency |\\n| --- | --- | ---: | ---: |\\n| TensorRT-LLM | 4 \xd7 L4 GPUs (multi-GPU) | 1000 | 95 ms |\\n| TensorRT-LLM | 1 \xd7 A100 40 GB GPU | 1000 | 69 ms |\\n\\n### Voice bot query\\n\\n- **LLM**: Llama-3.1-8B\\n- **Input token length**: ~1900\u20132000\\n- **Output token length**: ~200\\n- **Response type**: Streaming\\n\\n| Inference runtime | Concurrency | p99 TTFT (ms) | p99 ITL (ms) | Token throughput (tokens/sec) | Request throughput (req/sec) | Hardware |\\n| --- | ---: | ---: | ---: | ---: | ---: | --- |\\n| TensorRT-LLM | 1 | 36.27 | 22.78 | 45.66 | 0.23 | L4 |\\n| TensorRT-LLM | 2 | 49.81 | 23.21 | 89.37 | 0.45 | L4 |\\n| TensorRT-LLM | 4 | 55.33 | 36.62 | 153.39 | 0.78 | L4 |\\n| TensorRT-LLM | 8 | 66.5 | 39.11 | 279.88 | 1.47 | L4 |\\n| TensorRT-LLM | 16 | 131.8 | 30.39 | 547.8 | 2.77 | L4 |\\n| TensorRT-LLM | 32 | 277.22 | 48.02 | 925.7 | 4.78 | L4 |\\n| TensorRT-LLM | 64 | 498.52 | 71.62 | 1,164.40 | 6.2 | L4 |\\n| TensorRT-LLM | 128 | 677.31 | 120.37 | 1,445.18 | 7.69 | L4 |\\n| TensorRT-LLM | 256 | 1,926.31 | 216.88 | 1,600.81 | 8.52 | L4 |\\n| TensorRT-LLM | 1 | 21.17 | 9.24 | 130.05 | 0.68 | A100 |\\n| TensorRT-LLM | 2 | 25.78 | 9.21 | 264.5 | 1.35 | A100 |\\n| TensorRT-LLM | 4 | 28.52 | 10.99 | 437.69 | 2.27 | A100 |\\n| TensorRT-LLM | 8 | 34.4 | 12.61 | 760.49 | 3.96 | A100 |\\n| TensorRT-LLM | 16 | 68.03 | 14.32 | 1,343.80 | 7.01 | A100 |\\n| TensorRT-LLM | 32 | 185.96 | 16.82 | 2,287.30 | 11.92 | A100 |\\n| TensorRT-LLM | 64 | 136.87 | 21.17 | 3,625.22 | 18.89 | A100 |\\n| TensorRT-LLM | 128 | 463.78 | 34.15 | 4,456.51 | 23.24 | A100 |\\n| TensorRT-LLM | 256 | 890.12 | 59.18 | 5,188.24 | 27.05 | A100 |\\n\\n## Conclusion\\n\\nHigh-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.\\n\\nThese optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications."},{"id":"post-three","metadata":{"permalink":"/BharatMLStack/blog/post-three","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-four/index.md","source":"@site/blog/bharatmlstack-history/post-four/index.md","title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","description":"BharatMLStack","date":"2025-03-29T00:00:00.000Z","tags":[{"inline":true,"label":"llm","permalink":"/BharatMLStack/blog/tags/llm"},{"inline":true,"label":"vllm","permalink":"/BharatMLStack/blog/tags/vllm"},{"inline":true,"label":"tensorrt-llm","permalink":"/BharatMLStack/blog/tags/tensorrt-llm"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":13.38,"hasTruncateMarker":false,"authors":[{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null}],"frontMatter":{"slug":"post-three","title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","authors":["jaya"],"date":"2025-3-29","tags":["llm","vllm","tensorrt-llm","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"prevItem":{"title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","permalink":"/BharatMLStack/blog/post-five"},"nextItem":{"title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","permalink":"/BharatMLStack/blog/post-three"}},"content":"![BharatMLStack](./bms.png)\\n## Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving\\n\\n\\n\\nServing large language models in production introduces new challenges across infrastructure, performance optimization, and operational lifecycle management. The LLM Inference Platform addresses these challenges by providing a unified system for deploying and managing open-source and fine-tuned LLMs at scale.\\n\\nThe platform implements a complete LLMOps lifecycle \u2014 from model registration and automated compilation to deployment, runtime optimization, and monitoring. Designed as a self-service environment, users can onboard models directly from open repositories such as Hugging Face or upload custom fine-tuned models, and deploy them using a single-click workflow with no manual infrastructure or configuration steps required.\\n\\nIn addition to fully automated deployment, the platform allows users to select and apply custom inference optimization techniques \u2014 such as quantization strategies, batching configurations, and runtime-specific performance enhancements \u2014 enabling teams to balance latency, throughput, and cost based on their use case. The goal is to reduce operational friction while enabling high-performance, production-grade LLM inference.\\n\\n## Why LLM Inference Is not just bigger ML model serving\\n\\nLarge language model (LLM) inference introduces a fundamentally different set of challenges compared to traditional machine learning inference. While classical ML models typically perform a single forward pass to produce a fixed prediction, LLMs operate as autoregressive systems, generating outputs token by token based on previously generated context. This difference dramatically changes how inference systems must be designed, optimized, and scaled.\\n\\n### Autoregressive Generation and Sequential Computation:\\n\\nUnlike traditional models such as classifiers or recommenders \u2014 where inference cost is relatively constant \u2014 LLMs generate responses incrementally. Each new token depends on all previously generated tokens, making inference inherently sequential and dynamic. This means latency and compute requirements vary significantly depending on prompt length and output size, introducing complexity in scheduling and resource allocation.\\nBecause tokens cannot be generated fully in parallel during decoding, GPUs may become underutilized without specialized batching and scheduling strategies. This has led to the development of dedicated LLM inference engines optimized for token-level execution.\\n\\n### Prefill and Decode Phases:\\n\\nLLM inference typically consists of two distinct stages:\\n\\n- Prefill phase \u2014 the model processes the input prompt and builds internal representations. This stage is compute-heavy and highly parallelizable.\\n- Decode phase \u2014 the model generates tokens sequentially, predicting one token at a time using previously generated context.\\n\\nThe decode stage often becomes memory-bound rather than compute-bound, which creates new performance bottlenecks compared to traditional ML workloads.\\n\\n### Context Management and KV Caching:\\n\\nAnother fundamental difference lies in how LLMs maintain context. Transformer-based models rely on attention mechanisms that require access to past token representations. To avoid recomputing these representations repeatedly, inference engines use key-value (KV) caching, which stores intermediate activations from previous tokens.\\nKV caching significantly improves performance by eliminating redundant computation, but it introduces new challenges:\\n\\n- Memory consumption grows with sequence length and batch size\\n- GPU memory becomes a critical bottleneck\\n- Efficient memory management becomes essential for scaling concurrent requests\\n\\nThis tradeoff between compute efficiency and memory usage is unique to LLM inference workloads.\\n\\n### Dynamic and Irregular Workloads:\\n\\nTraditional ML inference typically operates on fixed-size inputs with predictable latency. In contrast, LLM requests vary widely in prompt length, output length, and runtime behavior. As a result:\\n\\n- Batch sizes must be dynamic rather than static\\n- Requests may enter and leave batches asynchronously\\n- Scheduling systems must continuously rebalance workloads to maximize GPU utilization\\n\\nThese characteristics require specialized serving architectures that differ significantly from standard ML serving pipelines.\\n\\n### Streaming and User Experience Constraints:\\n\\nAnother distinguishing factor is the expectation of real-time streaming responses. Instead of returning a single output, LLM systems often stream tokens to users as they are generated. \\nBecause of these differences \u2014 sequential generation, growing memory requirements, dynamic workloads, and streaming constraints \u2014 LLM inference cannot be treated as a simple extension of existing ML serving systems. Production platforms must incorporate specialized runtime engines, advanced optimization techniques, and observability tailored specifically to LLM workloads.\\n\\n## LLMOps: High-Level Architecture \\n\\n![LLM Architecture](./llm-plat.png)\\n\\nThe LLM Inference Framework is designed as a fully automated, end-to-end system for deploying and operating open-source and fine-tuned large language models at scale. The architecture abstracts the complexity of model optimization, hardware selection, deployment, and runtime management into a unified workflow that enables users to move from raw model weights to production-ready inference endpoints with minimal manual intervention.\\n\\nOur LLM Inference Framework is architected not just as a serving engine, but as a complete lifecycle management system. As illustrated in the high-level design below, the platform automates the journey of a model through seven distinct stages, ensuring reproducibility, performance, and scalability.\\n\\n1. Onboarding & Registration (The Source of Truth)\\n\\n The lifecycle begins with the Data Scientist or engineer.\\n\\n - Model Ingestion: Users onboard models\u2014whether open-source (Hugging Face, NeMo) or internally fine-tuned\u2014via the Truffle Box SDK/UI.\\n - LLM + Prompt Registry: Unlike traditional systems that only track model weights, our registry is a unified control plane. It stores both the Model Artifacts and the Prompt Templates. This allows Data Scientists to register and version-control prompts (e.g., \\"customer_support_v2\\") independently of the application code.\\n\\n2. The \\"Black Box\\" Build Engine\\n\\n Once a model is registered, the Automated LLM Compiler + Quantizer Module kicks off a background job on ephemeral GPU resources.\\n\\n - Transformation: The raw model is converted into a TRT-LLM Checkpoint.\\n - Quantization: The system automatically applies quantization algorithms (like INT4 AWQ or FP8) to reduce memory footprint.\\n - Engine Building: Finally, it compiles a highly optimized TRT Engine specifically tuned for the target hardware.\\n\\n3. Intelligent Profiling & Validation\\n\\n Before deployment, the new engine passes through the Hardware & Inference Runtime Profiler.\\n\\n - Benchmarking: This module empirically tests the engine against various hardware configurations (L4 vs. A100) and runtimes (TRT-LLM vs. vLLM).\\n - Optimization: It recommends the optimal configuration that meets latency SLAs (Time-To-First-Token) while minimizing cost.\\n\\n4. Smart Artifact Generation & Distribution\\n\\n To solve the Kubernetes \\"Cold Start\\" problem, the LLM Serving Artifacts Generation module packages the model using a bifurcated strategy:\\n\\n - Standard Models: Artifacts are uploaded to Cloud Storage (GCS) and downloaded by pods at startup.\\n - Very Large Models: For massive models (>8GB) where network downloads are too slow, the system pre-caches the model onto Secondary Boot Disks. These disks are attached directly to new GPU nodes during autoscaling, eliminating download wait times.\\n\\n5. Image Streaming & Deployment\\n\\n Simultaneously, the inference runtime container images are pulled from the Artifact Registry.\\n\\n - Image Streaming: We utilize container image streaming to allow pods to start initializing while the massive Triton/Dynamo container layers are still downloading, further shaving seconds off the startup time. link\\n\\n6. The Inference Runtime (Kubernetes)\\n\\n The workload lands on Kubernetes with Autoscaling.\\n\\n - Dynamic Backends: Depending on the profile generated in Stage 3, the pod initializes either TensorRT-LLM (for throughput) or vLLM (for flexibility), or spins up a Dynamo worker for distributed inference.\\n - Data Loading: The pod either downloads the model from Cloud Storage or mounts the pre-warmed Secondary Boot Disk (\\"Pull from Disk\\").\\n\\n7. Client Interaction & Observability\\n\\n Finally, the LLM Inference Client executes the request.\\n\\n - Prompt Injection: The client pulls the specific prompt template ID from the Registry, ensuring the exact versioned instructions are used.\\n - Streaming Response: The request is sent via gRPC, and tokens are streamed back to the user in real-time.\\n\\n8. Observability: Monitoring the Pulse of GenAI\\n\\n In traditional microservices, success is measured by CPU utilization and request latency (p99). For Large Language Models, these metrics are insufficient. A user doesn\'t care if the GPU is at 80% utilization; they care about how fast the first word appears and how smoothly the rest of the sentence follows.\\n\\n To capture the true user experience, our platform instrumentation focuses on three critical LLM-specific metrics:\\n\\n 1. Time to First Token (TTFT)\\n - Definition: TTFT measures the time elapsed from the moment a request is received until the very first token is generated and streamed back to the user.\\n - Why it matters: This represents the \\"Prefill Phase\\" latency\u2014the time the model takes to process the input prompt and load weights. A high TTFT makes the application feel unresponsive or \\"hung.\\"\\n - Optimization: We closely monitor TTFT to ensure our Prefix Caching is effective (aiming for high cache hitrates), which drastically lowers this metric by skipping redundant prompt processing.\\n\\n 2. Inter-Token Latency (ITL)\\n - Definition: ITL measures the average time interval between the generation of consecutive tokens during the \\"Decode Phase\\".\\n - Why it matters: This defines the \\"perceived speed\\" of reading. Even if the first token is fast (low TTFT), high ITL makes the text generation look \\"jerky\\" or slow to the user.\\n - Benchmarks: In our testing with Llama 3.1, we track p99 ITL to ensure it stays below human reading speeds to maintain a natural conversational flow.\\n\\n 3. Token Throughput vs. Request Throughput\\n - We distinguish between two types of throughput to balance system efficiency with user load:\\n - Token Throughput (tokens/sec): The total number of tokens generated across all concurrent requests. This measures the raw compute efficiency of the GPU and the effectiveness of batching.\\n - Request Throughput (req/sec): The number of distinct user queries served per second. We use this to determine autoscaling thresholds, ensuring we scale out before the queue depth impacts ITL.\\n\\n 4. The Monitoring Stack\\n - Real-time Dashboards: We utilize Grafana to visualize these streaming metrics in real-time, allowing on-call engineers to spot \\"slow generation\\" incidents that generic \\"500 error\\" alerts would miss.\\n - Request Tracing: Since Triton Inference Server does not log request payloads by default, we integrate a Helix Client to asynchronously publish request logs to Log Tables. This allows us to trace a specific \\"slow\\" request back to its prompt to understand if a complex input caused the latency spike.\\n\\n## Supported Inference backends (TensorRT LLM, Dynamo & vLLM)\\n\\nTailored for the Use Case: We do not believe in a \\"one-size-fits-all\\" approach to inference. Different use cases\u2014whether a real-time voice bot requiring ultra-lowsub-second latency or a massive reasoning task requiring huge context windows\u2014demand different runtime characteristics. Our platform is designed to be runtime-agnostic, allowing us to automatically select and tailor the best engine based on the specific requirements of the application:\\n\\n1. TensorRT-LLM: The High-Performance Standard\\n\\n Suitable for: High-throughput production workloads where latency is critical (e.g., customer support chat, real-time voice bots).\\n\\n TensorRT-LLM serves as our default backend for these scenarios. Our internal benchmarks on Llama 3.1 and 3.2 models demonstrated that a tuned TensorRT-LLM engine significantly outperforms standard runtimes, especially when utilizing INT4 AWQ and FP8 quantization .\\n\\n Key optimizations we tailor for these high-load cases include:\\n\\n - Optimized execution via TensorRT engine compilation\\n - Quantization-aware execution for reduced memory usage and improved throughput\\n - Inflight Batching: Allowing requests to be processed continuously without waiting for the entire batch to finish, drastically improving GPU utilization .\\n - Custom Plugins: Enabling specific NVIDIA plugins like the GEMM plugin and GPT Attention plugin to accelerate matrix multiplications and attention mechanisms .\\n\\n2. Dynamo: Distributed Inference for Reasoning Models\\n\\n Suitable for: Very large \\"reasoning\\" models (70B+) or scenarios requiring massive context windows where a single GPU\'s memory is insufficient.\\n\\n For these memory-bound tasks, we utilize Dynamo, a low-latency distributed inference framework . Unlike monolithic servers, Dynamo disaggregates the inference process to scale resources horizontally:\\n\\n - KV Aware Routing: A specialized router directs requests to workers that already hold the relevant Key-Value (KV) cache, minimizing redundant computation .\\n - Prefill vs. Decode Split: The workload is divided into Prefill Workers (processing the prompt) and Decode Workers (generating tokens), allowing us to scale the compute-heavy \\"reading\\" phase independently from the memory-heavy \\"writing\\" phase .\\n - Distributed execution across multiple GPU resources\\n\\n3. vLLM: The Flexible Baseline\\n\\n Suitable for: Rapid prototyping, testing new model architectures, or low-traffic internal tools where ease of deployment outweighs raw throughput.\\n\\n While TensorRT-LLM is optimized for maximum speed, vLLM provides a robust and flexible baseline .\\n\\n - High throughput through dynamic batching and efficient memory utilization\\n - Paged KV cache management for handling long contexts and concurrent requests\\n - Strong support for open-source model ecosystems\\n - Rapid Adoption: It allows us to onboard new model architectures immediately without waiting for a custom TensorRT build.\\n - Benchmarking Insight: In our internal tests, vLLM provided a strong baseline but often lacked the specific max-token optimizations present in our custom TRT engines . We use it strategically for initial testing before committing to a full TensorRT optimization pipeline.\\n\\n## Conclusion\\n\\nLarge language model inference introduces a fundamentally new class of infrastructure challenges\u2014where performance is governed not just by raw compute, but by memory efficiency, intelligent scheduling, runtime specialization, and lifecycle automation. Unlike traditional ML serving, LLM inference requires systems that understand token-level execution, manage rapidly growing context state, and continuously balance latency, throughput, and cost under highly dynamic workloads.\\n\\nThe LLM Inference Framework addresses these challenges by transforming inference into a fully automated, reproducible lifecycle\u2014from model onboarding and compilation to deployment, optimization, and observability. By integrating automated quantization and engine compilation, intelligent runtime selection, cold-start mitigation strategies, and LLM-specific observability metrics such as Time-to-First-Token and Inter-Token Latency, the platform ensures both high performance and operational simplicity.\\n\\nEqually important, the framework is designed with flexibility and future evolution in mind. Its runtime-agnostic architecture enables seamless adoption of emerging inference engines, hardware accelerators, and optimization techniques without requiring platform redesign. This ensures that teams can continuously leverage advancements in the rapidly evolving LLM ecosystem while maintaining consistent operational workflows.\\n\\nUltimately, the goal of the platform is to make production-scale LLM deployment as seamless and reliable as traditional software deployment\u2014allowing teams to focus on building intelligent applications rather than managing infrastructure complexity. By combining lifecycle automation, runtime optimization, and deep observability, the LLM Inference Framework provides a scalable foundation for delivering fast, cost-efficient, and production-ready LLM experiences.\\n\\n## Future Explorations\\n\\nWhile we have achieved significant milestones in latency and throughput, the landscape of GenAI is evolving rapidly. Our roadmap focuses on increasing flexibility, reducing costs, and enhancing reliability for enterprise-grade workloads. Here is what we are building next:\\n\\n- TPU Support: To diversify our hardware supply chain and further optimize cost-per-token, we are evaluating Google Cloud TPUs to bake it into our platform. By leveraging the JAX and PyTorch/XLA ecosystems, we aim to unlock the massive throughput potential of TPU v5e chips, particularly for our open-source Llama models. This will allow the hardware profiler to dynamically choose between NVIDIA GPUs and Google TPUs based on real-time availability and price-performance metrics.\\n- Multi-LoRA Serving (Serverless Experience): Currently, deploying a fine-tuned model requires a dedicated GPU. We are building support for Multi-LoRA serving, which will allow us to serve hundreds of unique, fine-tuned adapters on top of a single frozen base model. This will drastically reduce costs for multi-tenant applications, enabling a \\"serverless\\" experience where specific fine-tunes are hot-swapped instantly per request.\\n- Spot Instance Orchestration: To further optimize cloud costs, we are developing fault-tolerant mechanisms to run inference workloads on Spot Instances. By implementing aggressive checkpointing and seamless request draining, we aim to leverage cheaper, preemptible compute capacity without interrupting the user\'s streaming experience.\\n- Semantic Caching Layer: We plan to move beyond standard Prefix Caching to implement Semantic Caching. By using a vector database to fetch responses for semantically similar queries (e.g., \\"How do I reset my password?\\" vs. \\"Password reset steps\\"), we can bypass the GPU entirely for repetitive queries, reducing latency to near-zero.\\n- Context-Aware Autoscaling: Standard CPU/GPU utilization metrics are often insufficient signals for scaling LLMs. We are working on KV-cache pressure metrics for autoscaling. This ensures that we scale out before the memory fills up, preventing eviction-based slowdowns during traffic spikes.\\n- Online Evaluation & Guardrails: We are integrating a lightweight \\"Trust Layer\\" into the proxy. This will allow for low-latency input/output filtering (Guardrails) and asynchronous \\"LLM-as-a-Judge\\" evaluation pipelines to monitor response quality in production, not just system health."},{"id":"post-three","metadata":{"permalink":"/BharatMLStack/blog/post-three","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-three/index.md","source":"@site/blog/bharatmlstack-history/post-three/index.md","title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","description":"BharatMLStack","date":"2024-05-21T00:00:00.000Z","tags":[{"inline":true,"label":"model-inference","permalink":"/BharatMLStack/blog/tags/model-inference"},{"inline":true,"label":"embedding-search","permalink":"/BharatMLStack/blog/tags/embedding-search"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":3.6,"hasTruncateMarker":false,"authors":[{"name":"Aditya Kumar","title":"Lead Software Engineer @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null},{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null}],"frontMatter":{"slug":"post-three","title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","authors":["aditya","jaya","adarsha"],"date":"2024-05-21T00:00:00.000Z","tags":["model-inference","embedding-search","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"prevItem":{"title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","permalink":"/BharatMLStack/blog/post-three"},"nextItem":{"title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","permalink":"/BharatMLStack/blog/post-two"}},"content":"![BharatMLStack](./bms.png)\\n\\n## Cracking the Code: Scaling Model Inference & Real-Time Embedding Search\\n\\nBy mid-2023, we had transformed our ML stack\u2014building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:\\n\\n- \ud83d\udd39 Scaling model inference without hitting infrastructure roadblocks\\n- \ud83d\udd39 Moving embedding search from batch to real-time for candidate generation\\n\\nHere\u2019s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.\\n\\n## Breaking Free from the Scalability Ceiling\\n\\n### The Model Serving Bottleneck\u2014A Wake-Up Call\\n\\nJuly 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue\u2014scaling our model-serving infrastructure was taking 10\u201315 minutes. In real-time ML, that\u2019s an eternity.\\nIn one of our war rooms, we ran a quick experiment:\\n\\n- \ud83d\ude80 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.\\n- \ud83d\ude80 Fired requests and compared the outputs with our existing cloud-hosted setup.\\n- \ud83d\ude80 The results matched\u2014perfectly.\\n\\nThat moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn\'t allocate enough compute resources in time. Luckily, they did\u2014but the seed was planted.\\nThen in October, just two weeks before MBS, we got an alarming response from our infrastructure team:\\n \\"Node availability may be an issue.\\"\\nWith no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?\\n\\n- \u2705 p99 latency dropped from 90\u2013100ms to 30\u201340ms\\n- \u2705 Triton handled significantly higher throughput on fewer resources\\n- \u2705 No model changes were needed\\n\\nMBS ran without a hitch, proving that self-hosted inference was the way forward.\\n\\n### Scaling Triton on GKE\\n\\nThis left us with two choices:\\n\\n- 1\ufe0f\u20e3 Port models to a managed cloud inference service, investing time in learning a new deployment stack\\n- 2\ufe0f\u20e3 Scale our existing Triton setup on GKE, optimizing for cost and performance\\n\\nWe went with Option 2\u2014and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.\\n\\n### Fixing the Cold Start Problem\\n\\nAs we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7\u20139 minutes to spin up.\\n\\nAfter profiling, we found the culprits:\\n\\n- Triton\u2019s base image\u2014a massive 5GB\\n- Model binaries\u2014often 1GB+\\n- Startup delay\u2014mostly due to downloading and initializing these assets\\n\\nTo fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.\\n\\n## Embedding Search: The Last Piece of the Puzzle\\n\\nBy mid-2023, most of our ML stack had gone real-time\u2014except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.\\n\\n### Choosing the Right Vector Database\\n\\nWe benchmarked three production-ready vector DBs across key parameters:\\n\\n- Milvus\\n- Qdrant\\n- Weaviate\\n\\nAfter extensive POCs, Qdrant stood out for its:\\n\\n- \u2705 Blazing-fast search latency on high-dimensional vectors\\n- \u2705 Efficient memory usage, crucial for in-memory workloads\\n- \u2705 Support for upserts and soft deletes, vital for Ads use cases\\n- \u2705 gRPC + REST APIs, making integration seamless\\n- \u2705 Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)\\n\\nAt its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search\u2014a perfect fit for our needs.\\n\\n### Embedding Freshness & Real-Time Updates\\n\\nTo ensure embeddings stayed up to date, we built a dual ingestion pipeline:\\n\\n- \ud83d\udccc Daily Refresh: A bulk pipeline updated embeddings overnight\\n- \ud83d\udccc Real-Time Updates: Ads events triggered immediate upserts/deletes\\n\\nThis setup powered real-time \\"Similar Products\\" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.\\n\\n![Skye](./vss.png)\\n\\n## Final Takeaways: Scaling Smartly for Real-Time ML\\n\\n- \ud83d\ude80 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services\\n- \ud83d\ude80 Building a custom Triton image reduced cold starts, improving responsiveness\\n- \ud83d\ude80 Qdrant-based embedding search enabled real-time personalization at scale\\n- \ud83d\ude80 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations\\n\\nBy early 2024, Meesho\u2019s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead."},{"id":"post-two","metadata":{"permalink":"/BharatMLStack/blog/post-two","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-two/index.md","source":"@site/blog/bharatmlstack-history/post-two/index.md","title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","description":"BharatMLStack","date":"2023-04-10T00:00:00.000Z","tags":[{"inline":true,"label":"inferflow","permalink":"/BharatMLStack/blog/tags/inferflow"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":6.31,"hasTruncateMarker":false,"authors":[{"name":"Bhawani Singh","title":"Architect @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"Lead Software Engineer @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null},{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null}],"frontMatter":{"slug":"post-two","title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","authors":["bhawani","jigar","adarsha"],"date":"2023-4-10","tags":["inferflow","interaction-store","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"prevItem":{"title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","permalink":"/BharatMLStack/blog/post-three"},"nextItem":{"title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","permalink":"/BharatMLStack/blog/post-one"}},"content":"![BharatMLStack](./bms.png)\\n## Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)\\n\\nBy late 2022, we had built something we were truly proud of\u2014a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation.\\nAnd it worked. Mostly.\\nBut soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn\u2019t built for scale.\\nThis is the story of how we tackled these challenges\u2014building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.\\n\\n### The Cost of Success\\nEvery new Ranker model required its own feature set, often pulling from different entities. Each addition meant:\\n\\n- Adding new DAG nodes in IOP\\n- Writing custom logic to fetch features from multiple sources (e.g., user, product, user \xd7 category)\\n- Inferring intermediate features (e.g., extracting category from a product to fetch user \xd7 category data)\\n- Optimizing I/O and dealing with the inevitable bugs\\n\\nWhat began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.\\n\\n### Scaling Pains (and Cassandra\u2019s Limits)\\nAt some point, we were hitting:\\n\\n- 250\u2013300K reads/sec\\n- 1M writes/sec (during lean hours)\\n\\nAll of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.\\n\\n### Interaction Store Woes\\nOur interaction store was another ticking time bomb:\\n\\n- \ud83d\udea8 Clusters kept growing in size and cost\\n- \ud83d\udea8 Latency spikes became increasingly frequent\\n- \ud83d\udea8 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance\\n\\nEach time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.\\n\\n### Silver Linings\\nDespite the chaos, the system was live and delivering value:\\n\\n- Real-time infrastructure was in production\\n- Costs dropped by 60\u201370% compared to offline personalization\\n- New experiments rolled out faster and more successfully\\n- User engagement metrics improved\\n\\nIt wasn\u2019t perfect. It was far from easy. But it worked\u2014and that counted for a lot.\\n\\n### Round Two: Solving the Top 2 Bottlenecks\\nWith the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:\\n\\n1. Coding feature retrieval logic for every new model was becoming unsustainable\\n2. ML scale was exploding\u2014bringing rising infra costs with it\\n3. Real-time embedding search was the next big unlock\\n\\nWe tackled them one by one\u2014starting with the biggest pain point.\\n\\n#### Problem 1: No-Code Feature Retrieval for Model Inference\\nWe noticed a pattern: for personalized ranking, models needed features from:\\n\\n- \u2705 Product\\n- \u2705 User\\n- \u2705 User \xd7 Category\\n- \u2705 Region, cohort, sub-category, etc.\\n\\nA key insight emerged: Entities that contribute features for a model always map back to the context entities.\\n\\n![MP Dag](./mp-dag.png)\\n\\nWith this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:\\n\\n- 1\ufe0f\u20e3 Inferflow takes a modelId and context IDs (e.g., userId, productIds)\\n- 2\ufe0f\u20e3 Loads a pre-defined feature retrieval graph from ZooKeeper\\n- 3\ufe0f\u20e3 Executes the graph to resolve entity relationships dynamically\\n- 4\ufe0f\u20e3 Outputs a 2D matrix of feature vectors\\n\\n\ud83d\udca1 The impact?\\n\\n- \ud83d\ude80 No more custom feature retrieval code\u2014just graph updates in config\\n- \ud83d\ude80 Feature consistency across experiments\\n- \ud83d\ude80 Faster iteration cycles for ranking, fraud detection, and beyond\\n\\nHere\u2019s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed:\\n![MP matrix](./mp-matrix.png)\\nWe built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.\\n\\n#### Problem 2: Scaling Without Breaking the Bank\\nWith more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:\\n\\n- \ud83d\udd39 Online Feature Store\\n- \ud83d\udd39 Interaction Store\\n\\n#### Optimizing the Online Feature Store\\nOur costs were concentrated in:\\n\\n- \ud83d\udccc Database (Cassandra)\\n- \ud83d\udccc Cache (Redis)\\n- \ud83d\udccc Running Pods (Java services)\\n\\n1\ufe0f\u20e3 Replacing Cassandra with ScyllaDB\\nAs we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:\\n\\n- Throughput: Matched or exceeded Cassandra\'s performance under identical workloads, even under high concurrency.\\n- Latency: Achieved consistently lower P99 latencies due to ScyllaDB\'s shard-per-core architecture and better I/O utilization.\\n- Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.\\n\\n2\ufe0f\u20e3 Finding the Right Cache\\nTo reduce backend load and improve response times, we benchmarked multiple caching solutions\u2014Memcached, KeyDB, and Dragonfly\u2014under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:\\n\\n- Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.\\n- Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.\\n- Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility\u2014no changes needed in application code or client libraries.\\n\\n3\ufe0f\u20e3 Moving to GoLang for Cost-Efficient Serving\\nJava services were memory-heavy\u2014so we rewrote core services in GoLang. The results?\\n\\n\u2705 Memory usage dropped by ~80%\\n\u2705 CPU utilization was significantly lower\\n\u2705 Faster, more efficient deployments\\n\\n#### Optimizing the Interaction Store\\nWe realized that we only need a user\u2019s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:\\n\\n- \ud83d\udccc Cold Tier (ScyllaDB)\u2014Stores click, order, wishlist events\\n- \ud83d\udccc Hot Tier (Redis)\u2014Loads a user\u2019s past interactions only when they open the app\\n\\nSmart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.\\n\\n![InteractionStore](./interaction-str.png)\\n#### Results\\n\\n- Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale\u2014without breaking a sweat\\n- Infra costs for Online Feature Store and Interaction Store dropped by ~60%\\n\\n#### The Catch: Our ML Hosting Hit a Hard Limit\\nWhile planning for 2023 MBS, we ran into a critical scalability bottleneck:\\n\\n- \u274c Insufficient compute availability in our region for ML instances\\n- \u274c Couldn\u2019t provision enough nodes to handle real-time inference at scale\\n\\nThis forced us to rethink where and how we hosted our models. The existing setup was great for prototyping\u2014but it wasn\u2019t built to handle the bursty, high-QPS demands of real-world production workloads.\\n\\n### Conclusion: From Firefighting to Future-Proofing\\nWhat started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency\u2014driving down costs while improving experimentation velocity.\\nBut new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That\u2019s the next piece of the puzzle\u2014and the story of Part 3."},{"id":"post-one","metadata":{"permalink":"/BharatMLStack/blog/post-one","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-one/index.md","source":"@site/blog/bharatmlstack-history/post-one/index.md","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","description":"BharatMLStack","date":"2022-11-15T00:00:00.000Z","tags":[{"inline":true,"label":"online-feature-store","permalink":"/BharatMLStack/blog/tags/online-feature-store"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"}],"readingTime":10.25,"hasTruncateMarker":false,"authors":[{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null},{"name":"Aditya Kumar","title":"Lead Software Engineer @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Bhawani Singh","title":"Architect @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"Lead Software Engineer @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null}],"frontMatter":{"slug":"post-one","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","authors":["adarsha","aditya","bhawani","jigar"],"date":"2022-11-15T00:00:00.000Z","tags":["online-feature-store","interaction-store","mlplatform","meesho"]},"unlisted":false,"prevItem":{"title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","permalink":"/BharatMLStack/blog/post-two"}},"content":"![BharatMLStack](./bms.png)\\n## The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform\\n\\nIt all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting\u2014until one remark hit a little too close to home:\\n\\n*\\"Why are we still crunching data for Monthly Active Users (MAU) when the next day it\u2019s all about Daily Active Users (DAU)?\\"*\\n\\nThe laughter died down, and the question lingered. When we regrouped on Monday\u2014clear-headed and slightly reflective\u2014we decided to dig into the numbers. What they discovered was quite revealing: a large portion of compute resources wasn\u2019t being put to good use.\\nMuch of the system\u2019s effort was spent supporting users who weren\u2019t actively engaging, and even for new users, the experience wasn\u2019t optimized to make a meaningful impact.\\n\\nAt the same time, Meesho had just launched a company-wide initiative to reduce costs\u2014and every team had to contribute. This realization sparked the journey that would eventually lead to the **Meesho ML Platform**, known today as **BharatMLStack**.\\n\\n![Alt Text](./old-batch-arch.png)\\n\\nBefore the ML Platform, our recommendation and ranking pipelines followed a batch processing approach:\\n- **Data Ingestion**: The Data Platform team executed ETL jobs to ingest raw user data\u2014including user profiles, interaction logs, and product impressions\u2014into designated S3 buckets.\\n- **Layer 1**: Embedding Generation: On the Data Science side, Spark jobs pulled data from multiple S3 sources, cleaned and preprocessed it, and applied matrix factorization to generate user and item embeddings. The processed data and embeddings were then stored back in S3 in a structured format.\\n- **Layer 2**: Candidate Generation (CG): In this stage, Spark jobs leveraged embeddings and historical interaction data to generate candidate recommendations for users. These candidate lists were subsequently written to S3.\\n- **Layer 3**: Ranking and Merging \u2013 A final round of processing ranked the generated candidates using ML models, combined different candidate lists, and stored the final ranked recommendations in a caching system.\\n- **Serving**: A microservice retrieved ranked recommendations from an in-memory data store via exposed APIs, delivering personalized listings across key surfaces such as \\"For You\\" and Category Landing Pages (CLP).\\n\\nThis approach held up well\u2014until Meesho started seeing a significant surge in traffic.\\n\\n## The Turning Point: From Batch to Real-Time\\n\\nAt this time, the team was iterating on new **Ranker models**, and real-time inference seemed like the next logical step. But Rankers needed **real-time feature retrieval**, which meant an **online feature store** had to be built first.\\n\\nExploring open-source options led to **cost vs. performance trade-offs**, but Meesho\u2019s surging traffic meant that **latency and stability were non-negotiable**. After multiple debates and stakeholder discussions, a bold decision was made:\\n\\n*We would build our own feature store.*\\n\\nMeanwhile, efforts began to bring **Candidate Generators (CGs)** to real-time. The challenge? **Storing and retrieving user interactions quickly enough** to power real-time recommendations.\\n\\nAs the team dove deeper, a new roadblock emerged: \\nOur ML jobs were orchestrated using **Airflow DAGs**, giving data scientists flexibility in experimentation. But transitioning to real-time execution threatened this agility. Every change would now require backend engineering support, **slowing down iteration cycles**.\\n\\nThat\u2019s when the idea struck: \\nWe needed a **framework for real-time DAG execution**\u2014one that preserved the same flexibility as Airflow but worked for **streaming data**.\\n\\nThis moment shaped the **next phase of our journey**.\\n\\n## First Generation Design\\n\\n![Alt Text](./first-gen-arch.png)\\n\\n# Laying the Groundwork: The First-Gen ML Platform\\n\\nTo solve these challenges, the team built three foundational components:\\n\\n\\n### 1. IOP Framework: A Real-Time DAG Executor\\n\\n- **Reusable Nodes**: Each DAG node (e.g., an invocation to a CG service, a ranker, or a filter) had to be implemented only once. After that, it could be reused across any workflow by referencing it in config.\\n- **Config-driven Dynamic Graphs**: Execution graphs were defined as adjacency lists stored in **ZooKeeper**, allowing teams to modify the sequence or structure of operations without touching application code.\\n- **Plug-and-play CGs**: The Candidate Generator interface was preserved, so a single CG node could call any CG service by passing `cg_name` in the request. This drastically reduced the code surface area and improved maintainability.\\n- **Production-Grade DAGs**: DAGs were designed to execute in **low-latency real-time environments**, with support for **parallel execution, retries, and branching**.\\n\\n[More about IOP DAG](https://www.meesho.io/blog/rebuilding-meeshos-ranking-platform)\\n\\n\\n### 2. Online Feature Store - 0th Version\\n\\n- Used **Cassandra** and **Redis** for low-latency feature serving.\\n- Maintained feature consistency using **Feature Groups** with TTL-based expiry.\\n- A hybrid schema was used: feature keys stored in **ZooKeeper**, data stored in **compact arrays**.\\n\\n\\n### 3. Interaction Store - 0th Version\\n\\n- Captured real-time user interactions like clicks, orders, and add-to-cart events.\\n- Stored event data in **Redis ZSETs (sorted sets)** to enable fast lookups for recommendation engines.\\n- Provided an API to fetch a user\'s **last _k_ interactions** or **interactions within a time window**.\\n\\n\\nWith these components in place, **real-time ML at Meesho became a reality**.\\n\\nThis was just the beginning.\\n\\n## Building the Online Feature Store - 0th Version\\n\\n![Alt text](./online-feature-store-v0.png)\\n\\n### Choosing the Right Tech Stack\\n\\nWe spent considerable time evaluating various databases, caches, and communication protocols for our **online feature store**. After carefully weighing **cost, latency, throughput**, and **operational stability**, we settled on a combination of:\\n\\n- **Cassandra** and **Redis** for storage\\n- **gRPC + Proto3** as our communication layer\\n\\n\\n### Streamlining the Data Flow\\n\\nTo keep things simple in the initial version:\\n\\n- **Feature engineering jobs** wrote raw outputs to an **S3 bucket**\\n- A **daily feature push job**:\\n - Read from S3\\n - Grouped related features into **Feature Groups** (ensuring consistency)\\n - Pushed them to **Kafka**\\n\\nFor features requiring frequent updates:\\n\\n- **Ad-hoc jobs** computed features in higher frequency\\n- These jobs pushed to both **Kafka** and **S3** (S3 preserved historical data for future model training)\\n\\n\\n## The Challenges: Data Format and Storage\\n\\nOne of the most critical design challenges was how to store feature data **efficiently and consistently**, especially in databases like **Cassandra** and **Redis**, which come with unique storage constraints.\\n\\nWe had to solve for three key requirements:\\n\\n- ### Feature Consistency\\n When a feature group contains features like `order_count_1h` and `click_count_1h`, both must reflect the **same time window**. Inconsistent updates would lead to **unreliable model predictions**.\\n\\n- ### TTL Granularity\\n Each feature group required an **expiry timestamp**, so that **all features within it expired together**\u2014preserving consistency during reads.\\n\\n- ### Extensibility Across Databases\\n We anticipated that infra needs would evolve. To future-proof our system, the data format was designed to be **decoupled from DB-specific layouts**, enabling portability to systems like **ScyllaDB**, **DynamoDB**, **HBase**, or **BigTable**.\\n\\n\\n---\\n\\n## Overcoming Technical Constraints\\nAt the time, we were using Cassandra, which not only imposed a soft limit of 75 columns per row, but also exhibited significant performance degradation as the number of columns increased further, particularly in memory constrained machines. Wide rows caused high memory usage during reads, unpredictable latencies due to heavy deserialization overhead, and inefficiencies during compactions and repairs. This ruled out the naive \\"one column per feature\\" approach. We needed a format that was compact, minimized the number of columns, and remained efficient and portable across different storage systems.\\n\\n## The Solution: Schema Separation\\n\\nWe introduced the concept of Feature Groups\u2014logical groupings of features that must remain consistent with one another.\\nTo represent these groups efficiently, we adopted a layered storage approach:\\n\\n- **Feature Labels (Keys)** were stored in ZooKeeper, serving as the schema.\\n- **Feature Values** were stored as a comma-separated string array in Cassandra or Redis.\\n- **Expiry Timestamp and Schema Version** were appended using a semi-colon delimiter at the end of the string.\\n\\nExample:\\n\\n```bash\\nfeature_1_value,feature_2_value,feature_3_value;expiry_ts\\n```\\n\\nThis format allowed:\\n- Consistent writes and reads at the group level\\n- Easy parsing of feature values using the schema lookup from ZooKeeper\\n- Efficient storage with minimal DB column usage\\n- Support for per-group TTLs and schema evolution\\n\\n## Tracking Changes in Feature Groups\\nFeature groups don\u2019t stay static. As models evolve, features get added, renamed, or removed. But schema changes often go live before the data is ready\u2014and stopping ingestion just to wait for everything to align isn\'t feasible.\\n\\n### Common Real-World Scenarios:\\n- A new feature is added to the schema, but ingestion jobs still use the older schema version.\\n- Ongoing writes don\u2019t include the newly added feature, and stopping ingestion would break freshness for existing features.\\n- During serving, models request a mix of old and new features, depending on rollout stages.\\n\\n## The Solution: Schema Versioning\\nWe solved this with versioned feature group schemas, which unlocked several capabilities:\\n- ### Backward Compatibility\\n Older ingestion jobs can continue writing using older schema versions. During reads, the system uses the schema version embedded in the value to interpret the data correctly.\\n- ### Partial Availability Handling \\n During inference, if some features in the request aren\u2019t available (due to rollout delays or missing data), the system serves default values, ensuring the inference call doesn\u2019t fail.\\n- ### Safe Writes Without Pipeline Pauses\\n With schema versioning, we no longer had to stop ingestion pipelines for schema updates. Writes using previous versions can continue safely, and downstream consumers evolve independently.\\nThis design gave us the flexibility to move fast without breaking things\u2014preserving data quality, enabling experimentation, and ensuring reliability at scale.\\n\\n![Alt Text](./schema.png)\\n\\n## Interaction Store - 0th Version\\n\\n![Alt Text](./interaction-store-v0.png)\\n\\nTo power real-time Candidate Generators (CGs), we needed fast access to user behavior signals\u2014like what a user recently clicked, ordered, or added to their cart. These interactions form the basis for many real-time recommendations, such as **Similar Products**, **People Also Viewed**, or **Recently Ordered Again**.\\nFor the **0th version** of the Interaction Store, we focused on a design that was **simple, fast, and reliable** \u2014 optimized for high-throughput ingestion and low-latency lookups.\\n\\n## Event Ingestion\\nWe instrumented our backend services to emit key user interaction events to Kafka in real time. These included:\\n- Click\\n- Order\\n- Add to Cart\\n- Wishlist\\n- Share\\n\\nEach event carried essential metadata:\\n- userId \u2014 uniquely identifies the user\\n- productId \u2014 the item being interacted with\\n- timestamp \u2014 the moment the interaction occurred\\n\\nThis decoupled the interaction logging from storage, allowing ingestion and consumption to scale independently.\\n\\n## Storage Design\\nTo store these events, we built Kafka consumers that processed the incoming streams and wrote the data into Redis, using sorted sets (ZSETs) as the primary data structure.\\n\\n### Why Redis?\\nRedis gave us:\\n- **Low-latency** reads and writes\\n- **Time-ordered data** using ZSETs (via score = timestamp)\\n- **Native TTL support**, if needed in later versions\\n- **In-memory performance** \u2014ideal for real-time CGs\\n\\n### Storage Structure\\nEach user\u2019s interactions were stored using a composite key format, uniquely identifying the user and interaction type. This structure allowed efficient organization and quick retrieval of recent activity for recommendation generation:\\n\\n```bash\\nuserId_eventType \u2192 ZSET[...(pid, ts)...]\\n```\\n\\nWithin each ZSET:\\n\\n- The **timestamp** served as the score, maintaining temporal order\\n- The **productId** (optionally with metadata) was the **value**\\n\\nThis allowed us to efficiently retrieve the interactions with HTTP-based API server with two query modes:\\n- Fetch the **last k interactions** of a specific type for a given user with `ZREVRANGE(userId_eventType, count)`\\n- Retrieve **all interactions within a time range** (e.g., last 24 hours) with `ZREVRANGEBYSCORE(userId_eventType, timeRange)`\\n\\n### Built-in Guardrails\\nSince Redis was the sole store, we implemented High Availability (HA) to prevent data loss. To optimize memory usage, we also enforced size limits per event type\u2014only storing the last k interactions per user, with older entries getting truncated.\\n\\n## Conclusion: Laying the Foundation for Real-Time ML\\n\\nIn this first phase, we tackled the **fundamentals**\u2014shifting from batch-based recommendations to a **real-time Recommendation** using ML platform that could keep up with Meesho\u2019s growth.\\n\\nWith the **IOP Framework**, **Online Feature Store**, and **Interaction Store**, we built the core infrastructure to support real-time personalization at scale. These wins have already unlocked: \\n- \u2705 Faster, more dynamic recommendations for millions of users. \\n- \u2705 Better infrastructure efficiency, reducing wasted compute power. \\n- \u2705 A flexible, modular system that allows for further experimentation.\\n\\nBut this is just the beginning. While we\'ve solved key challenges, **certain roadblocks remain** \u2014from optimizing **cost-performance trade-offs** to **seamlessly evolving schemas**.\\n\\n\\nThis foundational work laid the path for a reliable and scalable **real-time feature serving layer**."}]}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/6479fb86.d4723af3.js b/docs/assets/js/6479fb86.d4723af3.js deleted file mode 100644 index f3817767..00000000 --- a/docs/assets/js/6479fb86.d4723af3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5579],{3751:e=>{e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"post-one","metadata":{"permalink":"/BharatMLStack/blog/post-one","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-one/index.md","source":"@site/blog/bharatmlstack-history/post-one/index.md","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","description":"BharatMLStack","date":"2022-11-15T00:00:00.000Z","tags":[{"inline":true,"label":"online-feature-store","permalink":"/BharatMLStack/blog/tags/online-feature-store"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"}],"readingTime":10.25,"hasTruncateMarker":false,"authors":[{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null},{"name":"Aditya Kumar","title":"SDE-III @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Bhawani Singh","title":"SDE-IV @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"SDE-IV @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null}],"frontMatter":{"slug":"post-one","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","authors":["adarsha","aditya","bhawani","jigar"],"date":"2022-11-15T00:00:00.000Z","tags":["online-feature-store","interaction-store","mlplatform","meesho"]},"unlisted":false},"content":"![BharatMLStack](./bharatmlstack.png)\\n## The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform\\n\\nIt all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting\u2014until one remark hit a little too close to home:\\n\\n*\\"Why are we still crunching data for Monthly Active Users (MAU) when the next day it\u2019s all about Daily Active Users (DAU)?\\"*\\n\\nThe laughter died down, and the question lingered. When we regrouped on Monday\u2014clear-headed and slightly reflective\u2014we decided to dig into the numbers. What they discovered was quite revealing: a large portion of compute resources wasn\u2019t being put to good use.\\nMuch of the system\u2019s effort was spent supporting users who weren\u2019t actively engaging, and even for new users, the experience wasn\u2019t optimized to make a meaningful impact.\\n\\nAt the same time, Meesho had just launched a company-wide initiative to reduce costs\u2014and every team had to contribute. This realization sparked the journey that would eventually lead to the **Meesho ML Platform**, known today as **BharatMLStack**.\\n\\n![Alt Text](./old-batch-arch.png)\\n\\nBefore the ML Platform, our recommendation and ranking pipelines followed a batch processing approach:\\n- **Data Ingestion**: The Data Platform team executed ETL jobs to ingest raw user data\u2014including user profiles, interaction logs, and product impressions\u2014into designated S3 buckets.\\n- **Layer 1**: Embedding Generation: On the Data Science side, Spark jobs pulled data from multiple S3 sources, cleaned and preprocessed it, and applied matrix factorization to generate user and item embeddings. The processed data and embeddings were then stored back in S3 in a structured format.\\n- **Layer 2**: Candidate Generation (CG): In this stage, Spark jobs leveraged embeddings and historical interaction data to generate candidate recommendations for users. These candidate lists were subsequently written to S3.\\n- **Layer 3**: Ranking and Merging \u2013 A final round of processing ranked the generated candidates using ML models, combined different candidate lists, and stored the final ranked recommendations in a caching system.\\n- **Serving**: A microservice retrieved ranked recommendations from an in-memory data store via exposed APIs, delivering personalized listings across key surfaces such as \\"For You\\" and Category Landing Pages (CLP).\\n\\nThis approach held up well\u2014until Meesho started seeing a significant surge in traffic.\\n\\n## The Turning Point: From Batch to Real-Time\\n\\nAt this time, the team was iterating on new **Ranker models**, and real-time inference seemed like the next logical step. But Rankers needed **real-time feature retrieval**, which meant an **online feature store** had to be built first.\\n\\nExploring open-source options led to **cost vs. performance trade-offs**, but Meesho\u2019s surging traffic meant that **latency and stability were non-negotiable**. After multiple debates and stakeholder discussions, a bold decision was made:\\n\\n*We would build our own feature store.*\\n\\nMeanwhile, efforts began to bring **Candidate Generators (CGs)** to real-time. The challenge? **Storing and retrieving user interactions quickly enough** to power real-time recommendations.\\n\\nAs the team dove deeper, a new roadblock emerged: \\nOur ML jobs were orchestrated using **Airflow DAGs**, giving data scientists flexibility in experimentation. But transitioning to real-time execution threatened this agility. Every change would now require backend engineering support, **slowing down iteration cycles**.\\n\\nThat\u2019s when the idea struck: \\nWe needed a **framework for real-time DAG execution**\u2014one that preserved the same flexibility as Airflow but worked for **streaming data**.\\n\\nThis moment shaped the **next phase of our journey**.\\n\\n## First Generation Design\\n\\n![Alt Text](./first-gen-arch.png)\\n\\n# Laying the Groundwork: The First-Gen ML Platform\\n\\nTo solve these challenges, the team built three foundational components:\\n\\n\\n### 1. IOP Framework: A Real-Time DAG Executor\\n\\n- **Reusable Nodes**: Each DAG node (e.g., an invocation to a CG service, a ranker, or a filter) had to be implemented only once. After that, it could be reused across any workflow by referencing it in config.\\n- **Config-driven Dynamic Graphs**: Execution graphs were defined as adjacency lists stored in **ZooKeeper**, allowing teams to modify the sequence or structure of operations without touching application code.\\n- **Plug-and-play CGs**: The Candidate Generator interface was preserved, so a single CG node could call any CG service by passing `cg_name` in the request. This drastically reduced the code surface area and improved maintainability.\\n- **Production-Grade DAGs**: DAGs were designed to execute in **low-latency real-time environments**, with support for **parallel execution, retries, and branching**.\\n\\n[More about IOP DAG](https://www.meesho.io/blog/rebuilding-meeshos-ranking-platform)\\n\\n\\n### 2. Online Feature Store - 0th Version\\n\\n- Used **Cassandra** and **Redis** for low-latency feature serving.\\n- Maintained feature consistency using **Feature Groups** with TTL-based expiry.\\n- A hybrid schema was used: feature keys stored in **ZooKeeper**, data stored in **compact arrays**.\\n\\n\\n### 3. Interaction Store - 0th Version\\n\\n- Captured real-time user interactions like clicks, orders, and add-to-cart events.\\n- Stored event data in **Redis ZSETs (sorted sets)** to enable fast lookups for recommendation engines.\\n- Provided an API to fetch a user\'s **last _k_ interactions** or **interactions within a time window**.\\n\\n\\nWith these components in place, **real-time ML at Meesho became a reality**.\\n\\nThis was just the beginning.\\n\\n## Building the Online Feature Store - 0th Version\\n\\n![Alt text](./online-feature-store-v0.png)\\n\\n### Choosing the Right Tech Stack\\n\\nWe spent considerable time evaluating various databases, caches, and communication protocols for our **online feature store**. After carefully weighing **cost, latency, throughput**, and **operational stability**, we settled on a combination of:\\n\\n- **Cassandra** and **Redis** for storage\\n- **gRPC + Proto3** as our communication layer\\n\\n\\n### Streamlining the Data Flow\\n\\nTo keep things simple in the initial version:\\n\\n- **Feature engineering jobs** wrote raw outputs to an **S3 bucket**\\n- A **daily feature push job**:\\n - Read from S3\\n - Grouped related features into **Feature Groups** (ensuring consistency)\\n - Pushed them to **Kafka**\\n\\nFor features requiring frequent updates:\\n\\n- **Ad-hoc jobs** computed features in higher frequency\\n- These jobs pushed to both **Kafka** and **S3** (S3 preserved historical data for future model training)\\n\\n\\n## The Challenges: Data Format and Storage\\n\\nOne of the most critical design challenges was how to store feature data **efficiently and consistently**, especially in databases like **Cassandra** and **Redis**, which come with unique storage constraints.\\n\\nWe had to solve for three key requirements:\\n\\n- ### Feature Consistency\\n When a feature group contains features like `order_count_1h` and `click_count_1h`, both must reflect the **same time window**. Inconsistent updates would lead to **unreliable model predictions**.\\n\\n- ### TTL Granularity\\n Each feature group required an **expiry timestamp**, so that **all features within it expired together**\u2014preserving consistency during reads.\\n\\n- ### Extensibility Across Databases\\n We anticipated that infra needs would evolve. To future-proof our system, the data format was designed to be **decoupled from DB-specific layouts**, enabling portability to systems like **ScyllaDB**, **DynamoDB**, **HBase**, or **BigTable**.\\n\\n\\n---\\n\\n## Overcoming Technical Constraints\\nAt the time, we were using Cassandra, which not only imposed a soft limit of 75 columns per row, but also exhibited significant performance degradation as the number of columns increased further, particularly in memory constrained machines. Wide rows caused high memory usage during reads, unpredictable latencies due to heavy deserialization overhead, and inefficiencies during compactions and repairs. This ruled out the naive \\"one column per feature\\" approach. We needed a format that was compact, minimized the number of columns, and remained efficient and portable across different storage systems.\\n\\n## The Solution: Schema Separation\\n\\nWe introduced the concept of Feature Groups\u2014logical groupings of features that must remain consistent with one another.\\nTo represent these groups efficiently, we adopted a layered storage approach:\\n\\n- **Feature Labels (Keys)** were stored in ZooKeeper, serving as the schema.\\n- **Feature Values** were stored as a comma-separated string array in Cassandra or Redis.\\n- **Expiry Timestamp and Schema Version** were appended using a semi-colon delimiter at the end of the string.\\n\\nExample:\\n\\n```bash\\nfeature_1_value,feature_2_value,feature_3_value;expiry_ts\\n```\\n\\nThis format allowed:\\n- Consistent writes and reads at the group level\\n- Easy parsing of feature values using the schema lookup from ZooKeeper\\n- Efficient storage with minimal DB column usage\\n- Support for per-group TTLs and schema evolution\\n\\n## Tracking Changes in Feature Groups\\nFeature groups don\u2019t stay static. As models evolve, features get added, renamed, or removed. But schema changes often go live before the data is ready\u2014and stopping ingestion just to wait for everything to align isn\'t feasible.\\n\\n### Common Real-World Scenarios:\\n- A new feature is added to the schema, but ingestion jobs still use the older schema version.\\n- Ongoing writes don\u2019t include the newly added feature, and stopping ingestion would break freshness for existing features.\\n- During serving, models request a mix of old and new features, depending on rollout stages.\\n\\n## The Solution: Schema Versioning\\nWe solved this with versioned feature group schemas, which unlocked several capabilities:\\n- ### Backward Compatibility\\n Older ingestion jobs can continue writing using older schema versions. During reads, the system uses the schema version embedded in the value to interpret the data correctly.\\n- ### Partial Availability Handling \\n During inference, if some features in the request aren\u2019t available (due to rollout delays or missing data), the system serves default values, ensuring the inference call doesn\u2019t fail.\\n- ### Safe Writes Without Pipeline Pauses\\n With schema versioning, we no longer had to stop ingestion pipelines for schema updates. Writes using previous versions can continue safely, and downstream consumers evolve independently.\\nThis design gave us the flexibility to move fast without breaking things\u2014preserving data quality, enabling experimentation, and ensuring reliability at scale.\\n\\n![Alt Text](./schema.png)\\n\\n## Interaction Store - 0th Version\\n\\n![Alt Text](./interaction-store-v0.png)\\n\\nTo power real-time Candidate Generators (CGs), we needed fast access to user behavior signals\u2014like what a user recently clicked, ordered, or added to their cart. These interactions form the basis for many real-time recommendations, such as **Similar Products**, **People Also Viewed**, or **Recently Ordered Again**.\\nFor the **0th version** of the Interaction Store, we focused on a design that was **simple, fast, and reliable** \u2014 optimized for high-throughput ingestion and low-latency lookups.\\n\\n## Event Ingestion\\nWe instrumented our backend services to emit key user interaction events to Kafka in real time. These included:\\n- Click\\n- Order\\n- Add to Cart\\n- Wishlist\\n- Share\\n\\nEach event carried essential metadata:\\n- userId \u2014 uniquely identifies the user\\n- productId \u2014 the item being interacted with\\n- timestamp \u2014 the moment the interaction occurred\\n\\nThis decoupled the interaction logging from storage, allowing ingestion and consumption to scale independently.\\n\\n## Storage Design\\nTo store these events, we built Kafka consumers that processed the incoming streams and wrote the data into Redis, using sorted sets (ZSETs) as the primary data structure.\\n\\n### Why Redis?\\nRedis gave us:\\n- **Low-latency** reads and writes\\n- **Time-ordered data** using ZSETs (via score = timestamp)\\n- **Native TTL support**, if needed in later versions\\n- **In-memory performance** \u2014ideal for real-time CGs\\n\\n### Storage Structure\\nEach user\u2019s interactions were stored using a composite key format, uniquely identifying the user and interaction type. This structure allowed efficient organization and quick retrieval of recent activity for recommendation generation:\\n\\n```bash\\nuserId_eventType \u2192 ZSET[...(pid, ts)...]\\n```\\n\\nWithin each ZSET:\\n\\n- The **timestamp** served as the score, maintaining temporal order\\n- The **productId** (optionally with metadata) was the **value**\\n\\nThis allowed us to efficiently retrieve the interactions with HTTP-based API server with two query modes:\\n- Fetch the **last k interactions** of a specific type for a given user with `ZREVRANGE(userId_eventType, count)`\\n- Retrieve **all interactions within a time range** (e.g., last 24 hours) with `ZREVRANGEBYSCORE(userId_eventType, timeRange)`\\n\\n### Built-in Guardrails\\nSince Redis was the sole store, we implemented High Availability (HA) to prevent data loss. To optimize memory usage, we also enforced size limits per event type\u2014only storing the last k interactions per user, with older entries getting truncated.\\n\\n## Conclusion: Laying the Foundation for Real-Time ML\\n\\nIn this first phase, we tackled the **fundamentals**\u2014shifting from batch-based recommendations to a **real-time Recommendation** using ML platform that could keep up with Meesho\u2019s growth.\\n\\nWith the **IOP Framework**, **Online Feature Store**, and **Interaction Store**, we built the core infrastructure to support real-time personalization at scale. These wins have already unlocked: \\n- \u2705 Faster, more dynamic recommendations for millions of users. \\n- \u2705 Better infrastructure efficiency, reducing wasted compute power. \\n- \u2705 A flexible, modular system that allows for further experimentation.\\n\\nBut this is just the beginning. While we\'ve solved key challenges, **certain roadblocks remain** \u2014from optimizing **cost-performance trade-offs** to **seamlessly evolving schemas**.\\n\\n\\nThis foundational work laid the path for a reliable and scalable **real-time feature serving layer**."}]}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/67d4782a.09ac845b.js b/docs/assets/js/67d4782a.09ac845b.js deleted file mode 100644 index 6a09823e..00000000 --- a/docs/assets/js/67d4782a.09ac845b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8588],{8453:(e,r,n)=>{n.d(r,{R:()=>t,x:()=>l});var s=n(6540);const o={},i=s.createContext(o);function t(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),s.createElement(i.Provider,{value:r},e.children)}},8769:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"online-feature-store/v1.0.0/benchmarks","title":"Benchmarks","description":"Summary","source":"@site/docs/online-feature-store/v1.0.0/benchmarks.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/benchmarks","permalink":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/benchmarks.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Benchmarks","sidebar_position":3},"sidebar":"tutorialSidebar","previous":{"title":"Data Formats","permalink":"/BharatMLStack/online-feature-store/v1.0.0/data-formats"},"next":{"title":"Key Functionalities","permalink":"/BharatMLStack/online-feature-store/v1.0.0/functionalities"}}');var o=n(4848),i=n(8453);const t={title:"Benchmarks",sidebar_position:3},l="Serialization Performance Benchmarks",a={},c=[{value:"Summary",id:"summary",level:2},{value:"Test Methodology",id:"test-methodology",level:2},{value:"Environment",id:"environment",level:3},{value:"Test Data",id:"test-data",level:3},{value:"Performance Results",id:"performance-results",level:2},{value:"Serialization Speed (Lower is Better)",id:"serialization-speed-lower-is-better",level:3},{value:"Serialized Size (Lower is Better)",id:"serialized-size-lower-is-better",level:3},{value:"Memory Efficiency (Lower is Better)",id:"memory-efficiency-lower-is-better",level:3},{value:"Throughput (Higher is Better)",id:"throughput-higher-is-better",level:3},{value:"Detailed Analysis",id:"detailed-analysis",level:2},{value:"PSDB Advantages",id:"psdb-advantages",level:3},{value:"Protocol Buffers Analysis",id:"protocol-buffers-analysis",level:3},{value:"Apache Arrow Analysis",id:"apache-arrow-analysis",level:3},{value:"Scaling Characteristics",id:"scaling-characteristics",level:2},{value:"Small Datasets (100-1,000 features)",id:"small-datasets-100-1000-features",level:3},{value:"Large Datasets (10,000+ features)",id:"large-datasets-10000-features",level:3},{value:"Technical Implementation Notes",id:"technical-implementation-notes",level:2},{value:"PSDB Optimizations",id:"psdb-optimizations",level:3},{value:"Memory Layout Comparison",id:"memory-layout-comparison",level:3},{value:"Conclusion",id:"conclusion",level:2},{value:"PSDB: Best for Small-Medium Scale (\u22641,000 features)",id:"psdb-best-for-small-medium-scale-1000-features",level:3},{value:"Apache Arrow: Best for Large Scale (\u226510,000 features)",id:"apache-arrow-best-for-large-scale-10000-features",level:3},{value:"Protocol Buffers: Balanced Middle Ground",id:"protocol-buffers-balanced-middle-ground",level:3},{value:"Raw Benchmark Output [Uncompressed Data]",id:"raw-benchmark-output-uncompressed-data",level:2}];function d(e){const r={code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"serialization-performance-benchmarks",children:"Serialization Performance Benchmarks"})}),"\n",(0,o.jsx)(r.h2,{id:"summary",children:"Summary"}),"\n",(0,o.jsx)(r.p,{children:"This report presents comprehensive benchmark results comparing three serialization formats for the BharatML Online Feature Store:"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"PSDB (Permanent Storage Data Block)"})," - Our custom format"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Protocol Buffers v3"})," - Google's binary serialization"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Apache Arrow"})," - Columnar in-memory analytics format"]}),"\n"]}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.strong,{children:"Key Findings:"})}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:["\ud83c\udfc6 ",(0,o.jsx)(r.strong,{children:"PSDB excels at small-to-medium scales"})," (100-1,000 features)"]}),"\n",(0,o.jsxs)(r.li,{children:["\u26a1 ",(0,o.jsx)(r.strong,{children:"35% faster"})," than Proto3, but ",(0,o.jsx)(r.strong,{children:"67% slower"})," than Arrow (for 100k features)"]}),"\n",(0,o.jsxs)(r.li,{children:["\ud83d\udce6 ",(0,o.jsx)(r.strong,{children:"18% smaller"})," than Proto3, comparable to Arrow"]}),"\n",(0,o.jsxs)(r.li,{children:["\ud83e\udde0 ",(0,o.jsx)(r.strong,{children:"93% fewer allocations"})," than Arrow (4 vs 66 allocs/op)"]}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"test-methodology",children:"Test Methodology"}),"\n",(0,o.jsx)(r.h3,{id:"environment",children:"Environment"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Platform"}),": macOS ARM64 (Apple Silicon)"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Go Version"}),": 1.22.12"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Test Date"}),": January 2025"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Compression"}),": Disabled for fair comparison (",(0,o.jsx)(r.code,{children:"compression.TypeNone"}),")"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"test-data",children:"Test Data"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Data Type"}),": Int32 arrays"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Feature Group Sizes"}),": 100, 1,000, 10,000, 100,000 features"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Test Iterations"}),": Variable (Go benchmark auto-scaling)"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Pool Optimization"}),": PSDB uses object pooling for memory efficiency"]}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"performance-results",children:"Performance Results"}),"\n",(0,o.jsx)(r.h3,{id:"serialization-speed-lower-is-better",children:"Serialization Speed (Lower is Better)"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Feature Count"}),(0,o.jsx)(r.th,{children:"PSDB (ns/op)"}),(0,o.jsx)(r.th,{children:"Proto3 (ns/op)"}),(0,o.jsx)(r.th,{children:"Arrow (ns/op)"}),(0,o.jsx)(r.th,{children:"PSDB vs Proto3"}),(0,o.jsx)(r.th,{children:"PSDB vs Arrow"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100"}),(0,o.jsx)(r.td,{children:"625"}),(0,o.jsx)(r.td,{children:"696"}),(0,o.jsx)(r.td,{children:"3,831"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"10% faster"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"84% faster"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"1,000"}),(0,o.jsx)(r.td,{children:"4,056"}),(0,o.jsx)(r.td,{children:"6,004"}),(0,o.jsx)(r.td,{children:"5,191"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"32% faster"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"22% faster"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"10,000"}),(0,o.jsx)(r.td,{children:"37,357"}),(0,o.jsx)(r.td,{children:"57,674"}),(0,o.jsx)(r.td,{children:"23,173"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"35% faster"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"38% slower"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100,000"}),(0,o.jsx)(r.td,{children:"359,932"}),(0,o.jsx)(r.td,{children:"556,541"}),(0,o.jsx)(r.td,{children:"118,489"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"35% faster"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"67% slower"})})]})]})]}),"\n",(0,o.jsx)(r.h3,{id:"serialized-size-lower-is-better",children:"Serialized Size (Lower is Better)"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Feature Count"}),(0,o.jsx)(r.th,{children:"Raw Size (bytes)"}),(0,o.jsx)(r.th,{children:"PSDB (bytes)"}),(0,o.jsx)(r.th,{children:"Proto3 (bytes)"}),(0,o.jsx)(r.th,{children:"Arrow (bytes)"}),(0,o.jsx)(r.th,{children:"PSDB Ratio"}),(0,o.jsx)(r.th,{children:"Proto3 Ratio"}),(0,o.jsx)(r.th,{children:"Arrow Ratio"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100"}),(0,o.jsx)(r.td,{children:"400"}),(0,o.jsx)(r.td,{children:"409"}),(0,o.jsx)(r.td,{children:"490"}),(0,o.jsx)(r.td,{children:"680"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"102.2%"})}),(0,o.jsx)(r.td,{children:"122.5%"}),(0,o.jsx)(r.td,{children:"170.0%"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"1,000"}),(0,o.jsx)(r.td,{children:"4,000"}),(0,o.jsx)(r.td,{children:"4,009"}),(0,o.jsx)(r.td,{children:"4,881"}),(0,o.jsx)(r.td,{children:"4,280"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"100.2%"})}),(0,o.jsx)(r.td,{children:"122.0%"}),(0,o.jsx)(r.td,{children:"107.0%"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"10,000"}),(0,o.jsx)(r.td,{children:"40,000"}),(0,o.jsx)(r.td,{children:"40,009"}),(0,o.jsx)(r.td,{children:"48,717"}),(0,o.jsx)(r.td,{children:"40,280"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"100.0%"})}),(0,o.jsx)(r.td,{children:"121.8%"}),(0,o.jsx)(r.td,{children:"100.7%"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100,000"}),(0,o.jsx)(r.td,{children:"400,000"}),(0,o.jsx)(r.td,{children:"400,009"}),(0,o.jsx)(r.td,{children:"487,225"}),(0,o.jsx)(r.td,{children:"400,280"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"100.0%"})}),(0,o.jsx)(r.td,{children:"121.8%"}),(0,o.jsx)(r.td,{children:"100.1%"})]})]})]}),"\n",(0,o.jsx)(r.h3,{id:"memory-efficiency-lower-is-better",children:"Memory Efficiency (Lower is Better)"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Feature Count"}),(0,o.jsx)(r.th,{children:"PSDB (B/op)"}),(0,o.jsx)(r.th,{children:"Proto3 (B/op)"}),(0,o.jsx)(r.th,{children:"Arrow (B/op)"}),(0,o.jsx)(r.th,{children:"PSDB (allocs/op)"}),(0,o.jsx)(r.th,{children:"Proto3 (allocs/op)"}),(0,o.jsx)(r.th,{children:"Arrow (allocs/op)"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100"}),(0,o.jsx)(r.td,{children:"461"}),(0,o.jsx)(r.td,{children:"768"}),(0,o.jsx)(r.td,{children:"7,032"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"4"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"2"})}),(0,o.jsx)(r.td,{children:"66"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"1,000"}),(0,o.jsx)(r.td,{children:"4,143"}),(0,o.jsx)(r.td,{children:"5,632"}),(0,o.jsx)(r.td,{children:"15,544"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"4"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"2"})}),(0,o.jsx)(r.td,{children:"66"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"10,000"}),(0,o.jsx)(r.td,{children:"41,029"}),(0,o.jsx)(r.td,{children:"49,408"}),(0,o.jsx)(r.td,{children:"122,617"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"4"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"2"})}),(0,o.jsx)(r.td,{children:"66"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100,000"}),(0,o.jsx)(r.td,{children:"401,814"}),(0,o.jsx)(r.td,{children:"491,776"}),(0,o.jsx)(r.td,{children:"957,948"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"4"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"2"})}),(0,o.jsx)(r.td,{children:"66"})]})]})]}),"\n",(0,o.jsx)(r.h3,{id:"throughput-higher-is-better",children:"Throughput (Higher is Better)"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Format"}),(0,o.jsx)(r.th,{children:"Throughput (MB/s)"}),(0,o.jsx)(r.th,{children:"Relative Performance"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"PSDB"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"975.31"})}),(0,o.jsx)(r.td,{children:"Baseline (100%)"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"Proto3"}),(0,o.jsx)(r.td,{children:"666.12"}),(0,o.jsx)(r.td,{children:"68% of PSDB"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"Arrow"}),(0,o.jsx)(r.td,{children:"768.25"}),(0,o.jsx)(r.td,{children:"79% of PSDB"})]})]})]}),"\n",(0,o.jsx)(r.h2,{id:"detailed-analysis",children:"Detailed Analysis"}),"\n",(0,o.jsx)(r.h3,{id:"psdb-advantages",children:"PSDB Advantages"}),"\n",(0,o.jsxs)(r.ol,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Minimal Overhead"}),": Only 9-byte header + raw data"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Optimal Packing"}),": No padding or metadata bloat"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Memory Pooling"}),": Reuses objects to minimize allocations"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Native Optimization"}),": Designed specifically for feature store use cases"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"protocol-buffers-analysis",children:"Protocol Buffers Analysis"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Consistent Overhead"}),": ~22% size penalty across all scales"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Moderate Speed"}),": Reasonable serialization performance"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Low Allocations"}),": Only 2 allocations per operation"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Varint Encoding"}),": Efficient for smaller integers"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"apache-arrow-analysis",children:"Apache Arrow Analysis"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"High Setup Cost"}),": Complex object creation (66 allocations)"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Good Large-Scale"}),": Better relative performance with more data"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Size Efficient"}),": Approaches raw data size for large datasets"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Memory Intensive"}),": Significant memory overhead per operation"]}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"scaling-characteristics",children:"Scaling Characteristics"}),"\n",(0,o.jsx)(r.h3,{id:"small-datasets-100-1000-features",children:"Small Datasets (100-1,000 features)"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"PSDB"}),": Consistent low overhead"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Proto3"}),": Moderate overhead, stable performance"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Arrow"}),": High setup cost dominates"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"large-datasets-10000-features",children:"Large Datasets (10,000+ features)"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"PSDB"}),": Linear scaling, maintains efficiency"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Proto3"}),": Good scaling but with consistent 22% size penalty"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Arrow"}),": Better amortization of setup costs"]}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"technical-implementation-notes",children:"Technical Implementation Notes"}),"\n",(0,o.jsx)(r.h3,{id:"psdb-optimizations",children:"PSDB Optimizations"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-go",children:"// Object pooling for zero allocations\nvar psdbPool = GetPSDBPool()\n\n// Direct buffer allocation\nheaderSize := PSDBLayout1LengthBytes // 9 bytes\ndataSize := len(data) * 4 // 4 bytes per int32\n\n// No compression for maximum speed\ncompressionType = compression.TypeNone\n"})}),"\n",(0,o.jsx)(r.h3,{id:"memory-layout-comparison",children:"Memory Layout Comparison"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{children:"PSDB Layout: [9-byte header][raw data]\nProto3 Layout: [varint lengths][encoded data][padding]\nArrow Layout: [schema][metadata][buffers][padding]\n"})}),"\n",(0,o.jsx)(r.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"The optimal format depends on your use case and scale"}),":"]}),"\n",(0,o.jsx)(r.h3,{id:"psdb-best-for-small-medium-scale-1000-features",children:(0,o.jsx)(r.strong,{children:"PSDB: Best for Small-Medium Scale (\u22641,000 features)"})}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Excellent speed"}),": Up to 83% faster than Arrow for small datasets"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Optimal size efficiency"}),": Closest to raw data size (100.0-102.2%)"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Memory efficiency"}),": Only 4 allocations per operation"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Low overhead"}),": Minimal 9-byte header"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"apache-arrow-best-for-large-scale-10000-features",children:(0,o.jsx)(r.strong,{children:"Apache Arrow: Best for Large Scale (\u226510,000 features)"})}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Superior large-scale performance"}),": 67% faster than PSDB at 100k features"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Efficient scaling"}),": Better amortization of setup costs"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Size competitive"}),": Approaches raw data size for large datasets"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"protocol-buffers-balanced-middle-ground",children:(0,o.jsx)(r.strong,{children:"Protocol Buffers: Balanced Middle Ground"})}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Consistent performance"}),": Moderate speed across all scales"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Standard tooling"}),": Wide ecosystem support"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Predictable overhead"}),": ~22% size penalty but stable"]}),"\n"]}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"Recommendation"}),": For the Online Feature Store's typical use patterns with ",(0,o.jsx)(r.strong,{children:"sub-1,000 feature requests"}),", ",(0,o.jsx)(r.strong,{children:"PSDB is the optimal choice"})," for production deployments."]}),"\n",(0,o.jsx)(r.h2,{id:"raw-benchmark-output-uncompressed-data",children:"Raw Benchmark Output [Uncompressed Data]"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{children:"goos: darwin\ngoarch: arm64\npkg: github.com/Meesho/BharatMLStack/online-feature-store/internal/data/blocks\nBenchmarkInt32SerializationPSDB/PSDB/Size-100-10 1940238 625.3 ns/op 409.0 bytes 461 B/op 4 allocs/op\nBenchmarkInt32SerializationPSDB/PSDB/Size-1000-10 288300 4056 ns/op 4009 bytes 4143 B/op 4 allocs/op\nBenchmarkInt32SerializationPSDB/PSDB/Size-10000-10 32144 37357 ns/op 40009 bytes 41032 B/op 4 allocs/op\nBenchmarkInt32SerializationPSDB/PSDB/Size-100000-10 3244 359932 ns/op 400009 bytes 401572 B/op 4 allocs/op\nBenchmarkInt32SerializationProto3/Proto3/Size-100-10 1703066 695.9 ns/op 486.0 bytes 768 B/op 2 allocs/op\nBenchmarkInt32SerializationProto3/Proto3/Size-1000-10 194142 6004 ns/op 4885 bytes 5632 B/op 2 allocs/op\nBenchmarkInt32SerializationProto3/Proto3/Size-10000-10 20937 57674 ns/op 48734 bytes 49408 B/op 2 allocs/op\nBenchmarkInt32SerializationProto3/Proto3/Size-100000-10 2085 556541 ns/op 487263 bytes 491776 B/op 2 allocs/op\nBenchmarkInt32SerializationArrow/Arrow/Size-100-10 302257 3831 ns/op 680.0 bytes 7032 B/op 66 allocs/op\nBenchmarkInt32SerializationArrow/Arrow/Size-1000-10 228718 5191 ns/op 4280 bytes 15544 B/op 66 allocs/op\nBenchmarkInt32SerializationArrow/Arrow/Size-10000-10 52482 23173 ns/op 40280 bytes 122617 B/op 66 allocs/op\nBenchmarkInt32SerializationArrow/Arrow/Size-100000-10 9765 120081 ns/op 400280 bytes 957948 B/op 66 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100/PSDB-10 1919401 670.2 ns/op 409.0 bytes 461 B/op 4 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100/Proto3-10 1733599 693.2 ns/op 490.0 bytes 768 B/op 2 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100/Arrow-10 304066 3896 ns/op 680.0 bytes 7032 B/op 66 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-1000/PSDB-10 290784 4074 ns/op 4009 bytes 4143 B/op 4 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-1000/Proto3-10 196962 6034 ns/op 4882 bytes 5632 B/op 2 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-1000/Arrow-10 227908 5240 ns/op 4280 bytes 15544 B/op 66 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-10000/PSDB-10 31732 38064 ns/op 40009 bytes 41024 B/op 4 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-10000/Proto3-10 20827 57670 ns/op 48745 bytes 49408 B/op 2 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-10000/Arrow-10 52000 23557 ns/op 40280 bytes 122617 B/op 66 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100000/PSDB-10 3268 363817 ns/op 400009 bytes 401575 B/op 4 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100000/Proto3-10 2097 559621 ns/op 487247 bytes 491776 B/op 2 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100000/Arrow-10 10000 118489 ns/op 400280 bytes 957947 B/op 66 allocs/op\nBenchmarkInt32SizeComparison/SizeOnly/Size-100-10 1000000000 0.0000223 ns/op 680.0 arrow_bytes 170.0 arrow_ratio_pct 490.0 proto3_bytes 122.5 proto3_ratio_pct 409.0 psdb_bytes 102.2 psdb_ratio_pct 400.0 raw_bytes\nBenchmarkInt32SizeComparison/SizeOnly/Size-1000-10 1000000000 0.0000379 ns/op 4280 arrow_bytes 107.0 arrow_ratio_pct 4881 proto3_bytes 122.0 proto3_ratio_pct 4009 psdb_bytes 100.2 psdb_ratio_pct 4000 raw_bytes\nBenchmarkInt32SizeComparison/SizeOnly/Size-10000-10 1000000000 0.0001182 ns/op 40280 arrow_bytes 100.7 arrow_ratio_pct 48717 proto3_bytes 121.8 proto3_ratio_pct 40009 psdb_bytes 100.0 psdb_ratio_pct 40000 raw_bytes\nBenchmarkInt32SizeComparison/SizeOnly/Size-100000-10 1000000000 0.001034 ns/op 400280 arrow_bytes 100.1 arrow_ratio_pct 487225 proto3_bytes 121.8 proto3_ratio_pct 400009 psdb_bytes 100.0 psdb_ratio_pct 400000 raw_bytes\nBenchmarkInt32MemoryEfficiency/Memory/Size-100/PSDB_Pooled-10 1926676 622.4 ns/op 461 B/op 4 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100/Proto3-10 1713428 685.0 ns/op 768 B/op 2 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100/Arrow-10 312584 4029 ns/op 7032 B/op 66 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-1000/PSDB_Pooled-10 290197 4189 ns/op 4143 B/op 4 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-1000/Proto3-10 195694 6078 ns/op 5632 B/op 2 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-1000/Arrow-10 224722 5190 ns/op 15544 B/op 66 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-10000/PSDB_Pooled-10 31898 37684 ns/op 41029 B/op 4 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-10000/Proto3-10 20840 58032 ns/op 49408 B/op 2 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-10000/Arrow-10 51440 24049 ns/op 122617 B/op 66 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100000/PSDB_Pooled-10 3325 357690 ns/op 401814 B/op 4 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100000/Proto3-10 2158 559694 ns/op 491776 B/op 2 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100000/Arrow-10 9622 117515 ns/op 957948 B/op 66 allocs/op\nBenchmarkInt32Throughput/Throughput/PSDB-10 290912 4101 ns/op 975.31 MB/s 4143 B/op 4 allocs/op\nBenchmarkInt32Throughput/Throughput/Proto3-10 199087 6005 ns/op 666.12 MB/s 5632 B/op 2 allocs/op\nBenchmarkInt32Throughput/Throughput/Arrow-10 229594 5207 ns/op 768.25 MB/s 15544 B/op 66 allocs/op\nBenchmarkGetPSDBPoolWithoutPool-10 23836599 50.64 ns/op 192 B/op 1 allocs/op\nBenchmarkGetPSDBPoolWithPool-10 100000000 10.76 ns/op 0 B/op 0 allocs/op\nPASS\nok github.com/Meesho/BharatMLStack/online-feature-store/internal/data/blocks 58.891s\n"})}),"\n",(0,o.jsx)(r.hr,{}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.em,{children:"Benchmarks run on Apple Silicon (ARM64) with Go 1.22.12. Results may vary on different architectures and Go versions."})})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/docs/assets/js/67d4782a.96733ef0.js b/docs/assets/js/67d4782a.96733ef0.js new file mode 100644 index 00000000..dfdae632 --- /dev/null +++ b/docs/assets/js/67d4782a.96733ef0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8588],{8453:(e,r,n)=>{n.d(r,{R:()=>t,x:()=>l});var s=n(6540);const o={},i=s.createContext(o);function t(e){const r=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),s.createElement(i.Provider,{value:r},e.children)}},8769:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"online-feature-store/v1.0.0/benchmarks","title":"Benchmarks","description":"Summary","source":"@site/docs/online-feature-store/v1.0.0/benchmarks.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/benchmarks","permalink":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/benchmarks.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Benchmarks","sidebar_position":3},"sidebar":"tutorialSidebar","previous":{"title":"Data Formats","permalink":"/BharatMLStack/online-feature-store/v1.0.0/data-formats"},"next":{"title":"Key Functionalities","permalink":"/BharatMLStack/online-feature-store/v1.0.0/functionalities"}}');var o=n(4848),i=n(8453);const t={title:"Benchmarks",sidebar_position:3},l="Serialization Performance Benchmarks",a={},c=[{value:"Summary",id:"summary",level:2},{value:"Test Methodology",id:"test-methodology",level:2},{value:"Environment",id:"environment",level:3},{value:"Test Data",id:"test-data",level:3},{value:"Performance Results",id:"performance-results",level:2},{value:"Serialization Speed (Lower is Better)",id:"serialization-speed-lower-is-better",level:3},{value:"Serialized Size (Lower is Better)",id:"serialized-size-lower-is-better",level:3},{value:"Memory Efficiency (Lower is Better)",id:"memory-efficiency-lower-is-better",level:3},{value:"Throughput (Higher is Better)",id:"throughput-higher-is-better",level:3},{value:"Detailed Analysis",id:"detailed-analysis",level:2},{value:"PSDB Advantages",id:"psdb-advantages",level:3},{value:"Protocol Buffers Analysis",id:"protocol-buffers-analysis",level:3},{value:"Apache Arrow Analysis",id:"apache-arrow-analysis",level:3},{value:"Scaling Characteristics",id:"scaling-characteristics",level:2},{value:"Small Datasets (100-1,000 features)",id:"small-datasets-100-1000-features",level:3},{value:"Large Datasets (10,000+ features)",id:"large-datasets-10000-features",level:3},{value:"Technical Implementation Notes",id:"technical-implementation-notes",level:2},{value:"PSDB Optimizations",id:"psdb-optimizations",level:3},{value:"Memory Layout Comparison",id:"memory-layout-comparison",level:3},{value:"Conclusion",id:"conclusion",level:2},{value:"PSDB: Best for Small-Medium Scale (\u22641,000 features)",id:"psdb-best-for-small-medium-scale-1000-features",level:3},{value:"Apache Arrow: Best for Large Scale (\u226510,000 features)",id:"apache-arrow-best-for-large-scale-10000-features",level:3},{value:"Protocol Buffers: Balanced Middle Ground",id:"protocol-buffers-balanced-middle-ground",level:3},{value:"Raw Benchmark Output [Uncompressed Data]",id:"raw-benchmark-output-uncompressed-data",level:2}];function d(e){const r={code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"serialization-performance-benchmarks",children:"Serialization Performance Benchmarks"})}),"\n",(0,o.jsx)(r.h2,{id:"summary",children:"Summary"}),"\n",(0,o.jsx)(r.p,{children:"This report presents comprehensive benchmark results comparing three serialization formats for the BharatML Online Feature Store:"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"PSDB (Permanent Storage Data Block)"})," - Our custom format"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Protocol Buffers v3"})," - Google's binary serialization"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Apache Arrow"})," - Columnar in-memory analytics format"]}),"\n"]}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.strong,{children:"Key Findings:"})}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:["\ud83c\udfc6 ",(0,o.jsx)(r.strong,{children:"PSDB excels at small-to-medium scales"})," (100-1,000 features)"]}),"\n",(0,o.jsxs)(r.li,{children:["\u26a1 ",(0,o.jsx)(r.strong,{children:"35% faster"})," than Proto3, but ",(0,o.jsx)(r.strong,{children:"67% slower"})," than Arrow (for 100k features)"]}),"\n",(0,o.jsxs)(r.li,{children:["\ud83d\udce6 ",(0,o.jsx)(r.strong,{children:"18% smaller"})," than Proto3, comparable to Arrow"]}),"\n",(0,o.jsxs)(r.li,{children:["\ud83e\udde0 ",(0,o.jsx)(r.strong,{children:"93% fewer allocations"})," than Arrow (4 vs 66 allocs/op)"]}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"test-methodology",children:"Test Methodology"}),"\n",(0,o.jsx)(r.h3,{id:"environment",children:"Environment"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Platform"}),": macOS ARM64 (Apple Silicon)"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Go Version"}),": 1.22.12"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Test Date"}),": January 2025"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Compression"}),": Disabled for fair comparison (",(0,o.jsx)(r.code,{children:"compression.TypeNone"}),")"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"test-data",children:"Test Data"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Data Type"}),": Int32 arrays"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Feature Group Sizes"}),": 100, 1,000, 10,000, 100,000 features"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Test Iterations"}),": Variable (Go benchmark auto-scaling)"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Pool Optimization"}),": PSDB uses object pooling for memory efficiency"]}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"performance-results",children:"Performance Results"}),"\n",(0,o.jsx)(r.h3,{id:"serialization-speed-lower-is-better",children:"Serialization Speed (Lower is Better)"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Feature Count"}),(0,o.jsx)(r.th,{children:"PSDB (ns/op)"}),(0,o.jsx)(r.th,{children:"Proto3 (ns/op)"}),(0,o.jsx)(r.th,{children:"Arrow (ns/op)"}),(0,o.jsx)(r.th,{children:"PSDB vs Proto3"}),(0,o.jsx)(r.th,{children:"PSDB vs Arrow"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100"}),(0,o.jsx)(r.td,{children:"625"}),(0,o.jsx)(r.td,{children:"696"}),(0,o.jsx)(r.td,{children:"3,831"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"10% faster"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"84% faster"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"1,000"}),(0,o.jsx)(r.td,{children:"4,056"}),(0,o.jsx)(r.td,{children:"6,004"}),(0,o.jsx)(r.td,{children:"5,191"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"32% faster"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"22% faster"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"10,000"}),(0,o.jsx)(r.td,{children:"37,357"}),(0,o.jsx)(r.td,{children:"57,674"}),(0,o.jsx)(r.td,{children:"23,173"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"35% faster"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"38% slower"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100,000"}),(0,o.jsx)(r.td,{children:"359,932"}),(0,o.jsx)(r.td,{children:"556,541"}),(0,o.jsx)(r.td,{children:"118,489"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"35% faster"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"67% slower"})})]})]})]}),"\n",(0,o.jsx)(r.h3,{id:"serialized-size-lower-is-better",children:"Serialized Size (Lower is Better)"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Feature Count"}),(0,o.jsx)(r.th,{children:"Raw Size (bytes)"}),(0,o.jsx)(r.th,{children:"PSDB (bytes)"}),(0,o.jsx)(r.th,{children:"Proto3 (bytes)"}),(0,o.jsx)(r.th,{children:"Arrow (bytes)"}),(0,o.jsx)(r.th,{children:"PSDB Ratio"}),(0,o.jsx)(r.th,{children:"Proto3 Ratio"}),(0,o.jsx)(r.th,{children:"Arrow Ratio"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100"}),(0,o.jsx)(r.td,{children:"400"}),(0,o.jsx)(r.td,{children:"409"}),(0,o.jsx)(r.td,{children:"490"}),(0,o.jsx)(r.td,{children:"680"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"102.2%"})}),(0,o.jsx)(r.td,{children:"122.5%"}),(0,o.jsx)(r.td,{children:"170.0%"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"1,000"}),(0,o.jsx)(r.td,{children:"4,000"}),(0,o.jsx)(r.td,{children:"4,009"}),(0,o.jsx)(r.td,{children:"4,881"}),(0,o.jsx)(r.td,{children:"4,280"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"100.2%"})}),(0,o.jsx)(r.td,{children:"122.0%"}),(0,o.jsx)(r.td,{children:"107.0%"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"10,000"}),(0,o.jsx)(r.td,{children:"40,000"}),(0,o.jsx)(r.td,{children:"40,009"}),(0,o.jsx)(r.td,{children:"48,717"}),(0,o.jsx)(r.td,{children:"40,280"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"100.0%"})}),(0,o.jsx)(r.td,{children:"121.8%"}),(0,o.jsx)(r.td,{children:"100.7%"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100,000"}),(0,o.jsx)(r.td,{children:"400,000"}),(0,o.jsx)(r.td,{children:"400,009"}),(0,o.jsx)(r.td,{children:"487,225"}),(0,o.jsx)(r.td,{children:"400,280"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"100.0%"})}),(0,o.jsx)(r.td,{children:"121.8%"}),(0,o.jsx)(r.td,{children:"100.1%"})]})]})]}),"\n",(0,o.jsx)(r.h3,{id:"memory-efficiency-lower-is-better",children:"Memory Efficiency (Lower is Better)"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Feature Count"}),(0,o.jsx)(r.th,{children:"PSDB (B/op)"}),(0,o.jsx)(r.th,{children:"Proto3 (B/op)"}),(0,o.jsx)(r.th,{children:"Arrow (B/op)"}),(0,o.jsx)(r.th,{children:"PSDB (allocs/op)"}),(0,o.jsx)(r.th,{children:"Proto3 (allocs/op)"}),(0,o.jsx)(r.th,{children:"Arrow (allocs/op)"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100"}),(0,o.jsx)(r.td,{children:"461"}),(0,o.jsx)(r.td,{children:"768"}),(0,o.jsx)(r.td,{children:"7,032"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"4"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"2"})}),(0,o.jsx)(r.td,{children:"66"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"1,000"}),(0,o.jsx)(r.td,{children:"4,143"}),(0,o.jsx)(r.td,{children:"5,632"}),(0,o.jsx)(r.td,{children:"15,544"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"4"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"2"})}),(0,o.jsx)(r.td,{children:"66"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"10,000"}),(0,o.jsx)(r.td,{children:"41,029"}),(0,o.jsx)(r.td,{children:"49,408"}),(0,o.jsx)(r.td,{children:"122,617"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"4"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"2"})}),(0,o.jsx)(r.td,{children:"66"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"100,000"}),(0,o.jsx)(r.td,{children:"401,814"}),(0,o.jsx)(r.td,{children:"491,776"}),(0,o.jsx)(r.td,{children:"957,948"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"4"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"2"})}),(0,o.jsx)(r.td,{children:"66"})]})]})]}),"\n",(0,o.jsx)(r.h3,{id:"throughput-higher-is-better",children:"Throughput (Higher is Better)"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Format"}),(0,o.jsx)(r.th,{children:"Throughput (MB/s)"}),(0,o.jsx)(r.th,{children:"Relative Performance"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"PSDB"})}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.strong,{children:"975.31"})}),(0,o.jsx)(r.td,{children:"Baseline (100%)"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"Proto3"}),(0,o.jsx)(r.td,{children:"666.12"}),(0,o.jsx)(r.td,{children:"68% of PSDB"})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"Arrow"}),(0,o.jsx)(r.td,{children:"768.25"}),(0,o.jsx)(r.td,{children:"79% of PSDB"})]})]})]}),"\n",(0,o.jsx)(r.h2,{id:"detailed-analysis",children:"Detailed Analysis"}),"\n",(0,o.jsx)(r.h3,{id:"psdb-advantages",children:"PSDB Advantages"}),"\n",(0,o.jsxs)(r.ol,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Minimal Overhead"}),": Only 9-byte header + raw data"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Optimal Packing"}),": No padding or metadata bloat"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Memory Pooling"}),": Reuses objects to minimize allocations"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Native Optimization"}),": Designed specifically for feature store use cases"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"protocol-buffers-analysis",children:"Protocol Buffers Analysis"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Consistent Overhead"}),": ~22% size penalty across all scales"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Moderate Speed"}),": Reasonable serialization performance"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Low Allocations"}),": Only 2 allocations per operation"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Varint Encoding"}),": Efficient for smaller integers"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"apache-arrow-analysis",children:"Apache Arrow Analysis"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"High Setup Cost"}),": Complex object creation (66 allocations)"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Good Large-Scale"}),": Better relative performance with more data"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Size Efficient"}),": Approaches raw data size for large datasets"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Memory Intensive"}),": Significant memory overhead per operation"]}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"scaling-characteristics",children:"Scaling Characteristics"}),"\n",(0,o.jsx)(r.h3,{id:"small-datasets-100-1000-features",children:"Small Datasets (100-1,000 features)"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"PSDB"}),": Consistent low overhead"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Proto3"}),": Moderate overhead, stable performance"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Arrow"}),": High setup cost dominates"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"large-datasets-10000-features",children:"Large Datasets (10,000+ features)"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"PSDB"}),": Linear scaling, maintains efficiency"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Proto3"}),": Good scaling but with consistent 22% size penalty"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Arrow"}),": Better amortization of setup costs"]}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"technical-implementation-notes",children:"Technical Implementation Notes"}),"\n",(0,o.jsx)(r.h3,{id:"psdb-optimizations",children:"PSDB Optimizations"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-go",children:"// Object pooling for zero allocations\nvar psdbPool = GetPSDBPool()\n\n// Direct buffer allocation\nheaderSize := PSDBLayout1LengthBytes // 9 bytes\ndataSize := len(data) * 4 // 4 bytes per int32\n\n// No compression for maximum speed\ncompressionType = compression.TypeNone\n"})}),"\n",(0,o.jsx)(r.h3,{id:"memory-layout-comparison",children:"Memory Layout Comparison"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{children:"PSDB Layout: [9-byte header][raw data]\nProto3 Layout: [varint lengths][encoded data][padding]\nArrow Layout: [schema][metadata][buffers][padding]\n"})}),"\n",(0,o.jsx)(r.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"The optimal format depends on your use case and scale"}),":"]}),"\n",(0,o.jsx)(r.h3,{id:"psdb-best-for-small-medium-scale-1000-features",children:(0,o.jsx)(r.strong,{children:"PSDB: Best for Small-Medium Scale (\u22641,000 features)"})}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Excellent speed"}),": Up to 83% faster than Arrow for small datasets"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Optimal size efficiency"}),": Closest to raw data size (100.0-102.2%)"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Memory efficiency"}),": Only 4 allocations per operation"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Low overhead"}),": Minimal 9-byte header"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"apache-arrow-best-for-large-scale-10000-features",children:(0,o.jsx)(r.strong,{children:"Apache Arrow: Best for Large Scale (\u226510,000 features)"})}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Superior large-scale performance"}),": 67% faster than PSDB at 100k features"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Efficient scaling"}),": Better amortization of setup costs"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Size competitive"}),": Approaches raw data size for large datasets"]}),"\n"]}),"\n",(0,o.jsx)(r.h3,{id:"protocol-buffers-balanced-middle-ground",children:(0,o.jsx)(r.strong,{children:"Protocol Buffers: Balanced Middle Ground"})}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Consistent performance"}),": Moderate speed across all scales"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Standard tooling"}),": Wide ecosystem support"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.strong,{children:"Predictable overhead"}),": ~22% size penalty but stable"]}),"\n"]}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.strong,{children:"Recommendation"}),": For the Online Feature Store's typical use patterns with ",(0,o.jsx)(r.strong,{children:"sub-1,000 feature requests"}),", ",(0,o.jsx)(r.strong,{children:"PSDB is the optimal choice"})," for production deployments."]}),"\n",(0,o.jsx)(r.h2,{id:"raw-benchmark-output-uncompressed-data",children:"Raw Benchmark Output [Uncompressed Data]"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{children:"goos: darwin\ngoarch: arm64\npkg: github.com/Meesho/BharatMLStack/online-feature-store/internal/data/blocks\nBenchmarkInt32SerializationPSDB/PSDB/Size-100-10 1940238 625.3 ns/op 409.0 bytes 461 B/op 4 allocs/op\nBenchmarkInt32SerializationPSDB/PSDB/Size-1000-10 288300 4056 ns/op 4009 bytes 4143 B/op 4 allocs/op\nBenchmarkInt32SerializationPSDB/PSDB/Size-10000-10 32144 37357 ns/op 40009 bytes 41032 B/op 4 allocs/op\nBenchmarkInt32SerializationPSDB/PSDB/Size-100000-10 3244 359932 ns/op 400009 bytes 401572 B/op 4 allocs/op\nBenchmarkInt32SerializationProto3/Proto3/Size-100-10 1703066 695.9 ns/op 486.0 bytes 768 B/op 2 allocs/op\nBenchmarkInt32SerializationProto3/Proto3/Size-1000-10 194142 6004 ns/op 4885 bytes 5632 B/op 2 allocs/op\nBenchmarkInt32SerializationProto3/Proto3/Size-10000-10 20937 57674 ns/op 48734 bytes 49408 B/op 2 allocs/op\nBenchmarkInt32SerializationProto3/Proto3/Size-100000-10 2085 556541 ns/op 487263 bytes 491776 B/op 2 allocs/op\nBenchmarkInt32SerializationArrow/Arrow/Size-100-10 302257 3831 ns/op 680.0 bytes 7032 B/op 66 allocs/op\nBenchmarkInt32SerializationArrow/Arrow/Size-1000-10 228718 5191 ns/op 4280 bytes 15544 B/op 66 allocs/op\nBenchmarkInt32SerializationArrow/Arrow/Size-10000-10 52482 23173 ns/op 40280 bytes 122617 B/op 66 allocs/op\nBenchmarkInt32SerializationArrow/Arrow/Size-100000-10 9765 120081 ns/op 400280 bytes 957948 B/op 66 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100/PSDB-10 1919401 670.2 ns/op 409.0 bytes 461 B/op 4 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100/Proto3-10 1733599 693.2 ns/op 490.0 bytes 768 B/op 2 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100/Arrow-10 304066 3896 ns/op 680.0 bytes 7032 B/op 66 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-1000/PSDB-10 290784 4074 ns/op 4009 bytes 4143 B/op 4 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-1000/Proto3-10 196962 6034 ns/op 4882 bytes 5632 B/op 2 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-1000/Arrow-10 227908 5240 ns/op 4280 bytes 15544 B/op 66 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-10000/PSDB-10 31732 38064 ns/op 40009 bytes 41024 B/op 4 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-10000/Proto3-10 20827 57670 ns/op 48745 bytes 49408 B/op 2 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-10000/Arrow-10 52000 23557 ns/op 40280 bytes 122617 B/op 66 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100000/PSDB-10 3268 363817 ns/op 400009 bytes 401575 B/op 4 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100000/Proto3-10 2097 559621 ns/op 487247 bytes 491776 B/op 2 allocs/op\nBenchmarkInt32SerializationComparison/Comparison/Size-100000/Arrow-10 10000 118489 ns/op 400280 bytes 957947 B/op 66 allocs/op\nBenchmarkInt32SizeComparison/SizeOnly/Size-100-10 1000000000 0.0000223 ns/op 680.0 arrow_bytes 170.0 arrow_ratio_pct 490.0 proto3_bytes 122.5 proto3_ratio_pct 409.0 psdb_bytes 102.2 psdb_ratio_pct 400.0 raw_bytes\nBenchmarkInt32SizeComparison/SizeOnly/Size-1000-10 1000000000 0.0000379 ns/op 4280 arrow_bytes 107.0 arrow_ratio_pct 4881 proto3_bytes 122.0 proto3_ratio_pct 4009 psdb_bytes 100.2 psdb_ratio_pct 4000 raw_bytes\nBenchmarkInt32SizeComparison/SizeOnly/Size-10000-10 1000000000 0.0001182 ns/op 40280 arrow_bytes 100.7 arrow_ratio_pct 48717 proto3_bytes 121.8 proto3_ratio_pct 40009 psdb_bytes 100.0 psdb_ratio_pct 40000 raw_bytes\nBenchmarkInt32SizeComparison/SizeOnly/Size-100000-10 1000000000 0.001034 ns/op 400280 arrow_bytes 100.1 arrow_ratio_pct 487225 proto3_bytes 121.8 proto3_ratio_pct 400009 psdb_bytes 100.0 psdb_ratio_pct 400000 raw_bytes\nBenchmarkInt32MemoryEfficiency/Memory/Size-100/PSDB_Pooled-10 1926676 622.4 ns/op 461 B/op 4 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100/Proto3-10 1713428 685.0 ns/op 768 B/op 2 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100/Arrow-10 312584 4029 ns/op 7032 B/op 66 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-1000/PSDB_Pooled-10 290197 4189 ns/op 4143 B/op 4 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-1000/Proto3-10 195694 6078 ns/op 5632 B/op 2 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-1000/Arrow-10 224722 5190 ns/op 15544 B/op 66 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-10000/PSDB_Pooled-10 31898 37684 ns/op 41029 B/op 4 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-10000/Proto3-10 20840 58032 ns/op 49408 B/op 2 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-10000/Arrow-10 51440 24049 ns/op 122617 B/op 66 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100000/PSDB_Pooled-10 3325 357690 ns/op 401814 B/op 4 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100000/Proto3-10 2158 559694 ns/op 491776 B/op 2 allocs/op\nBenchmarkInt32MemoryEfficiency/Memory/Size-100000/Arrow-10 9622 117515 ns/op 957948 B/op 66 allocs/op\nBenchmarkInt32Throughput/Throughput/PSDB-10 290912 4101 ns/op 975.31 MB/s 4143 B/op 4 allocs/op\nBenchmarkInt32Throughput/Throughput/Proto3-10 199087 6005 ns/op 666.12 MB/s 5632 B/op 2 allocs/op\nBenchmarkInt32Throughput/Throughput/Arrow-10 229594 5207 ns/op 768.25 MB/s 15544 B/op 66 allocs/op\nBenchmarkGetPSDBPoolWithoutPool-10 23836599 50.64 ns/op 192 B/op 1 allocs/op\nBenchmarkGetPSDBPoolWithPool-10 100000000 10.76 ns/op 0 B/op 0 allocs/op\nPASS\nok github.com/Meesho/BharatMLStack/online-feature-store/internal/data/blocks 58.891s\n"})}),"\n",(0,o.jsx)(r.hr,{}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.em,{children:"Benchmarks run on Apple Silicon (ARM64) with Go 1.22.12. Results may vary on different architectures and Go versions."})})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/docs/assets/js/6870.25f53758.js b/docs/assets/js/6870.25f53758.js new file mode 100644 index 00000000..e0e7d9dc --- /dev/null +++ b/docs/assets/js/6870.25f53758.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6870],{3253:(e,t,n)=>{"use strict";n.d(t,{A:()=>ze});var s=n(6540),a=n(8453),r=n(5260),o=n(2303),c=n(4164),i=n(5293),l=n(6342);function d(){const{prism:e}=(0,l.p)(),{colorMode:t}=(0,i.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var u=n(7559),m=n(8426),h=n.n(m),f=n(9532),p=n(4848);const g=/title=(?["'])(?.*?)\1/,x=/\{(?<range>[\d,-]+)\}/,j={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},b={...j,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},v=Object.keys(j);function N(e,t){const n=e.map(e=>{const{start:n,end:s}=b[e];return`(?:${n}\\s*(${t.flatMap(e=>[e.line,e.block?.start,e.block?.end].filter(Boolean)).join("|")})\\s*${s})`}).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function y({showLineNumbers:e,metastring:t}){return"boolean"==typeof e?e?1:void 0:"number"==typeof e?e:function(e){const t=e?.split(" ").find(e=>e.startsWith("showLineNumbers"));if(t){if(t.startsWith("showLineNumbers=")){const e=t.replace("showLineNumbers=","");return parseInt(e,10)}return 1}}(t)}function A(e,t){const{language:n,magicComments:s}=t;if(void 0===n)return{lineClassNames:{},code:e};const a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return N(["js","jsBlock"],t);case"jsx":case"tsx":return N(["js","jsBlock","jsx"],t);case"html":return N(["js","jsBlock","html"],t);case"python":case"py":case"bash":return N(["bash"],t);case"markdown":case"md":return N(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return N(["tex"],t);case"lua":case"haskell":return N(["lua"],t);case"sql":return N(["lua","jsBlock"],t);case"wasm":return N(["wasm"],t);case"vb":case"vba":case"visual-basic":return N(["vb","rem"],t);case"vbnet":return N(["vbnet","rem"],t);case"batch":return N(["rem"],t);case"basic":return N(["rem","f90"],t);case"fsharp":return N(["js","ml"],t);case"ocaml":case"sml":return N(["ml"],t);case"fortran":return N(["f90"],t);case"cobol":return N(["cobol"],t);default:return N(v,t)}}(n,s),r=e.split(/\r?\n/),o=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),c=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),i=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),l=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let u=0;u<r.length;){const e=r[u].match(a);if(!e){u+=1;continue}const t=e.slice(1).find(e=>void 0!==e);c[t]?o[c[t]].range+=`${u},`:i[t]?o[i[t]].start=u:l[t]&&(o[l[t]].range+=`${o[l[t]].start}-${u-1},`),r.splice(u,1)}const d={};return Object.entries(o).forEach(([e,{range:t}])=>{h()(t).forEach(t=>{d[t]??=[],d[t].push(e)})}),{code:r.join("\n"),lineClassNames:d}}function w(e,t){const n=e.replace(/\r?\n$/,"");return function(e,{metastring:t,magicComments:n}){if(t&&x.test(t)){const s=t.match(x).groups.range;if(0===n.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${t}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const a=n[0].className,r=h()(s).filter(e=>e>0).map(e=>[e-1,[a]]);return{lineClassNames:Object.fromEntries(r),code:e}}return null}(n,{...t})??A(n,{...t})}function C(e){const t=function(e){return t=e.language??function(e){if(!e)return;const t=e.split(" ").find(e=>e.startsWith("language-"));return t?.replace(/language-/,"")}(e.className)??e.defaultLanguage,t?.toLowerCase()??"text";var t}({language:e.language,defaultLanguage:e.defaultLanguage,className:e.className}),{lineClassNames:n,code:s}=w(e.code,{metastring:e.metastring,magicComments:e.magicComments,language:t}),a=function({className:e,language:t}){return(0,c.A)(e,t&&!e?.includes(`language-${t}`)&&`language-${t}`)}({className:e.className,language:t}),r=(o=e.metastring,(o?.match(g)?.groups.title??"")||e.title);var o;const i=y({showLineNumbers:e.showLineNumbers,metastring:e.metastring});return{codeInput:e.code,code:s,className:a,language:t,title:r,lineNumbersStart:i,lineClassNames:n}}const k=(0,s.createContext)(null);function B({metadata:e,wordWrap:t,children:n}){const a=(0,s.useMemo)(()=>({metadata:e,wordWrap:t}),[e,t]);return(0,p.jsx)(k.Provider,{value:a,children:n})}function E(){const e=(0,s.useContext)(k);if(null===e)throw new f.dV("CodeBlockContextProvider");return e}const L="codeBlockContainer_Ckt0";function T({as:e,...t}){const n=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(([e,s])=>{const a=t[e];a&&"string"==typeof s&&(n[a]=s)}),n}(d());return(0,p.jsx)(e,{...t,style:n,className:(0,c.A)(t.className,L,u.G.common.codeBlock)})}const _="codeBlock_bY9V",M="codeBlockStandalone_MEMb",S="codeBlockLines_e6Vv",U="codeBlockLinesWithNumbering_o6Pm";function z({children:e,className:t}){return(0,p.jsx)(T,{as:"pre",tabIndex:0,className:(0,c.A)(M,"thin-scrollbar",t),children:(0,p.jsx)("code",{className:S,children:e})})}const I={attributes:!0,characterData:!0,childList:!0,subtree:!0};function H(e,t){const[n,a]=(0,s.useState)(),r=(0,s.useCallback)(()=>{a(e.current?.closest("[role=tabpanel][hidden]"))},[e,a]);(0,s.useEffect)(()=>{r()},[r]),function(e,t,n=I){const a=(0,f._q)(t),r=(0,f.Be)(n);(0,s.useEffect)(()=>{const t=new MutationObserver(a);return e&&t.observe(e,r),()=>t.disconnect()},[e,a,r])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),r())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function R({children:e}){return e}var V=n(1765);function P({line:e,token:t,...n}){return(0,p.jsx)("span",{...n})}const W="codeLine_lJS_",$="codeLineNumber_Tfdd",D="codeLineContent_feaV";function q({line:e,classNames:t,showLineNumbers:n,getLineProps:s,getTokenProps:a}){const r=function(e){const t=1===e.length&&"\n"===e[0].content?e[0]:void 0;return t?[{...t,content:""}]:e}(e),o=s({line:r,className:(0,c.A)(t,n&&W)}),i=r.map((e,t)=>{const n=a({token:e});return(0,p.jsx)(P,{...n,line:r,token:e,children:n.children},t)});return(0,p.jsxs)("span",{...o,children:[n?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:$}),(0,p.jsx)("span",{className:D,children:i})]}):i,(0,p.jsx)("br",{})]})}const O=s.forwardRef((e,t)=>(0,p.jsx)("pre",{ref:t,tabIndex:0,...e,className:(0,c.A)(e.className,_,"thin-scrollbar")}));function F(e){const{metadata:t}=E();return(0,p.jsx)("code",{...e,className:(0,c.A)(e.className,S,void 0!==t.lineNumbersStart&&U),style:{...e.style,counterReset:void 0===t.lineNumbersStart?void 0:"line-count "+(t.lineNumbersStart-1)}})}function G({className:e}){const{metadata:t,wordWrap:n}=E(),s=d(),{code:a,language:r,lineNumbersStart:o,lineClassNames:i}=t;return(0,p.jsx)(V.f4,{theme:s,code:a,language:r,children:({className:t,style:s,tokens:a,getLineProps:r,getTokenProps:l})=>(0,p.jsx)(O,{ref:n.codeBlockRef,className:(0,c.A)(e,t),style:s,children:(0,p.jsx)(F,{children:a.map((e,t)=>(0,p.jsx)(q,{line:e,getLineProps:r,getTokenProps:l,classNames:i[t],showLineNumbers:void 0!==o},t))})})})}function J({children:e,fallback:t}){return(0,o.A)()?(0,p.jsx)(p.Fragment,{children:e?.()}):t??null}var Z=n(1312);function Y({className:e,...t}){return(0,p.jsx)("button",{type:"button",...t,className:(0,c.A)("clean-btn",e)})}function Q(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function X(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const K={copyButtonCopied:"copyButtonCopied_Vdqa",copyButtonIcons:"copyButtonIcons_IEyt",copyButtonIcon:"copyButtonIcon_TrPX",copyButtonSuccessIcon:"copyButtonSuccessIcon_cVMy"};function ee(e){return e?(0,Z.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,Z.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"})}function te(){const{metadata:{code:e}}=E(),[t,n]=(0,s.useState)(!1),a=(0,s.useRef)(void 0),r=(0,s.useCallback)(()=>{!function(e,{target:t=document.body}={}){if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const n=document.createElement("textarea"),s=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.all="unset",n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.width="2em",n.style.height="2em",n.style.padding="0",n.style.border="none",n.style.outline="none",n.style.boxShadow="none",n.style.background="transparent",n.style.fontSize="12pt";const a=document.getSelection(),r=a.rangeCount>0&&a.getRangeAt(0);t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let o=!1;try{o=document.execCommand("copy")}catch{}n.remove(),r&&(a.removeAllRanges(),a.addRange(r)),s&&s.focus()}(e),n(!0),a.current=window.setTimeout(()=>{n(!1)},1e3)},[e]);return(0,s.useEffect)(()=>()=>window.clearTimeout(a.current),[]),{copyCode:r,isCopied:t}}function ne({className:e}){const{copyCode:t,isCopied:n}=te();return(0,p.jsx)(Y,{"aria-label":ee(n),title:(0,Z.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.A)(e,K.copyButton,n&&K.copyButtonCopied),onClick:t,children:(0,p.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,p.jsx)(Q,{className:K.copyButtonIcon}),(0,p.jsx)(X,{className:K.copyButtonSuccessIcon})]})})}function se(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const ae="wordWrapButtonIcon_b1P5",re="wordWrapButtonEnabled_uzNF";function oe({className:e}){const{wordWrap:t}=E();if(!(t.isEnabled||t.isCodeScrollable))return!1;const n=(0,Z.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,p.jsx)(Y,{onClick:()=>t.toggle(),className:(0,c.A)(e,t.isEnabled&&re),"aria-label":n,title:n,children:(0,p.jsx)(se,{className:ae,"aria-hidden":"true"})})}const ce="buttonGroup_M5ko";function ie({className:e}){return(0,p.jsx)(J,{children:()=>(0,p.jsxs)("div",{className:(0,c.A)(e,ce),children:[(0,p.jsx)(oe,{}),(0,p.jsx)(ne,{})]})})}const le="codeBlockContent_QJqH",de="codeBlockTitle_OeMC";function ue({className:e}){const{metadata:t}=E();return(0,p.jsxs)(T,{as:"div",className:(0,c.A)(e,t.className),children:[t.title&&(0,p.jsx)("div",{className:de,children:(0,p.jsx)(R,{children:t.title})}),(0,p.jsxs)("div",{className:le,children:[(0,p.jsx)(G,{}),(0,p.jsx)(ie,{})]})]})}function me(e){const t=function(e){const{prism:t}=(0,l.p)();return C({code:e.children,className:e.className,metastring:e.metastring,magicComments:t.magicComments,defaultLanguage:t.defaultLanguage,language:e.language,title:e.title,showLineNumbers:e.showLineNumbers})}(e),n=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),r=(0,s.useRef)(null),o=(0,s.useCallback)(()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[r,e]),c=(0,s.useCallback)(()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");a(n)},[r]);return H(r,c),(0,s.useEffect)(()=>{c()},[e,c]),(0,s.useEffect)(()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)}),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:o}}();return(0,p.jsx)(B,{metadata:t,wordWrap:n,children:(0,p.jsx)(ue,{})})}function he({children:e,...t}){const n=(0,o.A)(),a=function(e){return s.Children.toArray(e).some(e=>(0,s.isValidElement)(e))?e:Array.isArray(e)?e.join(""):e}(e),r="string"==typeof a?me:z;return(0,p.jsx)(r,{...t,children:a},String(n))}function fe(e){return(0,p.jsx)("code",{...e})}var pe=n(8774);var ge=n(3427),xe=n(1422);const je="details_lb9f",be="isBrowser_bmU9",ve="collapsibleContent_i85q";function Ne(e){return!!e&&("SUMMARY"===e.tagName||Ne(e.parentElement))}function ye(e,t){return!!e&&(e===t||ye(e.parentElement,t))}function Ae({summary:e,children:t,...n}){(0,ge.A)().collectAnchor(n.id);const a=(0,o.A)(),r=(0,s.useRef)(null),{collapsed:i,setCollapsed:l}=(0,xe.u)({initialState:!n.open}),[d,u]=(0,s.useState)(n.open),m=s.isValidElement(e)?e:(0,p.jsx)("summary",{children:e??"Details"});return(0,p.jsxs)("details",{...n,ref:r,open:d,"data-collapsed":i,className:(0,c.A)(je,a&&be,n.className),onMouseDown:e=>{Ne(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Ne(t)&&ye(t,r.current)&&(e.preventDefault(),i?(l(!1),u(!0)):l(!0))},children:[m,(0,p.jsx)(xe.N,{lazy:!1,collapsed:i,onCollapseTransitionEnd:e=>{l(e),u(!e)},children:(0,p.jsx)("div",{className:ve,children:t})})]})}const we="details_b_Ee";function Ce({...e}){return(0,p.jsx)(Ae,{...e,className:(0,c.A)("alert alert--info",we,e.className)})}function ke(e){const t=s.Children.toArray(e.children),n=t.find(e=>s.isValidElement(e)&&"summary"===e.type),a=(0,p.jsx)(p.Fragment,{children:t.filter(e=>e!==n)});return(0,p.jsx)(Ce,{...e,summary:n,children:a})}var Be=n(1107);function Ee(e){return(0,p.jsx)(Be.A,{...e})}const Le="containsTaskList_mC6p";function Te(e){if(void 0!==e)return(0,c.A)(e,e?.includes("contains-task-list")&&Le)}const _e="img_ev3q";var Me=n(7293),Se=n(418);const Ue={Head:r.A,details:ke,Details:ke,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))}(e)?(0,p.jsx)(fe,{...e}):(0,p.jsx)(he,{...e})},a:function(e){return(0,p.jsx)(pe.A,{...e})},pre:function(e){return(0,p.jsx)(p.Fragment,{children:e.children})},ul:function(e){return(0,p.jsx)("ul",{...e,className:Te(e.className)})},li:function(e){return(0,ge.A)().collectAnchor(e.id),(0,p.jsx)("li",{...e})},img:function(e){return(0,p.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,c.A)(t,_e))});var t},h1:e=>(0,p.jsx)(Ee,{as:"h1",...e}),h2:e=>(0,p.jsx)(Ee,{as:"h2",...e}),h3:e=>(0,p.jsx)(Ee,{as:"h3",...e}),h4:e=>(0,p.jsx)(Ee,{as:"h4",...e}),h5:e=>(0,p.jsx)(Ee,{as:"h5",...e}),h6:e=>(0,p.jsx)(Ee,{as:"h6",...e}),admonition:Me.A,mermaid:Se.A};function ze({children:e}){return(0,p.jsx)(a.x,{components:Ue,children:e})}},4336:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});n(6540);var s=n(4164),a=n(1312),r=n(7559),o=n(8774);const c={iconEdit:"iconEdit_Z9Sw"};var i=n(4848);function l({className:e,...t}){return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(c.iconEdit,e),"aria-hidden":"true",...t,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function d({editUrl:e}){return(0,i.jsxs)(o.A,{to:e,className:r.G.common.editThisPage,children:[(0,i.jsx)(l,{}),(0,i.jsx)(a.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(6266);function m({lastUpdatedAt:e}){const t=new Date(e),n=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,i.jsx)(a.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function h({lastUpdatedBy:e}){return(0,i.jsx)(a.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,i.jsxs)("span",{className:r.G.common.lastUpdated,children:[(0,i.jsx)(a.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,i.jsx)(m,{lastUpdatedAt:e}):"",byUser:t?(0,i.jsx)(h,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const p={lastUpdated:"lastUpdated_JAkA"};function g({className:e,editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a}){return(0,i.jsxs)("div",{className:(0,s.A)("row",e),children:[(0,i.jsx)("div",{className:"col",children:t&&(0,i.jsx)(d,{editUrl:t})}),(0,i.jsx)("div",{className:(0,s.A)("col",p.lastUpdated),children:(n||a)&&(0,i.jsx)(f,{lastUpdatedAt:n,lastUpdatedBy:a})})]})}},6266:(e,t,n)=>{"use strict";n.d(t,{i:()=>a});var s=n(4586);function a(e={}){const{i18n:{currentLocale:t}}=(0,s.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},7293:(e,t,n)=>{"use strict";n.d(t,{A:()=>M});var s=n(6540),a=n(4848);function r(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find(e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filter(e=>e!==n),o=n?.props.children;return{mdxAdmonitionTitle:o,rest:r.length>0?(0,a.jsx)(a.Fragment,{children:r}):null}}(e.children),r=e.title??t;return{...e,...r&&{title:r},children:n}}var o=n(4164),c=n(1312),i=n(7559);const l="admonition_xJq3",d="admonitionHeading_Gvgb",u="admonitionIcon_Rf37",m="admonitionContent_BuS1";function h({type:e,className:t,children:n}){return(0,a.jsx)("div",{className:(0,o.A)(i.G.common.admonition,i.G.common.admonitionType(e),l,t),children:n})}function f({icon:e,title:t}){return(0,a.jsxs)("div",{className:d,children:[(0,a.jsx)("span",{className:u,children:e}),t]})}function p({children:e}){return e?(0,a.jsx)("div",{className:m,children:e}):null}function g(e){const{type:t,icon:n,title:s,children:r,className:o}=e;return(0,a.jsxs)(h,{type:t,className:o,children:[s||n?(0,a.jsx)(f,{title:s,icon:n}):null,(0,a.jsx)(p,{children:r})]})}function x(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const j={icon:(0,a.jsx)(x,{}),title:(0,a.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function b(e){return(0,a.jsx)(g,{...j,...e,className:(0,o.A)("alert alert--secondary",e.className),children:e.children})}function v(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const N={icon:(0,a.jsx)(v,{}),title:(0,a.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){return(0,a.jsx)(g,{...N,...e,className:(0,o.A)("alert alert--success",e.className),children:e.children})}function A(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,a.jsx)(A,{}),title:(0,a.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function C(e){return(0,a.jsx)(g,{...w,...e,className:(0,o.A)("alert alert--info",e.className),children:e.children})}function k(e){return(0,a.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const B={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function E(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const L={icon:(0,a.jsx)(E,{}),title:(0,a.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const T={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const _={...{note:b,tip:y,info:C,warning:function(e){return(0,a.jsx)(g,{...B,...e,className:(0,o.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,a.jsx)(g,{...L,...e,className:(0,o.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,a.jsx)(b,{title:"secondary",...e}),important:e=>(0,a.jsx)(C,{title:"important",...e}),success:e=>(0,a.jsx)(y,{title:"success",...e}),caution:function(e){return(0,a.jsx)(g,{...T,...e,className:(0,o.A)("alert alert--warning",e.className),children:e.children})}}};function M(e){const t=r(e),n=(s=t.type,_[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),_.info));var s;return(0,a.jsx)(n,{...t})}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map(e=>e.trim()))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,r]=t;if(s&&r){s=parseInt(s),r=parseInt(r);const e=s<r?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(r+=e);for(let t=s;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},8453:(e,t,n)=>{"use strict";n.d(t,{R:()=>o,x:()=>c});var s=n(6540);const a={},r=s.createContext(a);function o(e){const t=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/6870.6d10e1d8.js b/docs/assets/js/6870.6d10e1d8.js deleted file mode 100644 index 092c2d9d..00000000 --- a/docs/assets/js/6870.6d10e1d8.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6870],{3253:(e,t,n)=>{"use strict";n.d(t,{A:()=>ze});var s=n(6540),a=n(8453),r=n(5260),c=n(2303),o=n(4164),i=n(5293),l=n(6342);function d(){const{prism:e}=(0,l.p)(),{colorMode:t}=(0,i.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var u=n(7559),m=n(8426),h=n.n(m),f=n(9532),p=n(4848);const g=/title=(?<quote>["'])(?<title>.*?)\1/,x=/\{(?<range>[\d,-]+)\}/,j={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},b={...j,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},v=Object.keys(j);function N(e,t){const n=e.map((e=>{const{start:n,end:s}=b[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function y({showLineNumbers:e,metastring:t}){return"boolean"==typeof e?e?1:void 0:"number"==typeof e?e:function(e){const t=e?.split(" ").find((e=>e.startsWith("showLineNumbers")));if(t){if(t.startsWith("showLineNumbers=")){const e=t.replace("showLineNumbers=","");return parseInt(e,10)}return 1}}(t)}function A(e,t){const{language:n,magicComments:s}=t;if(void 0===n)return{lineClassNames:{},code:e};const a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return N(["js","jsBlock"],t);case"jsx":case"tsx":return N(["js","jsBlock","jsx"],t);case"html":return N(["js","jsBlock","html"],t);case"python":case"py":case"bash":return N(["bash"],t);case"markdown":case"md":return N(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return N(["tex"],t);case"lua":case"haskell":return N(["lua"],t);case"sql":return N(["lua","jsBlock"],t);case"wasm":return N(["wasm"],t);case"vb":case"vba":case"visual-basic":return N(["vb","rem"],t);case"vbnet":return N(["vbnet","rem"],t);case"batch":return N(["rem"],t);case"basic":return N(["rem","f90"],t);case"fsharp":return N(["js","ml"],t);case"ocaml":case"sml":return N(["ml"],t);case"fortran":return N(["f90"],t);case"cobol":return N(["cobol"],t);default:return N(v,t)}}(n,s),r=e.split(/\r?\n/),c=Object.fromEntries(s.map((e=>[e.className,{start:0,range:""}]))),o=Object.fromEntries(s.filter((e=>e.line)).map((({className:e,line:t})=>[t,e]))),i=Object.fromEntries(s.filter((e=>e.block)).map((({className:e,block:t})=>[t.start,e]))),l=Object.fromEntries(s.filter((e=>e.block)).map((({className:e,block:t})=>[t.end,e])));for(let u=0;u<r.length;){const e=r[u].match(a);if(!e){u+=1;continue}const t=e.slice(1).find((e=>void 0!==e));o[t]?c[o[t]].range+=`${u},`:i[t]?c[i[t]].start=u:l[t]&&(c[l[t]].range+=`${c[l[t]].start}-${u-1},`),r.splice(u,1)}const d={};return Object.entries(c).forEach((([e,{range:t}])=>{h()(t).forEach((t=>{d[t]??=[],d[t].push(e)}))})),{code:r.join("\n"),lineClassNames:d}}function w(e,t){const n=e.replace(/\r?\n$/,"");return function(e,{metastring:t,magicComments:n}){if(t&&x.test(t)){const s=t.match(x).groups.range;if(0===n.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${t}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const a=n[0].className,r=h()(s).filter((e=>e>0)).map((e=>[e-1,[a]]));return{lineClassNames:Object.fromEntries(r),code:e}}return null}(n,{...t})??A(n,{...t})}function C(e){const t=function(e){return t=e.language??function(e){if(!e)return;const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(e.className)??e.defaultLanguage,t?.toLowerCase()??"text";var t}({language:e.language,defaultLanguage:e.defaultLanguage,className:e.className}),{lineClassNames:n,code:s}=w(e.code,{metastring:e.metastring,magicComments:e.magicComments,language:t}),a=function({className:e,language:t}){return(0,o.A)(e,t&&!e?.includes(`language-${t}`)&&`language-${t}`)}({className:e.className,language:t}),r=(c=e.metastring,(c?.match(g)?.groups.title??"")||e.title);var c;const i=y({showLineNumbers:e.showLineNumbers,metastring:e.metastring});return{codeInput:e.code,code:s,className:a,language:t,title:r,lineNumbersStart:i,lineClassNames:n}}const k=(0,s.createContext)(null);function B({metadata:e,wordWrap:t,children:n}){const a=(0,s.useMemo)((()=>({metadata:e,wordWrap:t})),[e,t]);return(0,p.jsx)(k.Provider,{value:a,children:n})}function E(){const e=(0,s.useContext)(k);if(null===e)throw new f.dV("CodeBlockContextProvider");return e}const L="codeBlockContainer_Ckt0";function T({as:e,...t}){const n=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((([e,s])=>{const a=t[e];a&&"string"==typeof s&&(n[a]=s)})),n}(d());return(0,p.jsx)(e,{...t,style:n,className:(0,o.A)(t.className,L,u.G.common.codeBlock)})}const _="codeBlock_bY9V",M="codeBlockStandalone_MEMb",S="codeBlockLines_e6Vv",U="codeBlockLinesWithNumbering_o6Pm";function z({children:e,className:t}){return(0,p.jsx)(T,{as:"pre",tabIndex:0,className:(0,o.A)(M,"thin-scrollbar",t),children:(0,p.jsx)("code",{className:S,children:e})})}const I={attributes:!0,characterData:!0,childList:!0,subtree:!0};function H(e,t){const[n,a]=(0,s.useState)(),r=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{r()}),[r]),function(e,t,n=I){const a=(0,f._q)(t),r=(0,f.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,r),()=>t.disconnect()}),[e,a,r])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),r())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function R({children:e}){return e}var V=n(1765);function P({line:e,token:t,...n}){return(0,p.jsx)("span",{...n})}const W="codeLine_lJS_",$="codeLineNumber_Tfdd",D="codeLineContent_feaV";function q({line:e,classNames:t,showLineNumbers:n,getLineProps:s,getTokenProps:a}){const r=function(e){const t=1===e.length&&"\n"===e[0].content?e[0]:void 0;return t?[{...t,content:""}]:e}(e),c=s({line:r,className:(0,o.A)(t,n&&W)}),i=r.map(((e,t)=>{const n=a({token:e});return(0,p.jsx)(P,{...n,line:r,token:e,children:n.children},t)}));return(0,p.jsxs)("span",{...c,children:[n?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:$}),(0,p.jsx)("span",{className:D,children:i})]}):i,(0,p.jsx)("br",{})]})}const O=s.forwardRef(((e,t)=>(0,p.jsx)("pre",{ref:t,tabIndex:0,...e,className:(0,o.A)(e.className,_,"thin-scrollbar")})));function F(e){const{metadata:t}=E();return(0,p.jsx)("code",{...e,className:(0,o.A)(e.className,S,void 0!==t.lineNumbersStart&&U),style:{...e.style,counterReset:void 0===t.lineNumbersStart?void 0:"line-count "+(t.lineNumbersStart-1)}})}function G({className:e}){const{metadata:t,wordWrap:n}=E(),s=d(),{code:a,language:r,lineNumbersStart:c,lineClassNames:i}=t;return(0,p.jsx)(V.f4,{theme:s,code:a,language:r,children:({className:t,style:s,tokens:a,getLineProps:r,getTokenProps:l})=>(0,p.jsx)(O,{ref:n.codeBlockRef,className:(0,o.A)(e,t),style:s,children:(0,p.jsx)(F,{children:a.map(((e,t)=>(0,p.jsx)(q,{line:e,getLineProps:r,getTokenProps:l,classNames:i[t],showLineNumbers:void 0!==c},t)))})})})}function J({children:e,fallback:t}){return(0,c.A)()?(0,p.jsx)(p.Fragment,{children:e?.()}):t??null}var Z=n(1312);function Y({className:e,...t}){return(0,p.jsx)("button",{type:"button",...t,className:(0,o.A)("clean-btn",e)})}function Q(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function X(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const K={copyButtonCopied:"copyButtonCopied_Vdqa",copyButtonIcons:"copyButtonIcons_IEyt",copyButtonIcon:"copyButtonIcon_TrPX",copyButtonSuccessIcon:"copyButtonSuccessIcon_cVMy"};function ee(e){return e?(0,Z.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,Z.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"})}function te(){const{metadata:{code:e}}=E(),[t,n]=(0,s.useState)(!1),a=(0,s.useRef)(void 0),r=(0,s.useCallback)((()=>{!function(e,{target:t=document.body}={}){if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const n=document.createElement("textarea"),s=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.fontSize="12pt";const a=document.getSelection(),r=a.rangeCount>0&&a.getRangeAt(0);t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}n.remove(),r&&(a.removeAllRanges(),a.addRange(r)),s&&s.focus()}(e),n(!0),a.current=window.setTimeout((()=>{n(!1)}),1e3)}),[e]);return(0,s.useEffect)((()=>()=>window.clearTimeout(a.current)),[]),{copyCode:r,isCopied:t}}function ne({className:e}){const{copyCode:t,isCopied:n}=te();return(0,p.jsx)(Y,{"aria-label":ee(n),title:(0,Z.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,o.A)(e,K.copyButton,n&&K.copyButtonCopied),onClick:t,children:(0,p.jsxs)("span",{className:K.copyButtonIcons,"aria-hidden":"true",children:[(0,p.jsx)(Q,{className:K.copyButtonIcon}),(0,p.jsx)(X,{className:K.copyButtonSuccessIcon})]})})}function se(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const ae="wordWrapButtonIcon_b1P5",re="wordWrapButtonEnabled_uzNF";function ce({className:e}){const{wordWrap:t}=E();if(!(t.isEnabled||t.isCodeScrollable))return!1;const n=(0,Z.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,p.jsx)(Y,{onClick:()=>t.toggle(),className:(0,o.A)(e,t.isEnabled&&re),"aria-label":n,title:n,children:(0,p.jsx)(se,{className:ae,"aria-hidden":"true"})})}const oe="buttonGroup_M5ko";function ie({className:e}){return(0,p.jsx)(J,{children:()=>(0,p.jsxs)("div",{className:(0,o.A)(e,oe),children:[(0,p.jsx)(ce,{}),(0,p.jsx)(ne,{})]})})}const le="codeBlockContent_QJqH",de="codeBlockTitle_OeMC";function ue({className:e}){const{metadata:t}=E();return(0,p.jsxs)(T,{as:"div",className:(0,o.A)(e,t.className),children:[t.title&&(0,p.jsx)("div",{className:de,children:(0,p.jsx)(R,{children:t.title})}),(0,p.jsxs)("div",{className:le,children:[(0,p.jsx)(G,{}),(0,p.jsx)(ie,{})]})]})}function me(e){const t=function(e){const{prism:t}=(0,l.p)();return C({code:e.children,className:e.className,metastring:e.metastring,magicComments:t.magicComments,defaultLanguage:t.defaultLanguage,language:e.language,title:e.title,showLineNumbers:e.showLineNumbers})}(e),n=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),r=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),o=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");a(n)}),[r]);return H(r,o),(0,s.useEffect)((()=>{o()}),[e,o]),(0,s.useEffect)((()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)})),[o]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:c}}();return(0,p.jsx)(B,{metadata:t,wordWrap:n,children:(0,p.jsx)(ue,{})})}function he({children:e,...t}){const n=(0,c.A)(),a=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(e),r="string"==typeof a?me:z;return(0,p.jsx)(r,{...t,children:a},String(n))}function fe(e){return(0,p.jsx)("code",{...e})}var pe=n(8774);var ge=n(3427),xe=n(1422);const je="details_lb9f",be="isBrowser_bmU9",ve="collapsibleContent_i85q";function Ne(e){return!!e&&("SUMMARY"===e.tagName||Ne(e.parentElement))}function ye(e,t){return!!e&&(e===t||ye(e.parentElement,t))}function Ae({summary:e,children:t,...n}){(0,ge.A)().collectAnchor(n.id);const a=(0,c.A)(),r=(0,s.useRef)(null),{collapsed:i,setCollapsed:l}=(0,xe.u)({initialState:!n.open}),[d,u]=(0,s.useState)(n.open),m=s.isValidElement(e)?e:(0,p.jsx)("summary",{children:e??"Details"});return(0,p.jsxs)("details",{...n,ref:r,open:d,"data-collapsed":i,className:(0,o.A)(je,a&&be,n.className),onMouseDown:e=>{Ne(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Ne(t)&&ye(t,r.current)&&(e.preventDefault(),i?(l(!1),u(!0)):l(!0))},children:[m,(0,p.jsx)(xe.N,{lazy:!1,collapsed:i,onCollapseTransitionEnd:e=>{l(e),u(!e)},children:(0,p.jsx)("div",{className:ve,children:t})})]})}const we="details_b_Ee";function Ce({...e}){return(0,p.jsx)(Ae,{...e,className:(0,o.A)("alert alert--info",we,e.className)})}function ke(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,p.jsx)(p.Fragment,{children:t.filter((e=>e!==n))});return(0,p.jsx)(Ce,{...e,summary:n,children:a})}var Be=n(1107);function Ee(e){return(0,p.jsx)(Be.A,{...e})}const Le="containsTaskList_mC6p";function Te(e){if(void 0!==e)return(0,o.A)(e,e?.includes("contains-task-list")&&Le)}const _e="img_ev3q";var Me=n(7293),Se=n(418);const Ue={Head:r.A,details:ke,Details:ke,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,p.jsx)(fe,{...e}):(0,p.jsx)(he,{...e})},a:function(e){return(0,p.jsx)(pe.A,{...e})},pre:function(e){return(0,p.jsx)(p.Fragment,{children:e.children})},ul:function(e){return(0,p.jsx)("ul",{...e,className:Te(e.className)})},li:function(e){return(0,ge.A)().collectAnchor(e.id),(0,p.jsx)("li",{...e})},img:function(e){return(0,p.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,o.A)(t,_e))});var t},h1:e=>(0,p.jsx)(Ee,{as:"h1",...e}),h2:e=>(0,p.jsx)(Ee,{as:"h2",...e}),h3:e=>(0,p.jsx)(Ee,{as:"h3",...e}),h4:e=>(0,p.jsx)(Ee,{as:"h4",...e}),h5:e=>(0,p.jsx)(Ee,{as:"h5",...e}),h6:e=>(0,p.jsx)(Ee,{as:"h6",...e}),admonition:Me.A,mermaid:Se.A};function ze({children:e}){return(0,p.jsx)(a.x,{components:Ue,children:e})}},4336:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});n(6540);var s=n(4164),a=n(1312),r=n(7559),c=n(8774);const o={iconEdit:"iconEdit_Z9Sw"};var i=n(4848);function l({className:e,...t}){return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(o.iconEdit,e),"aria-hidden":"true",...t,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function d({editUrl:e}){return(0,i.jsxs)(c.A,{to:e,className:r.G.common.editThisPage,children:[(0,i.jsx)(l,{}),(0,i.jsx)(a.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(6266);function m({lastUpdatedAt:e}){const t=new Date(e),n=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,i.jsx)(a.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function h({lastUpdatedBy:e}){return(0,i.jsx)(a.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:e})},children:" by {user}"})}function f({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,i.jsxs)("span",{className:r.G.common.lastUpdated,children:[(0,i.jsx)(a.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,i.jsx)(m,{lastUpdatedAt:e}):"",byUser:t?(0,i.jsx)(h,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const p={lastUpdated:"lastUpdated_JAkA"};function g({className:e,editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a}){return(0,i.jsxs)("div",{className:(0,s.A)("row",e),children:[(0,i.jsx)("div",{className:"col",children:t&&(0,i.jsx)(d,{editUrl:t})}),(0,i.jsx)("div",{className:(0,s.A)("col",p.lastUpdated),children:(n||a)&&(0,i.jsx)(f,{lastUpdatedAt:n,lastUpdatedBy:a})})]})}},6266:(e,t,n)=>{"use strict";n.d(t,{i:()=>a});var s=n(4586);function a(e={}){const{i18n:{currentLocale:t}}=(0,s.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},7293:(e,t,n)=>{"use strict";n.d(t,{A:()=>M});var s=n(6540),a=n(4848);function r(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),r=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,a.jsx)(a.Fragment,{children:r}):null}}(e.children),r=e.title??t;return{...e,...r&&{title:r},children:n}}var c=n(4164),o=n(1312),i=n(7559);const l="admonition_xJq3",d="admonitionHeading_Gvgb",u="admonitionIcon_Rf37",m="admonitionContent_BuS1";function h({type:e,className:t,children:n}){return(0,a.jsx)("div",{className:(0,c.A)(i.G.common.admonition,i.G.common.admonitionType(e),l,t),children:n})}function f({icon:e,title:t}){return(0,a.jsxs)("div",{className:d,children:[(0,a.jsx)("span",{className:u,children:e}),t]})}function p({children:e}){return e?(0,a.jsx)("div",{className:m,children:e}):null}function g(e){const{type:t,icon:n,title:s,children:r,className:c}=e;return(0,a.jsxs)(h,{type:t,className:c,children:[s||n?(0,a.jsx)(f,{title:s,icon:n}):null,(0,a.jsx)(p,{children:r})]})}function x(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const j={icon:(0,a.jsx)(x,{}),title:(0,a.jsx)(o.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function b(e){return(0,a.jsx)(g,{...j,...e,className:(0,c.A)("alert alert--secondary",e.className),children:e.children})}function v(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const N={icon:(0,a.jsx)(v,{}),title:(0,a.jsx)(o.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){return(0,a.jsx)(g,{...N,...e,className:(0,c.A)("alert alert--success",e.className),children:e.children})}function A(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,a.jsx)(A,{}),title:(0,a.jsx)(o.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function C(e){return(0,a.jsx)(g,{...w,...e,className:(0,c.A)("alert alert--info",e.className),children:e.children})}function k(e){return(0,a.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const B={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(o.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function E(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const L={icon:(0,a.jsx)(E,{}),title:(0,a.jsx)(o.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const T={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(o.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const _={...{note:b,tip:y,info:C,warning:function(e){return(0,a.jsx)(g,{...B,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,a.jsx)(g,{...L,...e,className:(0,c.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,a.jsx)(b,{title:"secondary",...e}),important:e=>(0,a.jsx)(C,{title:"important",...e}),success:e=>(0,a.jsx)(y,{title:"success",...e}),caution:function(e){return(0,a.jsx)(g,{...T,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})}}};function M(e){const t=r(e),n=(s=t.type,_[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),_.info));var s;return(0,a.jsx)(n,{...t})}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,r]=t;if(s&&r){s=parseInt(s),r=parseInt(r);const e=s<r?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(r+=e);for(let t=s;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},8453:(e,t,n)=>{"use strict";n.d(t,{R:()=>c,x:()=>o});var s=n(6540);const a={},r=s.createContext(a);function c(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:c(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/6875c492.72d20027.js b/docs/assets/js/6875c492.72d20027.js deleted file mode 100644 index 9a0b33af..00000000 --- a/docs/assets/js/6875c492.72d20027.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{2053:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(4164),s=a(1312),i=a(6133);const r={tags:"tags_jXut",tag:"tag_QGVx"};var l=a(4848);function o({tags:e}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(s.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,n.A)(r.tags,"padding--none","margin-left--sm"),children:e.map((e=>(0,l.jsx)("li",{className:r.tag,children:(0,l.jsx)(i.A,{...e})},e.permalink)))})]})}},2234:(e,t,a)=>{a.d(t,{A:()=>c});a(6540);var n=a(4164),s=a(4084),i=a(7559),r=a(7293),l=a(4848);function o({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(s.Rc,{}),className:(0,n.A)(e,i.G.common.unlistedBanner),children:(0,l.jsx)(s.Uh,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.AE,{}),(0,l.jsx)(o,{...e})]})}},2907:(e,t,a)=>{a.d(t,{A:()=>B});a(6540);var n=a(4164),s=a(4096),i=a(4848);function r({children:e,className:t}){return(0,i.jsx)("article",{className:t,children:e})}var l=a(8774);const o={title:"title_f1Hy"};function c({className:e}){const{metadata:t,isBlogPostPage:a}=(0,s.e7)(),{permalink:r,title:c}=t,d=a?"h1":"h2";return(0,i.jsx)(d,{className:(0,n.A)(o.title,e),children:a?c:(0,i.jsx)(l.A,{to:r,children:c})})}var d=a(1312),g=a(5846),u=a(6266);const m={container:"container_mt6G"};function h({readingTime:e}){const t=function(){const{selectMessage:e}=(0,g.W)();return t=>{const a=Math.ceil(t);return e(a,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,i.jsx)(i.Fragment,{children:t(e)})}function p({date:e,formattedDate:t}){return(0,i.jsx)("time",{dateTime:e,children:t})}function x(){return(0,i.jsx)(i.Fragment,{children:" \xb7 "})}function j({className:e}){const{metadata:t}=(0,s.e7)(),{date:a,readingTime:r}=t,l=(0,u.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,i.jsxs)("div",{className:(0,n.A)(m.container,"margin-vert--md",e),children:[(0,i.jsx)(p,{date:a,formattedDate:(o=a,l.format(new Date(o)))}),void 0!==r&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(x,{}),(0,i.jsx)(h,{readingTime:r})]})]});var o}var b=a(6382);const A={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function f({className:e}){const{metadata:{authors:t},assets:a}=(0,s.e7)();if(0===t.length)return null;const r=t.every((({name:e})=>!e)),l=1===t.length;return(0,i.jsx)("div",{className:(0,n.A)("margin-top--md margin-bottom--sm",r?A.imageOnlyAuthorRow:"row",e),children:t.map(((e,t)=>(0,i.jsx)("div",{className:(0,n.A)(!r&&(l?"col col--12":"col col--6"),r?A.imageOnlyAuthorCol:A.authorCol),children:(0,i.jsx)(b.A,{author:{...e,imageURL:a.authorsImageUrls[t]??e.imageURL}})},t)))})}function v(){return(0,i.jsxs)("header",{children:[(0,i.jsx)(c,{}),(0,i.jsx)(j,{}),(0,i.jsx)(f,{})]})}var T=a(440),N=a(3253);function w({children:e,className:t}){const{isBlogPostPage:a}=(0,s.e7)();return(0,i.jsx)("div",{id:a?T.LU:void 0,className:(0,n.A)("markdown",t),children:(0,i.jsx)(N.A,{children:e})})}var _=a(7559),k=a(4336),y=a(2053);function P(){return(0,i.jsx)("b",{children:(0,i.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function R(e){const{blogPostTitle:t,...a}=e;return(0,i.jsx)(l.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,i.jsx)(P,{})})}function U(){const{metadata:e,isBlogPostPage:t}=(0,s.e7)(),{tags:a,title:r,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,g=!t&&o,u=a.length>0;if(!(u||g||l))return null;if(t){const e=!!(l||d||c);return(0,i.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,n.A)("row","margin-top--sm",_.G.blog.blogFooterEditMetaRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(y.A,{tags:a})})}),e&&(0,i.jsx)(k.A,{className:(0,n.A)("margin-top--sm",_.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,i.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,n.A)("col",{"col--9":g}),children:(0,i.jsx)(y.A,{tags:a})}),g&&(0,i.jsx)("div",{className:(0,n.A)("col text--right",{"col--3":u}),children:(0,i.jsx)(R,{blogPostTitle:r,to:e.permalink})})]})}function B({children:e,className:t}){const a=function(){const{isBlogPostPage:e}=(0,s.e7)();return e?void 0:"margin-bottom--xl"}();return(0,i.jsxs)(r,{className:(0,n.A)(a,t),children:[(0,i.jsx)(v,{}),(0,i.jsx)(w,{children:e}),(0,i.jsx)(U,{})]})}},3069:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});a(6540);var n=a(4164),s=a(1312),i=a(5500),r=a(7559),l=a(6461),o=a(8774),c=a(8027),d=a(7713),g=a(1463),u=a(3892),m=a(2234),h=a(1107),p=a(4848);function x({tag:e}){const t=(0,l.ZD)(e);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(i.be,{title:t,description:e.description}),(0,p.jsx)(g.A,{tag:"blog_tags_posts"})]})}function j({tag:e,items:t,sidebar:a,listMetadata:n}){const i=(0,l.ZD)(e);return(0,p.jsxs)(c.A,{sidebar:a,children:[e.unlisted&&(0,p.jsx)(m.A,{}),(0,p.jsxs)("header",{className:"margin-bottom--xl",children:[(0,p.jsx)(h.A,{as:"h1",children:i}),e.description&&(0,p.jsx)("p",{children:e.description}),(0,p.jsx)(o.A,{href:e.allTagsPath,children:(0,p.jsx)(s.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,p.jsx)(u.A,{items:t}),(0,p.jsx)(d.A,{metadata:n})]})}function b(e){return(0,p.jsxs)(i.e3,{className:(0,n.A)(r.G.wrapper.blogPages,r.G.page.blogTagPostListPage),children:[(0,p.jsx)(x,{...e}),(0,p.jsx)(j,{...e})]})}},3892:(e,t,a)=>{a.d(t,{A:()=>r});a(6540);var n=a(4096),s=a(2907),i=a(4848);function r({items:e,component:t=s.A}){return(0,i.jsx)(i.Fragment,{children:e.map((({content:e})=>(0,i.jsx)(n.in,{content:e,children:(0,i.jsx)(t,{children:(0,i.jsx)(e,{})})},e.metadata.permalink)))})}},4084:(e,t,a)=>{a.d(t,{AE:()=>o,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>c});a(6540);var n=a(1312),s=a(5260),i=a(4848);function r(){return(0,i.jsx)(n.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(n.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function o(){return(0,i.jsx)(s.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(n.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(n.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},6133:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var n=a(4164),s=a(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var r=a(4848);function l({permalink:e,label:t,count:a,description:l}){return(0,r.jsxs)(s.A,{rel:"tag",href:e,title:l,className:(0,n.A)(i.tag,a?i.tagWithCount:i.tagRegular),children:[t,a&&(0,r.jsx)("span",{children:a})]})}},6461:(e,t,a)=>{a.d(t,{ZD:()=>r,uz:()=>l});a(6540);var n=a(1312),s=a(5846);a(4848);function i(){const{selectMessage:e}=(0,s.W)();return t=>e(t,(0,n.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}function r(e){const t=i();return(0,n.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}const l=()=>(0,n.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"})},7713:(e,t,a)=>{a.d(t,{A:()=>r});a(6540);var n=a(1312),s=a(9022),i=a(4848);function r(e){const{metadata:t}=e,{previousPage:a,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,i.jsx)(s.A,{permalink:a,title:(0,i.jsx)(n.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),r&&(0,i.jsx)(s.A,{permalink:r,title:(0,i.jsx)(n.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},9022:(e,t,a)=>{a.d(t,{A:()=>r});a(6540);var n=a(4164),s=a(8774),i=a(4848);function r(e){const{permalink:t,title:a,subLabel:r,isNext:l}=e;return(0,i.jsxs)(s.A,{className:(0,n.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[r&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:r}),(0,i.jsx)("div",{className:"pagination-nav__label",children:a})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/6875c492.7e263e94.js b/docs/assets/js/6875c492.7e263e94.js new file mode 100644 index 00000000..c512db9e --- /dev/null +++ b/docs/assets/js/6875c492.7e263e94.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{2053:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(4164),s=a(1312),i=a(6133);const r={tags:"tags_jXut",tag:"tag_QGVx"};var l=a(4848);function o({tags:e}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(s.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,n.A)(r.tags,"padding--none","margin-left--sm"),children:e.map(e=>(0,l.jsx)("li",{className:r.tag,children:(0,l.jsx)(i.A,{...e})},e.permalink))})]})}},2234:(e,t,a)=>{a.d(t,{A:()=>c});a(6540);var n=a(4164),s=a(7559),i=a(4084),r=a(7293),l=a(4848);function o({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(i.Rc,{}),className:(0,n.A)(e,s.G.common.unlistedBanner),children:(0,l.jsx)(i.Uh,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.AE,{}),(0,l.jsx)(o,{...e})]})}},2907:(e,t,a)=>{a.d(t,{A:()=>B});a(6540);var n=a(4164),s=a(4096),i=a(4848);function r({children:e,className:t}){return(0,i.jsx)("article",{className:t,children:e})}var l=a(8774);const o={title:"title_f1Hy"};function c({className:e}){const{metadata:t,isBlogPostPage:a}=(0,s.e7)(),{permalink:r,title:c}=t,d=a?"h1":"h2";return(0,i.jsx)(d,{className:(0,n.A)(o.title,e),children:a?c:(0,i.jsx)(l.A,{to:r,children:c})})}var d=a(1312),g=a(5846),u=a(6266);const m={container:"container_mt6G"};function h({readingTime:e}){const t=function(){const{selectMessage:e}=(0,g.W)();return t=>{const a=Math.ceil(t);return e(a,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,i.jsx)(i.Fragment,{children:t(e)})}function p({date:e,formattedDate:t}){return(0,i.jsx)("time",{dateTime:e,children:t})}function x(){return(0,i.jsx)(i.Fragment,{children:" \xb7 "})}function j({className:e}){const{metadata:t}=(0,s.e7)(),{date:a,readingTime:r}=t,l=(0,u.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,i.jsxs)("div",{className:(0,n.A)(m.container,"margin-vert--md",e),children:[(0,i.jsx)(p,{date:a,formattedDate:(o=a,l.format(new Date(o)))}),void 0!==r&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(x,{}),(0,i.jsx)(h,{readingTime:r})]})]});var o}var b=a(6382);const A={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function f({className:e}){const{metadata:{authors:t},assets:a}=(0,s.e7)();if(0===t.length)return null;const r=t.every(({name:e})=>!e),l=1===t.length;return(0,i.jsx)("div",{className:(0,n.A)("margin-top--md margin-bottom--sm",r?A.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>(0,i.jsx)("div",{className:(0,n.A)(!r&&(l?"col col--12":"col col--6"),r?A.imageOnlyAuthorCol:A.authorCol),children:(0,i.jsx)(b.A,{author:{...e,imageURL:a.authorsImageUrls[t]??e.imageURL}})},t))})}function v(){return(0,i.jsxs)("header",{children:[(0,i.jsx)(c,{}),(0,i.jsx)(j,{}),(0,i.jsx)(f,{})]})}var T=a(440),N=a(3253);function w({children:e,className:t}){const{isBlogPostPage:a}=(0,s.e7)();return(0,i.jsx)("div",{id:a?T.LU:void 0,className:(0,n.A)("markdown",t),children:(0,i.jsx)(N.A,{children:e})})}var _=a(7559),k=a(4336),y=a(2053);function P(){return(0,i.jsx)("b",{children:(0,i.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function R(e){const{blogPostTitle:t,...a}=e;return(0,i.jsx)(l.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,i.jsx)(P,{})})}function U(){const{metadata:e,isBlogPostPage:t}=(0,s.e7)(),{tags:a,title:r,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,g=!t&&o,u=a.length>0;if(!(u||g||l))return null;if(t){const e=!!(l||d||c);return(0,i.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,n.A)("row","margin-top--sm",_.G.blog.blogFooterEditMetaRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(y.A,{tags:a})})}),e&&(0,i.jsx)(k.A,{className:(0,n.A)("margin-top--sm",_.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,i.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,n.A)("col",{"col--9":g}),children:(0,i.jsx)(y.A,{tags:a})}),g&&(0,i.jsx)("div",{className:(0,n.A)("col text--right",{"col--3":u}),children:(0,i.jsx)(R,{blogPostTitle:r,to:e.permalink})})]})}function B({children:e,className:t}){const a=function(){const{isBlogPostPage:e}=(0,s.e7)();return e?void 0:"margin-bottom--xl"}();return(0,i.jsxs)(r,{className:(0,n.A)(a,t),children:[(0,i.jsx)(v,{}),(0,i.jsx)(w,{children:e}),(0,i.jsx)(U,{})]})}},3069:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});a(6540);var n=a(4164),s=a(1312),i=a(7559),r=a(5500),l=a(6461),o=a(8774),c=a(8027),d=a(7713),g=a(1463),u=a(3892),m=a(2234),h=a(1107),p=a(4848);function x({tag:e}){const t=(0,l.ZD)(e);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(r.be,{title:t,description:e.description}),(0,p.jsx)(g.A,{tag:"blog_tags_posts"})]})}function j({tag:e,items:t,sidebar:a,listMetadata:n}){const i=(0,l.ZD)(e);return(0,p.jsxs)(c.A,{sidebar:a,children:[e.unlisted&&(0,p.jsx)(m.A,{}),(0,p.jsxs)("header",{className:"margin-bottom--xl",children:[(0,p.jsx)(h.A,{as:"h1",children:i}),e.description&&(0,p.jsx)("p",{children:e.description}),(0,p.jsx)(o.A,{href:e.allTagsPath,children:(0,p.jsx)(s.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,p.jsx)(u.A,{items:t}),(0,p.jsx)(d.A,{metadata:n})]})}function b(e){return(0,p.jsxs)(r.e3,{className:(0,n.A)(i.G.wrapper.blogPages,i.G.page.blogTagPostListPage),children:[(0,p.jsx)(x,{...e}),(0,p.jsx)(j,{...e})]})}},3892:(e,t,a)=>{a.d(t,{A:()=>r});a(6540);var n=a(4096),s=a(2907),i=a(4848);function r({items:e,component:t=s.A}){return(0,i.jsx)(i.Fragment,{children:e.map(({content:e})=>(0,i.jsx)(n.in,{content:e,children:(0,i.jsx)(t,{children:(0,i.jsx)(e,{})})},e.metadata.permalink))})}},4084:(e,t,a)=>{a.d(t,{AE:()=>o,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>c});a(6540);var n=a(1312),s=a(5260),i=a(4848);function r(){return(0,i.jsx)(n.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(n.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function o(){return(0,i.jsx)(s.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(n.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(n.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},6133:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var n=a(4164),s=a(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var r=a(4848);function l({permalink:e,label:t,count:a,description:l}){return(0,r.jsxs)(s.A,{rel:"tag",href:e,title:l,className:(0,n.A)(i.tag,a?i.tagWithCount:i.tagRegular),children:[t,a&&(0,r.jsx)("span",{children:a})]})}},6461:(e,t,a)=>{a.d(t,{ZD:()=>r,uz:()=>l});a(6540);var n=a(1312),s=a(5846);a(4848);function i(){const{selectMessage:e}=(0,s.W)();return t=>e(t,(0,n.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}function r(e){const t=i();return(0,n.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}const l=()=>(0,n.T)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"})},7713:(e,t,a)=>{a.d(t,{A:()=>r});a(6540);var n=a(1312),s=a(9022),i=a(4848);function r(e){const{metadata:t}=e,{previousPage:a,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,i.jsx)(s.A,{permalink:a,title:(0,i.jsx)(n.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),r&&(0,i.jsx)(s.A,{permalink:r,title:(0,i.jsx)(n.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},9022:(e,t,a)=>{a.d(t,{A:()=>r});a(6540);var n=a(4164),s=a(8774),i=a(4848);function r(e){const{permalink:t,title:a,subLabel:r,isNext:l}=e;return(0,i.jsxs)(s.A,{className:(0,n.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[r&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:r}),(0,i.jsx)("div",{className:"pagination-nav__label",children:a})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/6bb91276.d5be09e8.js b/docs/assets/js/6bb91276.d5be09e8.js new file mode 100644 index 00000000..ae68881c --- /dev/null +++ b/docs/assets/js/6bb91276.d5be09e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9226],{8758:a=>{a.exports=JSON.parse('{"tag":{"label":"vllm","permalink":"/BharatMLStack/blog/tags/vllm","allTagsPath":"/BharatMLStack/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/vllm","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/72dc5b25.20421ae4.js b/docs/assets/js/72dc5b25.20421ae4.js new file mode 100644 index 00000000..f6c3affa --- /dev/null +++ b/docs/assets/js/72dc5b25.20421ae4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8261],{3613:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"v1.0.0","description":"Numerix v1.0.0","slug":"/online-feature-store/v1.0.0","permalink":"/BharatMLStack/online-feature-store/v1.0.0","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Online Feature Store","permalink":"/BharatMLStack/category/online-feature-store"},"next":{"title":"Architecture","permalink":"/BharatMLStack/online-feature-store/v1.0.0/architecture"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/72dc5b25.e57720a7.js b/docs/assets/js/72dc5b25.e57720a7.js deleted file mode 100644 index 5c7514b9..00000000 --- a/docs/assets/js/72dc5b25.e57720a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8261],{3613:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"v1.0.0","description":"Python SDK v1.0.0 documentation for BharatML Stack. Contains API reference, usage guides, and examples for the Python client libraries including gRPC feature client, Spark feature push client, and common utilities.","slug":"/online-feature-store/v1.0.0","permalink":"/BharatMLStack/online-feature-store/v1.0.0","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Online Feature Store","permalink":"/BharatMLStack/category/online-feature-store"},"next":{"title":"Architecture","permalink":"/BharatMLStack/online-feature-store/v1.0.0/architecture"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/7518.6ac3b679.js b/docs/assets/js/7518.6ac3b679.js deleted file mode 100644 index c86683c0..00000000 --- a/docs/assets/js/7518.6ac3b679.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7518],{4096:(e,t,s)=>{s.d(t,{in:()=>c,OU:()=>A,Ki:()=>k,kJ:()=>f,x:()=>l,e7:()=>h,J_:()=>p,Gx:()=>N});var a=s(6540),n=s(9532),i=s(6803),r=s(4848);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=a.createContext(null);function c({children:e,content:t,isBlogPostPage:s=!1}){const n=function({content:e,isBlogPostPage:t}){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t})),[e,t])}({content:t,isBlogPostPage:s});return(0,r.jsx)(o.Provider,{value:n,children:e})}function h(){const e=(0,a.useContext)(o);if(null===e)throw new n.dV("BlogPostProvider");return e}var m=s(6025),u=s(4586);const d=e=>new Date(e).toISOString();function g(e){const t=e.map(v);return{author:1===t.length?t[0]:t}}function x(e,t,s){return e?{image:w({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${s}`})}:{}}function f(e){const{siteConfig:t}=(0,u.A)(),{withBaseUrl:s}=(0,m.hH)(),{metadata:{blogDescription:a,blogTitle:n,permalink:i}}=e,r=`${t.url}${i}`;return{"@context":"https://schema.org","@type":"Blog","@id":r,mainEntityOfPage:r,headline:n,description:a,blogPost:e.items.map((e=>function(e,t,s){const{assets:a,frontMatter:n,metadata:i}=e,{date:r,title:l,description:o,lastUpdatedAt:c}=i,h=a.image??n.image,m=n.keywords??[],u=`${t.url}${i.permalink}`,f=c?d(c):void 0;return{"@type":"BlogPosting","@id":u,mainEntityOfPage:u,url:u,headline:l,name:l,description:o,datePublished:r,...f?{dateModified:f}:{},...g(i.authors),...x(h,s,l),...m?{keywords:m}:{}}}(e.content,t,s)))}}function p(){const e=l(),{assets:t,metadata:s}=h(),{siteConfig:a}=(0,u.A)(),{withBaseUrl:n}=(0,m.hH)(),{date:i,title:r,description:o,frontMatter:c,lastUpdatedAt:f}=s,p=t.image??c.image,v=c.keywords??[],w=f?d(f):void 0,j=`${a.url}${s.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":j,mainEntityOfPage:j,url:j,headline:r,name:r,description:o,datePublished:i,...w?{dateModified:w}:{},...g(s.authors),...x(p,n,r),...v?{keywords:v}:{},isPartOf:{"@type":"Blog","@id":`${a.url}${e.blogBasePath}`,name:e.blogTitle}}}function v(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function w({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}var j=s(6347),b=s(8774),C=s(1682),M=s(9169);function N(e){const{pathname:t}=(0,j.zy)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,M.ys)(e.permalink,t))}(e,t)))),[e,t])}function k(e){const t=(0,C.$z)(e,(e=>`${new Date(e.date).getFullYear()}`)),s=Object.entries(t);return s.reverse(),s}function A({items:e,ulClassName:t,liClassName:s,linkClassName:a,linkActiveClassName:n}){return(0,r.jsx)("ul",{className:t,children:e.map((e=>(0,r.jsx)("li",{className:s,children:(0,r.jsx)(b.A,{isNavLink:!0,to:e.permalink,className:a,activeClassName:n,children:e.title})},e.permalink)))})}},5846:(e,t,s)=>{s.d(t,{W:()=>c});var a=s(6540),n=s(4586);const i=["zero","one","two","few","many","other"];function r(e){return i.filter((t=>e.includes(t)))}const l={locale:"en",pluralForms:r(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,a.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:r(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`),l}}),[e])}function c(){const e=o();return{selectMessage:(t,s)=>function(e,t,s){const a=e.split("|");if(1===a.length)return a[0];a.length>s.pluralForms.length&&console.error(`For locale=${s.locale}, a maximum of ${s.pluralForms.length} plural forms are expected (${s.pluralForms.join(",")}), but the message contains ${a.length}: ${e}`);const n=s.select(t),i=s.pluralForms.indexOf(n);return a[Math.min(i,a.length-1)]}(s,t,e)}}},6382:(e,t,s)=>{s.d(t,{A:()=>C});var a=s(6540),n=s(4164),i=s(8774),r=s(4848);const l="githubSvg_Uu4N";const o="xSvg_y3PF";const c=function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[(0,r.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,r.jsx)("path",{d:"M3.6 9h16.8"}),(0,r.jsx)("path",{d:"M3.6 15h16.8"}),(0,r.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,r.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]})};const h="instagramSvg_YC40";const m="threadsSvg_PTXY";const u={authorSocials:"authorSocials_rSDt",authorSocialLink:"authorSocialLink_owbf",authorSocialIcon:"authorSocialIcon_XYv3"},d={twitter:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 209",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid",...e,children:(0,r.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})})},label:"Twitter"},github:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 256 250",preserveAspectRatio:"xMidYMid",style:{"--dark":"#000","--light":"#fff"},...e,className:(0,n.A)(e.className,l),children:(0,r.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})})},label:"GitHub"},stackoverflow:{Icon:function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em",...e,children:[(0,r.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,r.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]})},label:"Stack Overflow"},linkedin:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",...e,children:(0,r.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})})},label:"LinkedIn"},x:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227",style:{"--dark":"#000","--light":"#fff"},...e,className:(0,n.A)(e.className,o),children:(0,r.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})})},label:"X"},bluesky:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 226",...e,children:(0,r.jsx)("path",{fill:"#1185FE",d:"M55.491 15.172c29.35 22.035 60.917 66.712 72.509 90.686 11.592-23.974 43.159-68.651 72.509-90.686C221.686-.727 256-13.028 256 26.116c0 7.818-4.482 65.674-7.111 75.068-9.138 32.654-42.436 40.983-72.057 35.942 51.775 8.812 64.946 38 36.501 67.187-54.021 55.433-77.644-13.908-83.696-31.676-1.11-3.257-1.63-4.78-1.637-3.485-.008-1.296-.527.228-1.637 3.485-6.052 17.768-29.675 87.11-83.696 31.676-28.445-29.187-15.274-58.375 36.5-67.187-29.62 5.041-62.918-3.288-72.056-35.942C4.482 91.79 0 33.934 0 26.116 0-13.028 34.314-.727 55.491 15.172Z"})})},label:"Bluesky"},instagram:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",style:{"--dark":"#000","--light":"#fff"},...e,className:(0,n.A)(e.className,h),children:(0,r.jsx)("path",{d:"M128 23.064c34.177 0 38.225.13 51.722.745 12.48.57 19.258 2.655 23.769 4.408 5.974 2.322 10.238 5.096 14.717 9.575 4.48 4.479 7.253 8.743 9.575 14.717 1.753 4.511 3.838 11.289 4.408 23.768.615 13.498.745 17.546.745 51.723 0 34.178-.13 38.226-.745 51.723-.57 12.48-2.655 19.257-4.408 23.768-2.322 5.974-5.096 10.239-9.575 14.718-4.479 4.479-8.743 7.253-14.717 9.574-4.511 1.753-11.289 3.839-23.769 4.408-13.495.616-17.543.746-51.722.746-34.18 0-38.228-.13-51.723-.746-12.48-.57-19.257-2.655-23.768-4.408-5.974-2.321-10.239-5.095-14.718-9.574-4.479-4.48-7.253-8.744-9.574-14.718-1.753-4.51-3.839-11.288-4.408-23.768-.616-13.497-.746-17.545-.746-51.723 0-34.177.13-38.225.746-51.722.57-12.48 2.655-19.258 4.408-23.769 2.321-5.974 5.095-10.238 9.574-14.717 4.48-4.48 8.744-7.253 14.718-9.575 4.51-1.753 11.288-3.838 23.768-4.408 13.497-.615 17.545-.745 51.723-.745M128 0C93.237 0 88.878.147 75.226.77c-13.625.622-22.93 2.786-31.071 5.95-8.418 3.271-15.556 7.648-22.672 14.764C14.367 28.6 9.991 35.738 6.72 44.155 3.555 52.297 1.392 61.602.77 75.226.147 88.878 0 93.237 0 128c0 34.763.147 39.122.77 52.774.622 13.625 2.785 22.93 5.95 31.071 3.27 8.417 7.647 15.556 14.763 22.672 7.116 7.116 14.254 11.492 22.672 14.763 8.142 3.165 17.446 5.328 31.07 5.95 13.653.623 18.012.77 52.775.77s39.122-.147 52.774-.77c13.624-.622 22.929-2.785 31.07-5.95 8.418-3.27 15.556-7.647 22.672-14.763 7.116-7.116 11.493-14.254 14.764-22.672 3.164-8.142 5.328-17.446 5.95-31.07.623-13.653.77-18.012.77-52.775s-.147-39.122-.77-52.774c-.622-13.624-2.786-22.929-5.95-31.07-3.271-8.418-7.648-15.556-14.764-22.672C227.4 14.368 220.262 9.99 211.845 6.72c-8.142-3.164-17.447-5.328-31.071-5.95C167.122.147 162.763 0 128 0Zm0 62.27C91.698 62.27 62.27 91.7 62.27 128c0 36.302 29.428 65.73 65.73 65.73 36.301 0 65.73-29.428 65.73-65.73 0-36.301-29.429-65.73-65.73-65.73Zm0 108.397c-23.564 0-42.667-19.103-42.667-42.667S104.436 85.333 128 85.333s42.667 19.103 42.667 42.667-19.103 42.667-42.667 42.667Zm83.686-110.994c0 8.484-6.876 15.36-15.36 15.36-8.483 0-15.36-6.876-15.36-15.36 0-8.483 6.877-15.36 15.36-15.36 8.484 0 15.36 6.877 15.36 15.36Z"})})},label:"Instagram"},threads:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg","aria-label":"Threads",viewBox:"0 0 192 192",width:"1em",fill:"none",height:"1em",style:{"--dark":"#000","--light":"#fff"},...e,className:(0,n.A)(e.className,m),children:(0,r.jsx)("path",{d:"M141.537 88.988a66.667 66.667 0 0 0-2.518-1.143c-1.482-27.307-16.403-42.94-41.457-43.1h-.34c-14.986 0-27.449 6.396-35.12 18.036l13.779 9.452c5.73-8.695 14.724-10.548 21.348-10.548h.229c8.249.053 14.474 2.452 18.503 7.129 2.932 3.405 4.893 8.111 5.864 14.05-7.314-1.243-15.224-1.626-23.68-1.14-23.82 1.371-39.134 15.264-38.105 34.568.522 9.792 5.4 18.216 13.735 23.719 7.047 4.652 16.124 6.927 25.557 6.412 12.458-.683 22.231-5.436 29.049-14.127 5.178-6.6 8.453-15.153 9.899-25.93 5.937 3.583 10.337 8.298 12.767 13.966 4.132 9.635 4.373 25.468-8.546 38.376-11.319 11.308-24.925 16.2-45.488 16.351-22.809-.169-40.06-7.484-51.275-21.742C35.236 139.966 29.808 120.682 29.605 96c.203-24.682 5.63-43.966 16.133-57.317C56.954 24.425 74.204 17.11 97.013 16.94c22.975.17 40.526 7.52 52.171 21.847 5.71 7.026 10.015 15.86 12.853 26.162l16.147-4.308c-3.44-12.68-8.853-23.606-16.219-32.668C147.036 9.607 125.202.195 97.07 0h-.113C68.882.194 47.292 9.642 32.788 28.08 19.882 44.485 13.224 67.315 13.001 95.932L13 96v.067c.224 28.617 6.882 51.447 19.788 67.854C47.292 182.358 68.882 191.806 96.957 192h.113c24.96-.173 42.554-6.708 57.048-21.189 18.963-18.945 18.392-42.692 12.142-57.27-4.484-10.454-13.033-18.945-24.723-24.553ZM98.44 129.507c-10.44.588-21.286-4.098-21.82-14.135-.397-7.442 5.296-15.746 22.461-16.735 1.966-.114 3.895-.169 5.79-.169 6.235 0 12.068.606 17.371 1.765-1.978 24.702-13.58 28.713-23.802 29.274Z"})})},label:"Threads"},mastodon:{Icon:function(e){const t=(0,a.useId)();return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 61 65",width:"1em",height:"1em",...e,children:[(0,r.jsx)("path",{fill:`url(#${t})`,d:"M60.754 14.39C59.814 7.406 53.727 1.903 46.512.836 45.294.656 40.682 0 29.997 0h-.08C19.23 0 16.938.656 15.72.836 8.705 1.873 2.299 6.82.745 13.886c-.748 3.48-.828 7.338-.689 10.877.198 5.075.237 10.142.697 15.197a71.482 71.482 0 0 0 1.664 9.968c1.477 6.056 7.458 11.096 13.317 13.152a35.718 35.718 0 0 0 19.484 1.028 28.365 28.365 0 0 0 2.107-.576c1.572-.5 3.413-1.057 4.766-2.038a.154.154 0 0 0 .062-.118v-4.899a.146.146 0 0 0-.055-.111.145.145 0 0 0-.122-.028 54 54 0 0 1-12.644 1.478c-7.328 0-9.298-3.478-9.863-4.925a15.258 15.258 0 0 1-.857-3.882.142.142 0 0 1 .178-.145 52.976 52.976 0 0 0 12.437 1.477c1.007 0 2.012 0 3.02-.026 4.213-.119 8.654-.334 12.8-1.144.103-.02.206-.038.295-.065 6.539-1.255 12.762-5.196 13.394-15.176.024-.393.083-4.115.083-4.523.003-1.386.446-9.829-.065-15.017Z"}),(0,r.jsx)("path",{fill:"#fff",d:"M50.394 22.237v17.35H43.52V22.749c0-3.545-1.478-5.353-4.483-5.353-3.303 0-4.958 2.139-4.958 6.364v9.217h-6.835V23.76c0-4.225-1.657-6.364-4.96-6.364-2.988 0-4.48 1.808-4.48 5.353v16.84H10.93V22.237c0-3.545.905-6.362 2.715-8.45 1.868-2.082 4.317-3.152 7.358-3.152 3.519 0 6.178 1.354 7.951 4.057l1.711 2.871 1.714-2.871c1.773-2.704 4.432-4.056 7.945-4.056 3.038 0 5.487 1.069 7.36 3.152 1.81 2.085 2.712 4.902 2.71 8.449Z"}),(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{id:t,x1:30.5,x2:30.5,y1:0,y2:65,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#6364FF"}),(0,r.jsx)("stop",{offset:1,stopColor:"#563ACC"})]})})]})},label:"Mastodon"},youtube:{Icon:function(e){return(0,r.jsxs)("svg",{viewBox:"0 0 256 180",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",...e,children:[(0,r.jsx)("path",{d:"M250.346 28.075A32.18 32.18 0 0 0 227.69 5.418C207.824 0 127.87 0 127.87 0S47.912.164 28.046 5.582A32.18 32.18 0 0 0 5.39 28.24c-6.009 35.298-8.34 89.084.165 122.97a32.18 32.18 0 0 0 22.656 22.657c19.866 5.418 99.822 5.418 99.822 5.418s79.955 0 99.82-5.418a32.18 32.18 0 0 0 22.657-22.657c6.338-35.348 8.291-89.1-.164-123.134Z",fill:"red"}),(0,r.jsx)("path",{fill:"#FFF",d:"m102.421 128.06 66.328-38.418-66.328-38.418z"})]})},label:"YouTube"},twitch:{Icon:function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",x:0,y:0,viewBox:"0 0 2400 2800",width:"1em",height:"1em",...e,children:[(0,r.jsx)("path",{d:"m2200 1300-400 400h-400l-350 350v-350H600V200h1600z",fill:"#fff"}),(0,r.jsxs)("g",{children:[(0,r.jsx)("path",{d:"M500 0 0 500v1800h600v500l500-500h400l900-900V0H500zm1700 1300-400 400h-400l-350 350v-350H600V200h1600v1100z",fill:"#9146ff"}),(0,r.jsx)("path",{d:"M1700 550h200v600h-200zM1150 550h200v600h-200z",fill:"#9146ff"})]})]})},label:"Twitch"}};function g({platform:e,link:t}){const{Icon:s,label:a}=d[l=e]??{Icon:c,label:l};var l;return(0,r.jsx)(i.A,{className:u.authorSocialLink,href:t,title:a,children:(0,r.jsx)(s,{className:(0,n.A)(u.authorSocialLink)})})}function x({author:e}){const t=Object.entries(e.socials??{});return(0,r.jsx)("div",{className:u.authorSocials,children:t.map((([e,t])=>(0,r.jsx)(g,{platform:e,link:t},e)))})}var f=s(1107);const p={authorImage:"authorImage_XqGP","author-as-h1":"author-as-h1_n9oJ","author-as-h2":"author-as-h2_gXvM",authorDetails:"authorDetails_lV9A",authorName:"authorName_yefp",authorTitle:"authorTitle_nd0D",authorBlogPostCount:"authorBlogPostCount_iiJ5"};function v(e){return e.href?(0,r.jsx)(i.A,{...e}):(0,r.jsx)(r.Fragment,{children:e.children})}function w({title:e}){return(0,r.jsx)("small",{className:p.authorTitle,title:e,children:e})}function j({name:e,as:t}){return t?(0,r.jsx)(f.A,{as:t,className:p.authorName,children:e}):(0,r.jsx)("span",{className:p.authorName,children:e})}function b({count:e}){return(0,r.jsx)("span",{className:(0,n.A)(p.authorBlogPostCount),children:e})}function C({as:e,author:t,className:s,count:a}){const{name:i,title:l,url:o,imageURL:c,email:h,page:m}=t,u=m?.permalink||o||h&&`mailto:${h}`||void 0;return(0,r.jsxs)("div",{className:(0,n.A)("avatar margin-bottom--sm",s,p[`author-as-${e}`]),children:[c&&(0,r.jsx)(v,{href:u,className:"avatar__photo-link",children:(0,r.jsx)("img",{className:(0,n.A)("avatar__photo",p.authorImage),src:c,alt:i})}),(i||l)&&(0,r.jsxs)("div",{className:(0,n.A)("avatar__intro",p.authorDetails),children:[(0,r.jsxs)("div",{className:"avatar__name",children:[i&&(0,r.jsx)(v,{href:u,children:(0,r.jsx)(j,{name:i,as:e})}),void 0!==a&&(0,r.jsx)(b,{count:a})]}),!!l&&(0,r.jsx)(w,{title:l}),(0,r.jsx)(x,{author:t})]})]})}},8027:(e,t,s)=>{s.d(t,{A:()=>L});var a=s(6540),n=s(4164),i=s(1656),r=s(4581),l=s(1312),o=s(4096),c=s(6342),h=s(1107),m=s(4848);function u({year:e,yearGroupHeadingClassName:t,children:s}){return(0,m.jsxs)("div",{role:"group",children:[(0,m.jsx)(h.A,{as:"h3",className:t,children:e}),s]})}function d({items:e,yearGroupHeadingClassName:t,ListComponent:s}){if((0,c.p)().blog.sidebar.groupByYear){const a=(0,o.Ki)(e);return(0,m.jsx)(m.Fragment,{children:a.map((([e,a])=>(0,m.jsx)(u,{year:e,yearGroupHeadingClassName:t,children:(0,m.jsx)(s,{items:a})},e)))})}return(0,m.jsx)(s,{items:e})}const g=(0,a.memo)(d),x="sidebar_re4s",f="sidebarItemTitle_pO2u",p="sidebarItemList_Yudw",v="sidebarItem__DBe",w="sidebarItemLink_mo7H",j="sidebarItemLinkActive_I1ZP",b="yearGroupHeading_rMGB",C=({items:e})=>(0,m.jsx)(o.OU,{items:e,ulClassName:(0,n.A)(p,"clean-list"),liClassName:v,linkClassName:w,linkActiveClassName:j});function M({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,m.jsx)("aside",{className:"col col--3",children:(0,m.jsxs)("nav",{className:(0,n.A)(x,"thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,m.jsx)("div",{className:(0,n.A)(f,"margin-bottom--md"),children:e.title}),(0,m.jsx)(g,{items:t,ListComponent:C,yearGroupHeadingClassName:b})]})})}const N=(0,a.memo)(M);var k=s(5600);const A="yearGroupHeading_QT03",_=({items:e})=>(0,m.jsx)(o.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function y({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,m.jsx)(g,{items:t,ListComponent:_,yearGroupHeadingClassName:A})}function B(e){return(0,m.jsx)(k.GX,{component:y,props:e})}const I=(0,a.memo)(B);function P({sidebar:e}){const t=(0,r.l)();return e?.items.length?"mobile"===t?(0,m.jsx)(I,{sidebar:e}):(0,m.jsx)(N,{sidebar:e}):null}function L(e){const{sidebar:t,toc:s,children:a,...r}=e,l=t&&t.items.length>0;return(0,m.jsx)(i.A,{...r,children:(0,m.jsx)("div",{className:"container margin-vert--lg",children:(0,m.jsxs)("div",{className:"row",children:[(0,m.jsx)(P,{sidebar:t}),(0,m.jsx)("main",{className:(0,n.A)("col",{"col--7":l,"col--9 col--offset-1":!l}),children:a}),s&&(0,m.jsx)("div",{className:"col col--2",children:s})]})})})}}}]); \ No newline at end of file diff --git a/docs/assets/js/7518.9525ffbe.js b/docs/assets/js/7518.9525ffbe.js new file mode 100644 index 00000000..2702681c --- /dev/null +++ b/docs/assets/js/7518.9525ffbe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7518],{4096:(e,t,s)=>{s.d(t,{in:()=>c,OU:()=>A,Ki:()=>k,kJ:()=>f,x:()=>l,e7:()=>h,J_:()=>p,Gx:()=>N});var a=s(6540),n=s(9532),i=s(6803),r=s(4848);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=a.createContext(null);function c({children:e,content:t,isBlogPostPage:s=!1}){const n=function({content:e,isBlogPostPage:t}){return(0,a.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,toc:e.toc,isBlogPostPage:t}),[e,t])}({content:t,isBlogPostPage:s});return(0,r.jsx)(o.Provider,{value:n,children:e})}function h(){const e=(0,a.useContext)(o);if(null===e)throw new n.dV("BlogPostProvider");return e}var m=s(6025),u=s(4586);const d=e=>new Date(e).toISOString();function g(e){const t=e.map(v);return{author:1===t.length?t[0]:t}}function x(e,t,s){return e?{image:w({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${s}`})}:{}}function f(e){const{siteConfig:t}=(0,u.A)(),{withBaseUrl:s}=(0,m.hH)(),{metadata:{blogDescription:a,blogTitle:n,permalink:i}}=e,r=`${t.url}${i}`;return{"@context":"https://schema.org","@type":"Blog","@id":r,mainEntityOfPage:r,headline:n,description:a,blogPost:e.items.map(e=>function(e,t,s){const{assets:a,frontMatter:n,metadata:i}=e,{date:r,title:l,description:o,lastUpdatedAt:c}=i,h=a.image??n.image,m=n.keywords??[],u=`${t.url}${i.permalink}`,f=c?d(c):void 0;return{"@type":"BlogPosting","@id":u,mainEntityOfPage:u,url:u,headline:l,name:l,description:o,datePublished:r,...f?{dateModified:f}:{},...g(i.authors),...x(h,s,l),...m?{keywords:m}:{}}}(e.content,t,s))}}function p(){const e=l(),{assets:t,metadata:s}=h(),{siteConfig:a}=(0,u.A)(),{withBaseUrl:n}=(0,m.hH)(),{date:i,title:r,description:o,frontMatter:c,lastUpdatedAt:f}=s,p=t.image??c.image,v=c.keywords??[],w=f?d(f):void 0,j=`${a.url}${s.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":j,mainEntityOfPage:j,url:j,headline:r,name:r,description:o,datePublished:i,...w?{dateModified:w}:{},...g(s.authors),...x(p,n,r),...v?{keywords:v}:{},isPartOf:{"@type":"Blog","@id":`${a.url}${e.blogBasePath}`,name:e.blogTitle}}}function v(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function w({imageUrl:e,caption:t}){return{"@type":"ImageObject","@id":e,url:e,contentUrl:e,caption:t}}var j=s(6347),b=s(8774),C=s(1682),M=s(9169);function N(e){const{pathname:t}=(0,j.zy)();return(0,a.useMemo)(()=>e.filter(e=>function(e,t){return!(e.unlisted&&!(0,M.ys)(e.permalink,t))}(e,t)),[e,t])}function k(e){const t=(0,C.$z)(e,e=>`${new Date(e.date).getFullYear()}`),s=Object.entries(t);return s.reverse(),s}function A({items:e,ulClassName:t,liClassName:s,linkClassName:a,linkActiveClassName:n}){return(0,r.jsx)("ul",{className:t,children:e.map(e=>(0,r.jsx)("li",{className:s,children:(0,r.jsx)(b.A,{isNavLink:!0,to:e.permalink,className:a,activeClassName:n,children:e.title})},e.permalink))})}},5846:(e,t,s)=>{s.d(t,{W:()=>c});var a=s(6540),n=s(4586);const i=["zero","one","two","few","many","other"];function r(e){return i.filter(t=>e.includes(t))}const l={locale:"en",pluralForms:r(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,a.useMemo)(()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:r(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`),l}},[e])}function c(){const e=o();return{selectMessage:(t,s)=>function(e,t,s){const a=e.split("|");if(1===a.length)return a[0];a.length>s.pluralForms.length&&console.error(`For locale=${s.locale}, a maximum of ${s.pluralForms.length} plural forms are expected (${s.pluralForms.join(",")}), but the message contains ${a.length}: ${e}`);const n=s.select(t),i=s.pluralForms.indexOf(n);return a[Math.min(i,a.length-1)]}(s,t,e)}}},6382:(e,t,s)=>{s.d(t,{A:()=>C});var a=s(6540),n=s(4164),i=s(8774),r=s(4848);const l="githubSvg_Uu4N";const o="xSvg_y3PF";const c=function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[(0,r.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"}),(0,r.jsx)("path",{d:"M3.6 9h16.8"}),(0,r.jsx)("path",{d:"M3.6 15h16.8"}),(0,r.jsx)("path",{d:"M11.5 3a17 17 0 0 0 0 18"}),(0,r.jsx)("path",{d:"M12.5 3a17 17 0 0 1 0 18"})]})};const h="instagramSvg_YC40";const m="threadsSvg_PTXY";const u={authorSocials:"authorSocials_rSDt",authorSocialLink:"authorSocialLink_owbf",authorSocialIcon:"authorSocialIcon_XYv3"},d={twitter:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 209",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid",...e,children:(0,r.jsx)("path",{d:"M256 25.45c-9.42 4.177-19.542 7-30.166 8.27 10.845-6.5 19.172-16.793 23.093-29.057a105.183 105.183 0 0 1-33.351 12.745C205.995 7.201 192.346.822 177.239.822c-29.006 0-52.523 23.516-52.523 52.52 0 4.117.465 8.125 1.36 11.97-43.65-2.191-82.35-23.1-108.255-54.876-4.52 7.757-7.11 16.78-7.11 26.404 0 18.222 9.273 34.297 23.365 43.716a52.312 52.312 0 0 1-23.79-6.57c-.003.22-.003.44-.003.661 0 25.447 18.104 46.675 42.13 51.5a52.592 52.592 0 0 1-23.718.9c6.683 20.866 26.08 36.05 49.062 36.475-17.975 14.086-40.622 22.483-65.228 22.483-4.24 0-8.42-.249-12.529-.734 23.243 14.902 50.85 23.597 80.51 23.597 96.607 0 149.434-80.031 149.434-149.435 0-2.278-.05-4.543-.152-6.795A106.748 106.748 0 0 0 256 25.45",fill:"#55acee"})})},label:"Twitter"},github:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 256 250",preserveAspectRatio:"xMidYMid",style:{"--dark":"#000","--light":"#fff"},...e,className:(0,n.A)(e.className,l),children:(0,r.jsx)("path",{d:"M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"})})},label:"GitHub"},stackoverflow:{Icon:function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 169.61 200",width:"1em",height:"1em",...e,children:[(0,r.jsx)("path",{d:"M140.44 178.38v-48.65h21.61V200H0v-70.27h21.61v48.65z",fill:"#bcbbbb"}),(0,r.jsx)("path",{d:"M124.24 140.54l4.32-16.22-86.97-17.83-3.78 17.83zM49.7 82.16L130.72 120l7.56-16.22-81.02-37.83zm22.68-40l68.06 57.3 11.35-13.51-68.6-57.3-11.35 13.51zM116.14 0l-14.59 10.81 53.48 71.89 14.58-10.81zM37.81 162.16h86.43v-16.21H37.81z",fill:"#f48024"})]})},label:"Stack Overflow"},linkedin:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",...e,children:(0,r.jsx)("path",{d:"M218.123 218.127h-37.931v-59.403c0-14.165-.253-32.4-19.728-32.4-19.756 0-22.779 15.434-22.779 31.369v60.43h-37.93V95.967h36.413v16.694h.51a39.907 39.907 0 0 1 35.928-19.733c38.445 0 45.533 25.288 45.533 58.186l-.016 67.013ZM56.955 79.27c-12.157.002-22.014-9.852-22.016-22.009-.002-12.157 9.851-22.014 22.008-22.016 12.157-.003 22.014 9.851 22.016 22.008A22.013 22.013 0 0 1 56.955 79.27m18.966 138.858H37.95V95.967h37.97v122.16ZM237.033.018H18.89C8.58-.098.125 8.161-.001 18.471v219.053c.122 10.315 8.576 18.582 18.89 18.474h218.144c10.336.128 18.823-8.139 18.966-18.474V18.454c-.147-10.33-8.635-18.588-18.966-18.453",fill:"#0A66C2"})})},label:"LinkedIn"},x:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 1200 1227",style:{"--dark":"#000","--light":"#fff"},...e,className:(0,n.A)(e.className,o),children:(0,r.jsx)("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"})})},label:"X"},bluesky:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 226",...e,children:(0,r.jsx)("path",{fill:"#1185FE",d:"M55.491 15.172c29.35 22.035 60.917 66.712 72.509 90.686 11.592-23.974 43.159-68.651 72.509-90.686C221.686-.727 256-13.028 256 26.116c0 7.818-4.482 65.674-7.111 75.068-9.138 32.654-42.436 40.983-72.057 35.942 51.775 8.812 64.946 38 36.501 67.187-54.021 55.433-77.644-13.908-83.696-31.676-1.11-3.257-1.63-4.78-1.637-3.485-.008-1.296-.527.228-1.637 3.485-6.052 17.768-29.675 87.11-83.696 31.676-28.445-29.187-15.274-58.375 36.5-67.187-29.62 5.041-62.918-3.288-72.056-35.942C4.482 91.79 0 33.934 0 26.116 0-13.028 34.314-.727 55.491 15.172Z"})})},label:"Bluesky"},instagram:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",style:{"--dark":"#000","--light":"#fff"},...e,className:(0,n.A)(e.className,h),children:(0,r.jsx)("path",{d:"M128 23.064c34.177 0 38.225.13 51.722.745 12.48.57 19.258 2.655 23.769 4.408 5.974 2.322 10.238 5.096 14.717 9.575 4.48 4.479 7.253 8.743 9.575 14.717 1.753 4.511 3.838 11.289 4.408 23.768.615 13.498.745 17.546.745 51.723 0 34.178-.13 38.226-.745 51.723-.57 12.48-2.655 19.257-4.408 23.768-2.322 5.974-5.096 10.239-9.575 14.718-4.479 4.479-8.743 7.253-14.717 9.574-4.511 1.753-11.289 3.839-23.769 4.408-13.495.616-17.543.746-51.722.746-34.18 0-38.228-.13-51.723-.746-12.48-.57-19.257-2.655-23.768-4.408-5.974-2.321-10.239-5.095-14.718-9.574-4.479-4.48-7.253-8.744-9.574-14.718-1.753-4.51-3.839-11.288-4.408-23.768-.616-13.497-.746-17.545-.746-51.723 0-34.177.13-38.225.746-51.722.57-12.48 2.655-19.258 4.408-23.769 2.321-5.974 5.095-10.238 9.574-14.717 4.48-4.48 8.744-7.253 14.718-9.575 4.51-1.753 11.288-3.838 23.768-4.408 13.497-.615 17.545-.745 51.723-.745M128 0C93.237 0 88.878.147 75.226.77c-13.625.622-22.93 2.786-31.071 5.95-8.418 3.271-15.556 7.648-22.672 14.764C14.367 28.6 9.991 35.738 6.72 44.155 3.555 52.297 1.392 61.602.77 75.226.147 88.878 0 93.237 0 128c0 34.763.147 39.122.77 52.774.622 13.625 2.785 22.93 5.95 31.071 3.27 8.417 7.647 15.556 14.763 22.672 7.116 7.116 14.254 11.492 22.672 14.763 8.142 3.165 17.446 5.328 31.07 5.95 13.653.623 18.012.77 52.775.77s39.122-.147 52.774-.77c13.624-.622 22.929-2.785 31.07-5.95 8.418-3.27 15.556-7.647 22.672-14.763 7.116-7.116 11.493-14.254 14.764-22.672 3.164-8.142 5.328-17.446 5.95-31.07.623-13.653.77-18.012.77-52.775s-.147-39.122-.77-52.774c-.622-13.624-2.786-22.929-5.95-31.07-3.271-8.418-7.648-15.556-14.764-22.672C227.4 14.368 220.262 9.99 211.845 6.72c-8.142-3.164-17.447-5.328-31.071-5.95C167.122.147 162.763 0 128 0Zm0 62.27C91.698 62.27 62.27 91.7 62.27 128c0 36.302 29.428 65.73 65.73 65.73 36.301 0 65.73-29.428 65.73-65.73 0-36.301-29.429-65.73-65.73-65.73Zm0 108.397c-23.564 0-42.667-19.103-42.667-42.667S104.436 85.333 128 85.333s42.667 19.103 42.667 42.667-19.103 42.667-42.667 42.667Zm83.686-110.994c0 8.484-6.876 15.36-15.36 15.36-8.483 0-15.36-6.876-15.36-15.36 0-8.483 6.877-15.36 15.36-15.36 8.484 0 15.36 6.877 15.36 15.36Z"})})},label:"Instagram"},threads:{Icon:function(e){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg","aria-label":"Threads",viewBox:"0 0 192 192",width:"1em",fill:"none",height:"1em",style:{"--dark":"#000","--light":"#fff"},...e,className:(0,n.A)(e.className,m),children:(0,r.jsx)("path",{d:"M141.537 88.988a66.667 66.667 0 0 0-2.518-1.143c-1.482-27.307-16.403-42.94-41.457-43.1h-.34c-14.986 0-27.449 6.396-35.12 18.036l13.779 9.452c5.73-8.695 14.724-10.548 21.348-10.548h.229c8.249.053 14.474 2.452 18.503 7.129 2.932 3.405 4.893 8.111 5.864 14.05-7.314-1.243-15.224-1.626-23.68-1.14-23.82 1.371-39.134 15.264-38.105 34.568.522 9.792 5.4 18.216 13.735 23.719 7.047 4.652 16.124 6.927 25.557 6.412 12.458-.683 22.231-5.436 29.049-14.127 5.178-6.6 8.453-15.153 9.899-25.93 5.937 3.583 10.337 8.298 12.767 13.966 4.132 9.635 4.373 25.468-8.546 38.376-11.319 11.308-24.925 16.2-45.488 16.351-22.809-.169-40.06-7.484-51.275-21.742C35.236 139.966 29.808 120.682 29.605 96c.203-24.682 5.63-43.966 16.133-57.317C56.954 24.425 74.204 17.11 97.013 16.94c22.975.17 40.526 7.52 52.171 21.847 5.71 7.026 10.015 15.86 12.853 26.162l16.147-4.308c-3.44-12.68-8.853-23.606-16.219-32.668C147.036 9.607 125.202.195 97.07 0h-.113C68.882.194 47.292 9.642 32.788 28.08 19.882 44.485 13.224 67.315 13.001 95.932L13 96v.067c.224 28.617 6.882 51.447 19.788 67.854C47.292 182.358 68.882 191.806 96.957 192h.113c24.96-.173 42.554-6.708 57.048-21.189 18.963-18.945 18.392-42.692 12.142-57.27-4.484-10.454-13.033-18.945-24.723-24.553ZM98.44 129.507c-10.44.588-21.286-4.098-21.82-14.135-.397-7.442 5.296-15.746 22.461-16.735 1.966-.114 3.895-.169 5.79-.169 6.235 0 12.068.606 17.371 1.765-1.978 24.702-13.58 28.713-23.802 29.274Z"})})},label:"Threads"},mastodon:{Icon:function(e){const t=(0,a.useId)();return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 61 65",width:"1em",height:"1em",...e,children:[(0,r.jsx)("path",{fill:`url(#${t})`,d:"M60.754 14.39C59.814 7.406 53.727 1.903 46.512.836 45.294.656 40.682 0 29.997 0h-.08C19.23 0 16.938.656 15.72.836 8.705 1.873 2.299 6.82.745 13.886c-.748 3.48-.828 7.338-.689 10.877.198 5.075.237 10.142.697 15.197a71.482 71.482 0 0 0 1.664 9.968c1.477 6.056 7.458 11.096 13.317 13.152a35.718 35.718 0 0 0 19.484 1.028 28.365 28.365 0 0 0 2.107-.576c1.572-.5 3.413-1.057 4.766-2.038a.154.154 0 0 0 .062-.118v-4.899a.146.146 0 0 0-.055-.111.145.145 0 0 0-.122-.028 54 54 0 0 1-12.644 1.478c-7.328 0-9.298-3.478-9.863-4.925a15.258 15.258 0 0 1-.857-3.882.142.142 0 0 1 .178-.145 52.976 52.976 0 0 0 12.437 1.477c1.007 0 2.012 0 3.02-.026 4.213-.119 8.654-.334 12.8-1.144.103-.02.206-.038.295-.065 6.539-1.255 12.762-5.196 13.394-15.176.024-.393.083-4.115.083-4.523.003-1.386.446-9.829-.065-15.017Z"}),(0,r.jsx)("path",{fill:"#fff",d:"M50.394 22.237v17.35H43.52V22.749c0-3.545-1.478-5.353-4.483-5.353-3.303 0-4.958 2.139-4.958 6.364v9.217h-6.835V23.76c0-4.225-1.657-6.364-4.96-6.364-2.988 0-4.48 1.808-4.48 5.353v16.84H10.93V22.237c0-3.545.905-6.362 2.715-8.45 1.868-2.082 4.317-3.152 7.358-3.152 3.519 0 6.178 1.354 7.951 4.057l1.711 2.871 1.714-2.871c1.773-2.704 4.432-4.056 7.945-4.056 3.038 0 5.487 1.069 7.36 3.152 1.81 2.085 2.712 4.902 2.71 8.449Z"}),(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{id:t,x1:30.5,x2:30.5,y1:0,y2:65,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#6364FF"}),(0,r.jsx)("stop",{offset:1,stopColor:"#563ACC"})]})})]})},label:"Mastodon"},youtube:{Icon:function(e){return(0,r.jsxs)("svg",{viewBox:"0 0 256 180",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",...e,children:[(0,r.jsx)("path",{d:"M250.346 28.075A32.18 32.18 0 0 0 227.69 5.418C207.824 0 127.87 0 127.87 0S47.912.164 28.046 5.582A32.18 32.18 0 0 0 5.39 28.24c-6.009 35.298-8.34 89.084.165 122.97a32.18 32.18 0 0 0 22.656 22.657c19.866 5.418 99.822 5.418 99.822 5.418s79.955 0 99.82-5.418a32.18 32.18 0 0 0 22.657-22.657c6.338-35.348 8.291-89.1-.164-123.134Z",fill:"red"}),(0,r.jsx)("path",{fill:"#FFF",d:"m102.421 128.06 66.328-38.418-66.328-38.418z"})]})},label:"YouTube"},twitch:{Icon:function(e){return(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",x:0,y:0,viewBox:"0 0 2400 2800",width:"1em",height:"1em",...e,children:[(0,r.jsx)("path",{d:"m2200 1300-400 400h-400l-350 350v-350H600V200h1600z",fill:"#fff"}),(0,r.jsxs)("g",{children:[(0,r.jsx)("path",{d:"M500 0 0 500v1800h600v500l500-500h400l900-900V0H500zm1700 1300-400 400h-400l-350 350v-350H600V200h1600v1100z",fill:"#9146ff"}),(0,r.jsx)("path",{d:"M1700 550h200v600h-200zM1150 550h200v600h-200z",fill:"#9146ff"})]})]})},label:"Twitch"}};function g({platform:e,link:t}){const{Icon:s,label:a}=d[l=e]??{Icon:c,label:l};var l;return(0,r.jsx)(i.A,{className:u.authorSocialLink,href:t,title:a,children:(0,r.jsx)(s,{className:(0,n.A)(u.authorSocialLink)})})}function x({author:e}){const t=Object.entries(e.socials??{});return(0,r.jsx)("div",{className:u.authorSocials,children:t.map(([e,t])=>(0,r.jsx)(g,{platform:e,link:t},e))})}var f=s(1107);const p={authorImage:"authorImage_XqGP","author-as-h1":"author-as-h1_n9oJ","author-as-h2":"author-as-h2_gXvM",authorDetails:"authorDetails_lV9A",authorName:"authorName_yefp",authorTitle:"authorTitle_nd0D",authorBlogPostCount:"authorBlogPostCount_iiJ5"};function v(e){return e.href?(0,r.jsx)(i.A,{...e}):(0,r.jsx)(r.Fragment,{children:e.children})}function w({title:e}){return(0,r.jsx)("small",{className:p.authorTitle,title:e,children:e})}function j({name:e,as:t}){return t?(0,r.jsx)(f.A,{as:t,className:p.authorName,children:e}):(0,r.jsx)("span",{className:p.authorName,children:e})}function b({count:e}){return(0,r.jsx)("span",{className:(0,n.A)(p.authorBlogPostCount),children:e})}function C({as:e,author:t,className:s,count:a}){const{name:i,title:l,url:o,imageURL:c,email:h,page:m}=t,u=m?.permalink||o||h&&`mailto:${h}`||void 0;return(0,r.jsxs)("div",{className:(0,n.A)("avatar margin-bottom--sm",s,p[`author-as-${e}`]),children:[c&&(0,r.jsx)(v,{href:u,className:"avatar__photo-link",children:(0,r.jsx)("img",{className:(0,n.A)("avatar__photo",p.authorImage),src:c,alt:i})}),(i||l)&&(0,r.jsxs)("div",{className:(0,n.A)("avatar__intro",p.authorDetails),children:[(0,r.jsxs)("div",{className:"avatar__name",children:[i&&(0,r.jsx)(v,{href:u,children:(0,r.jsx)(j,{name:i,as:e})}),void 0!==a&&(0,r.jsx)(b,{count:a})]}),!!l&&(0,r.jsx)(w,{title:l}),(0,r.jsx)(x,{author:t})]})]})}},8027:(e,t,s)=>{s.d(t,{A:()=>L});var a=s(6540),n=s(4164),i=s(1656),r=s(4581),l=s(1312),o=s(4096),c=s(6342),h=s(1107),m=s(4848);function u({year:e,yearGroupHeadingClassName:t,children:s}){return(0,m.jsxs)("div",{role:"group",children:[(0,m.jsx)(h.A,{as:"h3",className:t,children:e}),s]})}function d({items:e,yearGroupHeadingClassName:t,ListComponent:s}){if((0,c.p)().blog.sidebar.groupByYear){const a=(0,o.Ki)(e);return(0,m.jsx)(m.Fragment,{children:a.map(([e,a])=>(0,m.jsx)(u,{year:e,yearGroupHeadingClassName:t,children:(0,m.jsx)(s,{items:a})},e))})}return(0,m.jsx)(s,{items:e})}const g=(0,a.memo)(d),x="sidebar_re4s",f="sidebarItemTitle_pO2u",p="sidebarItemList_Yudw",v="sidebarItem__DBe",w="sidebarItemLink_mo7H",j="sidebarItemLinkActive_I1ZP",b="yearGroupHeading_rMGB",C=({items:e})=>(0,m.jsx)(o.OU,{items:e,ulClassName:(0,n.A)(p,"clean-list"),liClassName:v,linkClassName:w,linkActiveClassName:j});function M({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,m.jsx)("aside",{className:"col col--3",children:(0,m.jsxs)("nav",{className:(0,n.A)(x,"thin-scrollbar"),"aria-label":(0,l.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,m.jsx)("div",{className:(0,n.A)(f,"margin-bottom--md"),children:e.title}),(0,m.jsx)(g,{items:t,ListComponent:C,yearGroupHeadingClassName:b})]})})}const N=(0,a.memo)(M);var k=s(5600);const A="yearGroupHeading_QT03",_=({items:e})=>(0,m.jsx)(o.OU,{items:e,ulClassName:"menu__list",liClassName:"menu__list-item",linkClassName:"menu__link",linkActiveClassName:"menu__link--active"});function y({sidebar:e}){const t=(0,o.Gx)(e.items);return(0,m.jsx)(g,{items:t,ListComponent:_,yearGroupHeadingClassName:A})}function B(e){return(0,m.jsx)(k.GX,{component:y,props:e})}const I=(0,a.memo)(B);function P({sidebar:e}){const t=(0,r.l)();return e?.items.length?"mobile"===t?(0,m.jsx)(I,{sidebar:e}):(0,m.jsx)(N,{sidebar:e}):null}function L(e){const{sidebar:t,toc:s,children:a,...r}=e,l=t&&t.items.length>0;return(0,m.jsx)(i.A,{...r,children:(0,m.jsx)("div",{className:"container margin-vert--lg",children:(0,m.jsxs)("div",{className:"row",children:[(0,m.jsx)(P,{sidebar:t}),(0,m.jsx)("main",{className:(0,n.A)("col",{"col--7":l,"col--9 col--offset-1":!l}),children:a}),s&&(0,m.jsx)("div",{className:"col col--2",children:s})]})})})}}}]); \ No newline at end of file diff --git a/docs/assets/js/79ae4ea7.1416ba4f.js b/docs/assets/js/79ae4ea7.1416ba4f.js new file mode 100644 index 00000000..8a4eb857 --- /dev/null +++ b/docs/assets/js/79ae4ea7.1416ba4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4340],{2173:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/llm-plat-9ac69c0ffd8c387d177e582611b8c775.png"},4311:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"permalink":"/BharatMLStack/blog/post-three","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-four/index.md","source":"@site/blog/bharatmlstack-history/post-four/index.md","title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","description":"BharatMLStack","date":"2025-03-29T00:00:00.000Z","tags":[{"inline":true,"label":"llm","permalink":"/BharatMLStack/blog/tags/llm"},{"inline":true,"label":"vllm","permalink":"/BharatMLStack/blog/tags/vllm"},{"inline":true,"label":"tensorrt-llm","permalink":"/BharatMLStack/blog/tags/tensorrt-llm"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":13.38,"hasTruncateMarker":false,"authors":[{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null}],"frontMatter":{"slug":"post-three","title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","authors":["jaya"],"date":"2025-3-29","tags":["llm","vllm","tensorrt-llm","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"prevItem":{"title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","permalink":"/BharatMLStack/blog/post-five"},"nextItem":{"title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","permalink":"/BharatMLStack/blog/post-three"}}');var r=i(4848),s=i(8453);const a={slug:"post-three",title:"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving",authors:["jaya"],date:"2025-3-29",tags:["llm","vllm","tensorrt-llm","mlplatform","meesho","bharatmlstack"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving",id:"designing-a-production-grade-llm-inference-platform-from-model-weights-to-scalable-gpu-serving",level:2},{value:"Why LLM Inference Is not just bigger ML model serving",id:"why-llm-inference-is-not-just-bigger-ml-model-serving",level:2},{value:"Autoregressive Generation and Sequential Computation:",id:"autoregressive-generation-and-sequential-computation",level:3},{value:"Prefill and Decode Phases:",id:"prefill-and-decode-phases",level:3},{value:"Context Management and KV Caching:",id:"context-management-and-kv-caching",level:3},{value:"Dynamic and Irregular Workloads:",id:"dynamic-and-irregular-workloads",level:3},{value:"Streaming and User Experience Constraints:",id:"streaming-and-user-experience-constraints",level:3},{value:"LLMOps: High-Level Architecture",id:"llmops-high-level-architecture",level:2},{value:"Supported Inference backends (TensorRT LLM, Dynamo & vLLM)",id:"supported-inference-backends-tensorrt-llm--dynamo--vllm",level:2},{value:"Conclusion",id:"conclusion",level:2},{value:"Future Explorations",id:"future-explorations",level:2}];function d(e){const n={h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"BharatMLStack",src:i(7996).A+"",width:"1396",height:"460"})}),"\n",(0,r.jsx)(n.h2,{id:"designing-a-production-grade-llm-inference-platform-from-model-weights-to-scalable-gpu-serving",children:"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving"}),"\n",(0,r.jsx)(n.p,{children:"Serving large language models in production introduces new challenges across infrastructure, performance optimization, and operational lifecycle management. The LLM Inference Platform addresses these challenges by providing a unified system for deploying and managing open-source and fine-tuned LLMs at scale."}),"\n",(0,r.jsx)(n.p,{children:"The platform implements a complete LLMOps lifecycle \u2014 from model registration and automated compilation to deployment, runtime optimization, and monitoring. Designed as a self-service environment, users can onboard models directly from open repositories such as Hugging Face or upload custom fine-tuned models, and deploy them using a single-click workflow with no manual infrastructure or configuration steps required."}),"\n",(0,r.jsx)(n.p,{children:"In addition to fully automated deployment, the platform allows users to select and apply custom inference optimization techniques \u2014 such as quantization strategies, batching configurations, and runtime-specific performance enhancements \u2014 enabling teams to balance latency, throughput, and cost based on their use case. The goal is to reduce operational friction while enabling high-performance, production-grade LLM inference."}),"\n",(0,r.jsx)(n.h2,{id:"why-llm-inference-is-not-just-bigger-ml-model-serving",children:"Why LLM Inference Is not just bigger ML model serving"}),"\n",(0,r.jsx)(n.p,{children:"Large language model (LLM) inference introduces a fundamentally different set of challenges compared to traditional machine learning inference. While classical ML models typically perform a single forward pass to produce a fixed prediction, LLMs operate as autoregressive systems, generating outputs token by token based on previously generated context. This difference dramatically changes how inference systems must be designed, optimized, and scaled."}),"\n",(0,r.jsx)(n.h3,{id:"autoregressive-generation-and-sequential-computation",children:"Autoregressive Generation and Sequential Computation:"}),"\n",(0,r.jsx)(n.p,{children:"Unlike traditional models such as classifiers or recommenders \u2014 where inference cost is relatively constant \u2014 LLMs generate responses incrementally. Each new token depends on all previously generated tokens, making inference inherently sequential and dynamic. This means latency and compute requirements vary significantly depending on prompt length and output size, introducing complexity in scheduling and resource allocation.\nBecause tokens cannot be generated fully in parallel during decoding, GPUs may become underutilized without specialized batching and scheduling strategies. This has led to the development of dedicated LLM inference engines optimized for token-level execution."}),"\n",(0,r.jsx)(n.h3,{id:"prefill-and-decode-phases",children:"Prefill and Decode Phases:"}),"\n",(0,r.jsx)(n.p,{children:"LLM inference typically consists of two distinct stages:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Prefill phase \u2014 the model processes the input prompt and builds internal representations. This stage is compute-heavy and highly parallelizable."}),"\n",(0,r.jsx)(n.li,{children:"Decode phase \u2014 the model generates tokens sequentially, predicting one token at a time using previously generated context."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The decode stage often becomes memory-bound rather than compute-bound, which creates new performance bottlenecks compared to traditional ML workloads."}),"\n",(0,r.jsx)(n.h3,{id:"context-management-and-kv-caching",children:"Context Management and KV Caching:"}),"\n",(0,r.jsx)(n.p,{children:"Another fundamental difference lies in how LLMs maintain context. Transformer-based models rely on attention mechanisms that require access to past token representations. To avoid recomputing these representations repeatedly, inference engines use key-value (KV) caching, which stores intermediate activations from previous tokens.\nKV caching significantly improves performance by eliminating redundant computation, but it introduces new challenges:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Memory consumption grows with sequence length and batch size"}),"\n",(0,r.jsx)(n.li,{children:"GPU memory becomes a critical bottleneck"}),"\n",(0,r.jsx)(n.li,{children:"Efficient memory management becomes essential for scaling concurrent requests"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"This tradeoff between compute efficiency and memory usage is unique to LLM inference workloads."}),"\n",(0,r.jsx)(n.h3,{id:"dynamic-and-irregular-workloads",children:"Dynamic and Irregular Workloads:"}),"\n",(0,r.jsx)(n.p,{children:"Traditional ML inference typically operates on fixed-size inputs with predictable latency. In contrast, LLM requests vary widely in prompt length, output length, and runtime behavior. As a result:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Batch sizes must be dynamic rather than static"}),"\n",(0,r.jsx)(n.li,{children:"Requests may enter and leave batches asynchronously"}),"\n",(0,r.jsx)(n.li,{children:"Scheduling systems must continuously rebalance workloads to maximize GPU utilization"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"These characteristics require specialized serving architectures that differ significantly from standard ML serving pipelines."}),"\n",(0,r.jsx)(n.h3,{id:"streaming-and-user-experience-constraints",children:"Streaming and User Experience Constraints:"}),"\n",(0,r.jsx)(n.p,{children:"Another distinguishing factor is the expectation of real-time streaming responses. Instead of returning a single output, LLM systems often stream tokens to users as they are generated.\nBecause of these differences \u2014 sequential generation, growing memory requirements, dynamic workloads, and streaming constraints \u2014 LLM inference cannot be treated as a simple extension of existing ML serving systems. Production platforms must incorporate specialized runtime engines, advanced optimization techniques, and observability tailored specifically to LLM workloads."}),"\n",(0,r.jsx)(n.h2,{id:"llmops-high-level-architecture",children:"LLMOps: High-Level Architecture"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"LLM Architecture",src:i(2173).A+"",width:"1302",height:"830"})}),"\n",(0,r.jsx)(n.p,{children:"The LLM Inference Framework is designed as a fully automated, end-to-end system for deploying and operating open-source and fine-tuned large language models at scale. The architecture abstracts the complexity of model optimization, hardware selection, deployment, and runtime management into a unified workflow that enables users to move from raw model weights to production-ready inference endpoints with minimal manual intervention."}),"\n",(0,r.jsx)(n.p,{children:"Our LLM Inference Framework is architected not just as a serving engine, but as a complete lifecycle management system. As illustrated in the high-level design below, the platform automates the journey of a model through seven distinct stages, ensuring reproducibility, performance, and scalability."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Onboarding & Registration (The Source of Truth)"}),"\n",(0,r.jsx)(n.p,{children:"The lifecycle begins with the Data Scientist or engineer."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Model Ingestion: Users onboard models\u2014whether open-source (Hugging Face, NeMo) or internally fine-tuned\u2014via the Truffle Box SDK/UI."}),"\n",(0,r.jsx)(n.li,{children:'LLM + Prompt Registry: Unlike traditional systems that only track model weights, our registry is a unified control plane. It stores both the Model Artifacts and the Prompt Templates. This allows Data Scientists to register and version-control prompts (e.g., "customer_support_v2") independently of the application code.'}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:'The "Black Box" Build Engine'}),"\n",(0,r.jsx)(n.p,{children:"Once a model is registered, the Automated LLM Compiler + Quantizer Module kicks off a background job on ephemeral GPU resources."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Transformation: The raw model is converted into a TRT-LLM Checkpoint."}),"\n",(0,r.jsx)(n.li,{children:"Quantization: The system automatically applies quantization algorithms (like INT4 AWQ or FP8) to reduce memory footprint."}),"\n",(0,r.jsx)(n.li,{children:"Engine Building: Finally, it compiles a highly optimized TRT Engine specifically tuned for the target hardware."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Intelligent Profiling & Validation"}),"\n",(0,r.jsx)(n.p,{children:"Before deployment, the new engine passes through the Hardware & Inference Runtime Profiler."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Benchmarking: This module empirically tests the engine against various hardware configurations (L4 vs. A100) and runtimes (TRT-LLM vs. vLLM)."}),"\n",(0,r.jsx)(n.li,{children:"Optimization: It recommends the optimal configuration that meets latency SLAs (Time-To-First-Token) while minimizing cost."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Smart Artifact Generation & Distribution"}),"\n",(0,r.jsx)(n.p,{children:'To solve the Kubernetes "Cold Start" problem, the LLM Serving Artifacts Generation module packages the model using a bifurcated strategy:'}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Standard Models: Artifacts are uploaded to Cloud Storage (GCS) and downloaded by pods at startup."}),"\n",(0,r.jsx)(n.li,{children:"Very Large Models: For massive models (>8GB) where network downloads are too slow, the system pre-caches the model onto Secondary Boot Disks. These disks are attached directly to new GPU nodes during autoscaling, eliminating download wait times."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Image Streaming & Deployment"}),"\n",(0,r.jsx)(n.p,{children:"Simultaneously, the inference runtime container images are pulled from the Artifact Registry."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Image Streaming: We utilize container image streaming to allow pods to start initializing while the massive Triton/Dynamo container layers are still downloading, further shaving seconds off the startup time. link"}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The Inference Runtime (Kubernetes)"}),"\n",(0,r.jsx)(n.p,{children:"The workload lands on Kubernetes with Autoscaling."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Dynamic Backends: Depending on the profile generated in Stage 3, the pod initializes either TensorRT-LLM (for throughput) or vLLM (for flexibility), or spins up a Dynamo worker for distributed inference."}),"\n",(0,r.jsx)(n.li,{children:'Data Loading: The pod either downloads the model from Cloud Storage or mounts the pre-warmed Secondary Boot Disk ("Pull from Disk").'}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Client Interaction & Observability"}),"\n",(0,r.jsx)(n.p,{children:"Finally, the LLM Inference Client executes the request."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Prompt Injection: The client pulls the specific prompt template ID from the Registry, ensuring the exact versioned instructions are used."}),"\n",(0,r.jsx)(n.li,{children:"Streaming Response: The request is sent via gRPC, and tokens are streamed back to the user in real-time."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Observability: Monitoring the Pulse of GenAI"}),"\n",(0,r.jsx)(n.p,{children:"In traditional microservices, success is measured by CPU utilization and request latency (p99). For Large Language Models, these metrics are insufficient. A user doesn't care if the GPU is at 80% utilization; they care about how fast the first word appears and how smoothly the rest of the sentence follows."}),"\n",(0,r.jsx)(n.p,{children:"To capture the true user experience, our platform instrumentation focuses on three critical LLM-specific metrics:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Time to First Token (TTFT)"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Definition: TTFT measures the time elapsed from the moment a request is received until the very first token is generated and streamed back to the user."}),"\n",(0,r.jsx)(n.li,{children:'Why it matters: This represents the "Prefill Phase" latency\u2014the time the model takes to process the input prompt and load weights. A high TTFT makes the application feel unresponsive or "hung."'}),"\n",(0,r.jsx)(n.li,{children:"Optimization: We closely monitor TTFT to ensure our Prefix Caching is effective (aiming for high cache hitrates), which drastically lowers this metric by skipping redundant prompt processing."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Inter-Token Latency (ITL)"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:'Definition: ITL measures the average time interval between the generation of consecutive tokens during the "Decode Phase".'}),"\n",(0,r.jsx)(n.li,{children:'Why it matters: This defines the "perceived speed" of reading. Even if the first token is fast (low TTFT), high ITL makes the text generation look "jerky" or slow to the user.'}),"\n",(0,r.jsx)(n.li,{children:"Benchmarks: In our testing with Llama 3.1, we track p99 ITL to ensure it stays below human reading speeds to maintain a natural conversational flow."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Token Throughput vs. Request Throughput"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"We distinguish between two types of throughput to balance system efficiency with user load:"}),"\n",(0,r.jsx)(n.li,{children:"Token Throughput (tokens/sec): The total number of tokens generated across all concurrent requests. This measures the raw compute efficiency of the GPU and the effectiveness of batching."}),"\n",(0,r.jsx)(n.li,{children:"Request Throughput (req/sec): The number of distinct user queries served per second. We use this to determine autoscaling thresholds, ensuring we scale out before the queue depth impacts ITL."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The Monitoring Stack"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:'Real-time Dashboards: We utilize Grafana to visualize these streaming metrics in real-time, allowing on-call engineers to spot "slow generation" incidents that generic "500 error" alerts would miss.'}),"\n",(0,r.jsx)(n.li,{children:'Request Tracing: Since Triton Inference Server does not log request payloads by default, we integrate a Helix Client to asynchronously publish request logs to Log Tables. This allows us to trace a specific "slow" request back to its prompt to understand if a complex input caused the latency spike.'}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"supported-inference-backends-tensorrt-llm--dynamo--vllm",children:"Supported Inference backends (TensorRT LLM, Dynamo & vLLM)"}),"\n",(0,r.jsx)(n.p,{children:'Tailored for the Use Case: We do not believe in a "one-size-fits-all" approach to inference. Different use cases\u2014whether a real-time voice bot requiring ultra-lowsub-second latency or a massive reasoning task requiring huge context windows\u2014demand different runtime characteristics. Our platform is designed to be runtime-agnostic, allowing us to automatically select and tailor the best engine based on the specific requirements of the application:'}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"TensorRT-LLM: The High-Performance Standard"}),"\n",(0,r.jsx)(n.p,{children:"Suitable for: High-throughput production workloads where latency is critical (e.g., customer support chat, real-time voice bots)."}),"\n",(0,r.jsx)(n.p,{children:"TensorRT-LLM serves as our default backend for these scenarios. Our internal benchmarks on Llama 3.1 and 3.2 models demonstrated that a tuned TensorRT-LLM engine significantly outperforms standard runtimes, especially when utilizing INT4 AWQ and FP8 quantization ."}),"\n",(0,r.jsx)(n.p,{children:"Key optimizations we tailor for these high-load cases include:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Optimized execution via TensorRT engine compilation"}),"\n",(0,r.jsx)(n.li,{children:"Quantization-aware execution for reduced memory usage and improved throughput"}),"\n",(0,r.jsx)(n.li,{children:"Inflight Batching: Allowing requests to be processed continuously without waiting for the entire batch to finish, drastically improving GPU utilization ."}),"\n",(0,r.jsx)(n.li,{children:"Custom Plugins: Enabling specific NVIDIA plugins like the GEMM plugin and GPT Attention plugin to accelerate matrix multiplications and attention mechanisms ."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Dynamo: Distributed Inference for Reasoning Models"}),"\n",(0,r.jsx)(n.p,{children:'Suitable for: Very large "reasoning" models (70B+) or scenarios requiring massive context windows where a single GPU\'s memory is insufficient.'}),"\n",(0,r.jsx)(n.p,{children:"For these memory-bound tasks, we utilize Dynamo, a low-latency distributed inference framework . Unlike monolithic servers, Dynamo disaggregates the inference process to scale resources horizontally:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"KV Aware Routing: A specialized router directs requests to workers that already hold the relevant Key-Value (KV) cache, minimizing redundant computation ."}),"\n",(0,r.jsx)(n.li,{children:'Prefill vs. Decode Split: The workload is divided into Prefill Workers (processing the prompt) and Decode Workers (generating tokens), allowing us to scale the compute-heavy "reading" phase independently from the memory-heavy "writing" phase .'}),"\n",(0,r.jsx)(n.li,{children:"Distributed execution across multiple GPU resources"}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"vLLM: The Flexible Baseline"}),"\n",(0,r.jsx)(n.p,{children:"Suitable for: Rapid prototyping, testing new model architectures, or low-traffic internal tools where ease of deployment outweighs raw throughput."}),"\n",(0,r.jsx)(n.p,{children:"While TensorRT-LLM is optimized for maximum speed, vLLM provides a robust and flexible baseline ."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"High throughput through dynamic batching and efficient memory utilization"}),"\n",(0,r.jsx)(n.li,{children:"Paged KV cache management for handling long contexts and concurrent requests"}),"\n",(0,r.jsx)(n.li,{children:"Strong support for open-source model ecosystems"}),"\n",(0,r.jsx)(n.li,{children:"Rapid Adoption: It allows us to onboard new model architectures immediately without waiting for a custom TensorRT build."}),"\n",(0,r.jsx)(n.li,{children:"Benchmarking Insight: In our internal tests, vLLM provided a strong baseline but often lacked the specific max-token optimizations present in our custom TRT engines . We use it strategically for initial testing before committing to a full TensorRT optimization pipeline."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,r.jsx)(n.p,{children:"Large language model inference introduces a fundamentally new class of infrastructure challenges\u2014where performance is governed not just by raw compute, but by memory efficiency, intelligent scheduling, runtime specialization, and lifecycle automation. Unlike traditional ML serving, LLM inference requires systems that understand token-level execution, manage rapidly growing context state, and continuously balance latency, throughput, and cost under highly dynamic workloads."}),"\n",(0,r.jsx)(n.p,{children:"The LLM Inference Framework addresses these challenges by transforming inference into a fully automated, reproducible lifecycle\u2014from model onboarding and compilation to deployment, optimization, and observability. By integrating automated quantization and engine compilation, intelligent runtime selection, cold-start mitigation strategies, and LLM-specific observability metrics such as Time-to-First-Token and Inter-Token Latency, the platform ensures both high performance and operational simplicity."}),"\n",(0,r.jsx)(n.p,{children:"Equally important, the framework is designed with flexibility and future evolution in mind. Its runtime-agnostic architecture enables seamless adoption of emerging inference engines, hardware accelerators, and optimization techniques without requiring platform redesign. This ensures that teams can continuously leverage advancements in the rapidly evolving LLM ecosystem while maintaining consistent operational workflows."}),"\n",(0,r.jsx)(n.p,{children:"Ultimately, the goal of the platform is to make production-scale LLM deployment as seamless and reliable as traditional software deployment\u2014allowing teams to focus on building intelligent applications rather than managing infrastructure complexity. By combining lifecycle automation, runtime optimization, and deep observability, the LLM Inference Framework provides a scalable foundation for delivering fast, cost-efficient, and production-ready LLM experiences."}),"\n",(0,r.jsx)(n.h2,{id:"future-explorations",children:"Future Explorations"}),"\n",(0,r.jsx)(n.p,{children:"While we have achieved significant milestones in latency and throughput, the landscape of GenAI is evolving rapidly. Our roadmap focuses on increasing flexibility, reducing costs, and enhancing reliability for enterprise-grade workloads. Here is what we are building next:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"TPU Support: To diversify our hardware supply chain and further optimize cost-per-token, we are evaluating Google Cloud TPUs to bake it into our platform. By leveraging the JAX and PyTorch/XLA ecosystems, we aim to unlock the massive throughput potential of TPU v5e chips, particularly for our open-source Llama models. This will allow the hardware profiler to dynamically choose between NVIDIA GPUs and Google TPUs based on real-time availability and price-performance metrics."}),"\n",(0,r.jsx)(n.li,{children:'Multi-LoRA Serving (Serverless Experience): Currently, deploying a fine-tuned model requires a dedicated GPU. We are building support for Multi-LoRA serving, which will allow us to serve hundreds of unique, fine-tuned adapters on top of a single frozen base model. This will drastically reduce costs for multi-tenant applications, enabling a "serverless" experience where specific fine-tunes are hot-swapped instantly per request.'}),"\n",(0,r.jsx)(n.li,{children:"Spot Instance Orchestration: To further optimize cloud costs, we are developing fault-tolerant mechanisms to run inference workloads on Spot Instances. By implementing aggressive checkpointing and seamless request draining, we aim to leverage cheaper, preemptible compute capacity without interrupting the user's streaming experience."}),"\n",(0,r.jsx)(n.li,{children:'Semantic Caching Layer: We plan to move beyond standard Prefix Caching to implement Semantic Caching. By using a vector database to fetch responses for semantically similar queries (e.g., "How do I reset my password?" vs. "Password reset steps"), we can bypass the GPU entirely for repetitive queries, reducing latency to near-zero.'}),"\n",(0,r.jsx)(n.li,{children:"Context-Aware Autoscaling: Standard CPU/GPU utilization metrics are often insufficient signals for scaling LLMs. We are working on KV-cache pressure metrics for autoscaling. This ensures that we scale out before the memory fills up, preventing eviction-based slowdowns during traffic spikes."}),"\n",(0,r.jsx)(n.li,{children:'Online Evaluation & Guardrails: We are integrating a lightweight "Trust Layer" into the proxy. This will allow for low-latency input/output filtering (Guardrails) and asynchronous "LLM-as-a-Judge" evaluation pipelines to monitor response quality in production, not just system health.'}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},7996:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var t=i(6540);const r={},s=t.createContext(r);function a(e){const n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/7fa80e1c.78f6a21e.js b/docs/assets/js/7fa80e1c.78f6a21e.js new file mode 100644 index 00000000..07f71d30 --- /dev/null +++ b/docs/assets/js/7fa80e1c.78f6a21e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3322],{9189:a=>{a.exports=JSON.parse('{"tags":[{"label":"llm","permalink":"/BharatMLStack/blog/tags/llm","count":2},{"label":"vllm","permalink":"/BharatMLStack/blog/tags/vllm","count":2},{"label":"tensorrt-llm","permalink":"/BharatMLStack/blog/tags/tensorrt-llm","count":2},{"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform","count":5},{"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho","count":5},{"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack","count":4},{"label":"model-inference","permalink":"/BharatMLStack/blog/tags/model-inference","count":1},{"label":"embedding-search","permalink":"/BharatMLStack/blog/tags/embedding-search","count":1},{"label":"inferflow","permalink":"/BharatMLStack/blog/tags/inferflow","count":1},{"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store","count":2},{"label":"online-feature-store","permalink":"/BharatMLStack/blog/tags/online-feature-store","count":1}]}')}}]); \ No newline at end of file diff --git a/docs/assets/js/7fa80e1c.b5f726bf.js b/docs/assets/js/7fa80e1c.b5f726bf.js deleted file mode 100644 index 2761db28..00000000 --- a/docs/assets/js/7fa80e1c.b5f726bf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3322],{9189:a=>{a.exports=JSON.parse('{"tags":[{"label":"online-feature-store","permalink":"/BharatMLStack/blog/tags/online-feature-store","count":1},{"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store","count":1},{"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform","count":1},{"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho","count":1}]}')}}]); \ No newline at end of file diff --git a/docs/assets/js/814f3328.b45803b6.js b/docs/assets/js/814f3328.b45803b6.js deleted file mode 100644 index ad85a959..00000000 --- a/docs/assets/js/814f3328.b45803b6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7472],{5513:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","permalink":"/BharatMLStack/blog/post-one","unlisted":false,"date":"2022-11-15T00:00:00.000Z"}]}')}}]); \ No newline at end of file diff --git a/docs/assets/js/814f3328.bfb123e8.js b/docs/assets/js/814f3328.bfb123e8.js new file mode 100644 index 00000000..f1e59d9a --- /dev/null +++ b/docs/assets/js/814f3328.bfb123e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7472],{5513:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","permalink":"/BharatMLStack/blog/post-five","unlisted":false,"date":"2025-06-02T00:00:00.000Z"},{"title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","permalink":"/BharatMLStack/blog/post-three","unlisted":false,"date":"2025-03-29T00:00:00.000Z"},{"title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","permalink":"/BharatMLStack/blog/post-three","unlisted":false,"date":"2024-05-21T00:00:00.000Z"},{"title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","permalink":"/BharatMLStack/blog/post-two","unlisted":false,"date":"2023-04-10T00:00:00.000Z"},{"title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","permalink":"/BharatMLStack/blog/post-one","unlisted":false,"date":"2022-11-15T00:00:00.000Z"}]}')}}]); \ No newline at end of file diff --git a/docs/assets/js/8dd2df60.f10b075c.js b/docs/assets/js/8dd2df60.f10b075c.js new file mode 100644 index 00000000..98a10338 --- /dev/null +++ b/docs/assets/js/8dd2df60.f10b075c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1537],{3359:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Inferflow","description":"Inferflow is a graph-driven feature retrieval and model inference orchestration engine. It dynamically resolves entity relationships via configurable DAGs, retrieves features from the Online Feature Store, and orchestrates model scoring \u2014 all without custom code.","slug":"/category/inferflow","permalink":"/BharatMLStack/category/inferflow","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Release Notes","permalink":"/BharatMLStack/online-feature-store/v1.0.0/release-notes"},"next":{"title":"v1.0.0","permalink":"/BharatMLStack/inferflow/v1.0.0"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/8ea48c46.e52cd527.js b/docs/assets/js/8ea48c46.e52cd527.js new file mode 100644 index 00000000..00e31ec3 --- /dev/null +++ b/docs/assets/js/8ea48c46.e52cd527.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9824],{7956:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"numerix/v1.0.0/release-notes","title":"Release Notes","description":"Version 1.0.0 \ud83d\ude80","source":"@site/docs/numerix/v1.0.0/release-notes.md","sourceDirName":"numerix/v1.0.0","slug":"/numerix/v1.0.0/release-notes","permalink":"/BharatMLStack/numerix/v1.0.0/release-notes","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/numerix/v1.0.0/release-notes.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"title":"Release Notes","sidebar_position":5},"sidebar":"tutorialSidebar","previous":{"title":"Key Functionalities","permalink":"/BharatMLStack/numerix/v1.0.0/functionalities"}}');var r=i(4848),t=i(8453);const o={title:"Release Notes",sidebar_position:5},l="Numerix - Release Notes",a={},c=[{value:"Version 1.0.0 \ud83d\ude80",id:"version-100-",level:2},{value:"\ud83c\udfaf What's New",id:"-whats-new",level:2},{value:"Core Engine",id:"core-engine",level:3},{value:"API Surface",id:"api-surface",level:3},{value:"Observability",id:"observability",level:3},{value:"\ud83d\ude80 Performance & Optimization",id:"-performance--optimization",level:2},{value:"\ud83d\udee0\ufe0f APIs",id:"\ufe0f-apis",level:2},{value:"gRPC",id:"grpc",level:3},{value:"\ud83c\udfd7\ufe0f Deployment & Configuration",id:"\ufe0f-deployment--configuration",level:2},{value:"Environment",id:"environment",level:3},{value:"Containers",id:"containers",level:3},{value:"\ud83d\udd04 Compatibility",id:"-compatibility",level:2},{value:"\ud83d\udc1b Known Issues",id:"-known-issues",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"numerix---release-notes",children:"Numerix - Release Notes"})}),"\n",(0,r.jsx)(n.h2,{id:"version-100-",children:"Version 1.0.0 \ud83d\ude80"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Release Date"}),": September 2025",(0,r.jsx)(n.br,{}),"\n",(0,r.jsx)(n.strong,{children:"Status"}),": General Availability (GA)"]}),"\n",(0,r.jsxs)(n.p,{children:["The first stable release of ",(0,r.jsx)(n.strong,{children:"Numerix"})," \u2014 a Rust-based compute service for evaluating mathematical expressions over feature matrices with very low latency. Numerix executes postfix expressions from an etcd-backed registry using a stack-based evaluator and compiler-assisted SIMD."]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"-whats-new",children:"\ud83c\udfaf What's New"}),"\n",(0,r.jsx)(n.h3,{id:"core-engine",children:"Core Engine"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Postfix Expression Execution"}),": ",(0,r.jsx)(n.code,{children:"compute_id \u2192 postfix"})," mapping in etcd; parser-free request path."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Stack-Based Evaluator"}),": Linear-time execution over aligned vectors for predictable latency."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Compiler-Assisted SIMD"}),": Relies on LLVM autovectorization (NEON/SVE on ARM; SSE/AVX on x86); no handwritten intrinsics."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Typed Evaluation"}),": Internal conversion to ",(0,r.jsx)(n.code,{children:"fp32"}),"/",(0,r.jsx)(n.code,{children:"fp64"})," for consistent performance/precision."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"api-surface",children:"API Surface"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"gRPC"}),": Single RPC \u2014 ",(0,r.jsx)(n.code,{children:"numerix.Numerix/Compute"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Input Formats"}),": Strings for ease, bytes for performance; both map to vectorized math internally."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"observability",children:"Observability"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Datadog/DogStatsD"})," metrics: Latency (P50/P95/P99), RPS, error rate."]}),"\n",(0,r.jsxs)(n.li,{children:["Minimal HTTP diagnostics: ",(0,r.jsx)(n.code,{children:"/health"})," (and optional ",(0,r.jsx)(n.code,{children:"/metrics"}),")."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"-performance--optimization",children:"\ud83d\ude80 Performance & Optimization"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Autovectorized Loops"}),": Tight loops over contiguous memory enable the compiler to emit SIMD instructions automatically."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"ARM Focus Option"}),": Excellent results with AArch64; builds can enable NEON/SVE/SVE2:"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'RUSTFLAGS="-C target-feature=+neon,+sve,+sve2" \\\ncargo build --release --target aarch64-unknown-linux-gnu\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Deterministic Runtime"}),": No dynamic parsing in hot path; O(n) across tokens with vectorized inner ops."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"\ufe0f-apis",children:"\ud83d\udee0\ufe0f APIs"}),"\n",(0,r.jsx)(n.h3,{id:"grpc",children:"gRPC"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-protobuf",children:"service Numerix {\n rpc Compute(NumerixRequestProto) returns (NumerixResponseProto);\n}\n"})}),"\n",(0,r.jsx)(n.p,{children:"Example call:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'grpcurl -plaintext \\\n -import-path ./numerix/src/protos/proto \\\n -proto numerix.proto \\\n -d \'{\n "entityScoreData": {\n "schema": ["feature1", "feature2"],\n "entityScores": [ { "stringData": { "values": ["1.0", "2.0"] } } ],\n "computeId": "1001",\n "dataType": "fp32"\n }\n }\' \\\n localhost:8080 numerix.Numerix/Compute\n'})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"\ufe0f-deployment--configuration",children:"\ud83c\udfd7\ufe0f Deployment & Configuration"}),"\n",(0,r.jsx)(n.h3,{id:"environment",children:"Environment"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"APPLICATION_PORT=8083\nAPP_ENV=prd\nAPP_LOG_LEVEL=ERROR\nAPP_NAME=numerix\n\n# Performance\nCHANNEL_BUFFER_SIZE=10000\n\n# etcd\nETCD_SERVERS=127.0.0.1:2379\n\n# Metrics\nMETRIC_SAMPLING_RATE=1\nTELEGRAF_UDP_HOST=127.0.0.1\nTELEGRAF_UDP_PORT=8125\n"})}),"\n",(0,r.jsx)(n.h3,{id:"containers",children:"Containers"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Multi-arch images: ",(0,r.jsx)(n.code,{children:"linux/amd64"}),", ",(0,r.jsx)(n.code,{children:"linux/arm64"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Build targets example: ",(0,r.jsx)(n.code,{children:"x86_64-unknown-linux-gnu"}),", ",(0,r.jsx)(n.code,{children:"aarch64-unknown-linux-gnu"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"-compatibility",children:"\ud83d\udd04 Compatibility"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Clients"}),": Any language with gRPC + generated stubs."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Architectures"}),": amd64 and arm64; ARM builds can enable NEON/SVE/SVE2."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"-known-issues",children:"\ud83d\udc1b Known Issues"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Introduce a configurable log sampling rate to reduce pod memory usage during computation errors."}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,r.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,r.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\ud83d\udcac ",(0,r.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,r.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,r.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,r.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,r.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,r.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>l});var s=i(6540);const r={},t=s.createContext(r);function o(e){const n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/93f344c7.7cebeb9e.js b/docs/assets/js/93f344c7.7cebeb9e.js new file mode 100644 index 00000000..2a74fffc --- /dev/null +++ b/docs/assets/js/93f344c7.7cebeb9e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4416],{5232:a=>{a.exports=JSON.parse('{"tag":{"label":"inferflow","permalink":"/BharatMLStack/blog/tags/inferflow","allTagsPath":"/BharatMLStack/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/inferflow","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/99009a21.1a57fa22.js b/docs/assets/js/99009a21.1a57fa22.js new file mode 100644 index 00000000..168befca --- /dev/null +++ b/docs/assets/js/99009a21.1a57fa22.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4064],{1161:t=>{t.exports=JSON.parse('{"tag":{"label":"tensorrt-llm","permalink":"/BharatMLStack/blog/tags/tensorrt-llm","allTagsPath":"/BharatMLStack/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/tensorrt-llm","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/9aed321e.0ede45c0.js b/docs/assets/js/9aed321e.0ede45c0.js new file mode 100644 index 00000000..292183d0 --- /dev/null +++ b/docs/assets/js/9aed321e.0ede45c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2951],{8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>o});var i=r(6540);const s={},t=i.createContext(s);function l(e){const n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(t.Provider,{value:n},e.children)}},9059:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"inferflow/v1.0.0/release-notes","title":"Release Notes","description":"Version 1.0.0","source":"@site/docs/inferflow/v1.0.0/release-notes.md","sourceDirName":"inferflow/v1.0.0","slug":"/inferflow/v1.0.0/release-notes","permalink":"/BharatMLStack/inferflow/v1.0.0/release-notes","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/inferflow/v1.0.0/release-notes.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"Release Notes","sidebar_position":4},"sidebar":"tutorialSidebar","previous":{"title":"Configuration Guide","permalink":"/BharatMLStack/inferflow/v1.0.0/configuration"},"next":{"title":"Quick Start","permalink":"/BharatMLStack/category/quick-start"}}');var s=r(4848),t=r(8453);const l={title:"Release Notes",sidebar_position:4},o="Inferflow - Release Notes",d={},c=[{value:"Version 1.0.0",id:"version-100",level:2},{value:"What's New",id:"whats-new",level:2},{value:"Config-Driven DAG Executor",id:"config-driven-dag-executor",level:3},{value:"Multi-Pattern Inference APIs",id:"multi-pattern-inference-apis",level:3},{value:"Component System",id:"component-system",level:3},{value:"Online Feature Store Integration",id:"online-feature-store-integration",level:3},{value:"In-Memory Feature Caching",id:"in-memory-feature-caching",level:3},{value:"Inference Logging",id:"inference-logging",level:3},{value:"Performance",id:"performance",level:2},{value:"Built in Go",id:"built-in-go",level:3},{value:"Concurrency",id:"concurrency",level:3},{value:"Serialization",id:"serialization",level:3},{value:"APIs & Protocols",id:"apis--protocols",level:2},{value:"gRPC API",id:"grpc-api",level:3},{value:"Data Types Supported",id:"data-types-supported",level:3},{value:"Enterprise Features",id:"enterprise-features",level:2},{value:"Production Readiness",id:"production-readiness",level:3},{value:"Monitoring & Observability",id:"monitoring--observability",level:3},{value:"Configuration Management",id:"configuration-management",level:3},{value:"Deployment",id:"deployment",level:2},{value:"Container Support",id:"container-support",level:3},{value:"Supported Environments",id:"supported-environments",level:3},{value:"Compatibility",id:"compatibility",level:2},{value:"Supported Go Versions",id:"supported-go-versions",level:3},{value:"External Dependencies",id:"external-dependencies",level:3},{value:"Download & Installation",id:"download--installation",level:2},{value:"Source Code",id:"source-code",level:3},{value:"Build",id:"build",level:3},{value:"Docker",id:"docker",level:3},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"inferflow---release-notes",children:"Inferflow - Release Notes"})}),"\n",(0,s.jsx)(n.h2,{id:"version-100",children:"Version 1.0.0"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Release Date"}),": June 2025\n",(0,s.jsx)(n.strong,{children:"Status"}),": General Availability (GA)"]}),"\n",(0,s.jsxs)(n.p,{children:["We're excited to announce the first stable release of ",(0,s.jsx)(n.strong,{children:"Inferflow"})," \u2014 a graph-driven feature retrieval and model inference orchestration engine, part of BharatMLStack."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"whats-new",children:"What's New"}),"\n",(0,s.jsx)(n.h3,{id:"config-driven-dag-executor",children:"Config-Driven DAG Executor"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"No-code feature retrieval"}),": Onboard new models with config changes only \u2014 no custom code required"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"DAG topology execution"}),": Define component dependency graphs that are executed concurrently using Kahn's algorithm"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Hot reload"}),": Model configurations stored in etcd are watched and reloaded live \u2014 no redeployment needed"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"DAG caching"}),": Topologies are cached using Murmur3 hashing with Ristretto for minimal overhead"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"multi-pattern-inference-apis",children:"Multi-Pattern Inference APIs"}),"\n",(0,s.jsx)(n.p,{children:"Three structured inference patterns via the Predict API:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"API"}),(0,s.jsx)(n.th,{children:"Pattern"}),(0,s.jsx)(n.th,{children:"Use Case"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"InferPointWise"})}),(0,s.jsx)(n.td,{children:"Score each target independently"}),(0,s.jsx)(n.td,{children:"CTR prediction, fraud scoring"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"InferPairWise"})}),(0,s.jsx)(n.td,{children:"Score pairs of targets"}),(0,s.jsx)(n.td,{children:"Preference learning, comparison ranking"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"InferSlateWise"})}),(0,s.jsx)(n.td,{children:"Score groups of targets together"}),(0,s.jsx)(n.td,{children:"Whole-page optimization, diversity-aware ranking"})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["Plus the entity-based ",(0,s.jsx)(n.code,{children:"RetrieveModelScore"})," API for direct feature retrieval and scoring."]}),"\n",(0,s.jsx)(n.h3,{id:"component-system",children:"Component System"}),"\n",(0,s.jsx)(n.p,{children:"Four built-in component types:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"FeatureInitComponent"})," \u2014 Initializes the shared ComponentMatrix"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"FeatureComponent"})," \u2014 Fetches features from the Online Feature Store (OnFS)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"PredatorComponent"})," \u2014 Calls model serving endpoints with percentage-based traffic routing"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"NumerixComponent"})," \u2014 Calls compute engine for operations like reranking"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"online-feature-store-integration",children:"Online Feature Store Integration"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["gRPC-based feature retrieval via ",(0,s.jsx)(n.code,{children:"FeatureService.RetrieveFeatures"})]}),"\n",(0,s.jsx)(n.li,{children:"Batched retrieval with configurable batch size and deadline"}),"\n",(0,s.jsx)(n.li,{children:"Token-based authentication"}),"\n",(0,s.jsx)(n.li,{children:"Dynamic key resolution from the ComponentMatrix"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"in-memory-feature-caching",children:"In-Memory Feature Caching"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Optional per-component caching to reduce OnFS load"}),"\n",(0,s.jsx)(n.li,{children:"Configurable TTL per component"}),"\n",(0,s.jsx)(n.li,{children:"Zero-GC-overhead cache option (freecache)"}),"\n",(0,s.jsx)(n.li,{children:"Cache hit/miss metrics"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"inference-logging",children:"Inference Logging"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Async logging to Kafka for model monitoring and debugging"}),"\n",(0,s.jsxs)(n.li,{children:["Three serialization formats: ",(0,s.jsx)(n.strong,{children:"Proto"}),", ",(0,s.jsx)(n.strong,{children:"Arrow"}),", ",(0,s.jsx)(n.strong,{children:"Parquet"})]}),"\n",(0,s.jsx)(n.li,{children:"Configurable sampling rate and feature selection"}),"\n",(0,s.jsx)(n.li,{children:"Batched log message grouping"}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"performance",children:"Performance"}),"\n",(0,s.jsx)(n.h3,{id:"built-in-go",children:"Built in Go"}),"\n",(0,s.jsx)(n.p,{children:"Inferflow is written entirely in Go, delivering:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"~80% lower memory usage compared to equivalent Java services"}),"\n",(0,s.jsx)(n.li,{children:"Lower CPU utilization"}),"\n",(0,s.jsx)(n.li,{children:"Faster, more efficient deployments"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"concurrency",children:"Concurrency"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"DAG components at the same level execute concurrently in goroutines"}),"\n",(0,s.jsx)(n.li,{children:"Feature retrieval parallelized across entity types"}),"\n",(0,s.jsx)(n.li,{children:"Connection pooling for all external gRPC calls"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"serialization",children:"Serialization"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"gRPC with Proto3 for all APIs"}),"\n",(0,s.jsx)(n.li,{children:"Binary feature encoding in the ComponentMatrix"}),"\n",(0,s.jsx)(n.li,{children:"Configurable compression for Kafka logging (ZSTD support)"}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"apis--protocols",children:"APIs & Protocols"}),"\n",(0,s.jsx)(n.h3,{id:"grpc-api",children:"gRPC API"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inferflow Service:"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-protobuf",children:"service Inferflow {\n rpc RetrieveModelScore(InferflowRequestProto) returns (InferflowResponseProto);\n}\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Predict Service:"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-protobuf",children:"service PredictService {\n rpc InferPointWise(PredictRequest) returns (PredictResponse);\n rpc InferPairWise(PredictRequest) returns (PredictResponse);\n rpc InferSlateWise(PredictRequest) returns (PredictResponse);\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"data-types-supported",children:"Data Types Supported"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Variants"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Integers"}),(0,s.jsx)(n.td,{children:"int8, int16, int32, int64"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Floats"}),(0,s.jsx)(n.td,{children:"float8 (e4m3, e5m2), float16, float32, float64"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Strings"}),(0,s.jsx)(n.td,{children:"Variable length"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Booleans"}),(0,s.jsx)(n.td,{children:"Bit-packed"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Vectors"}),(0,s.jsx)(n.td,{children:"All scalar types"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"enterprise-features",children:"Enterprise Features"}),"\n",(0,s.jsx)(n.h3,{id:"production-readiness",children:"Production Readiness"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Health checks"}),": HTTP health endpoints via cmux"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Graceful shutdown"}),": Clean resource cleanup"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Structured logging"}),": JSON-formatted logs via zerolog"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Signal handling"}),": SIGTERM/SIGINT support for container environments"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"monitoring--observability",children:"Monitoring & Observability"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"StatsD / Telegraf integration"}),": Request rates, latencies, error rates"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Per-component metrics"}),": Execution time, feature counts, cache hit rates"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"External API metrics"}),": OnFS, Predator, Numerix call tracking"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Kafka logging metrics"}),": Messages sent, errors"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"configuration-management",children:"Configuration Management"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"etcd-based"}),": All model configs stored in etcd"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Watch & reload"}),": Live config updates without restart"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Multi-model support"}),": Multiple ",(0,s.jsx)(n.code,{children:"model_config_id"})," entries served concurrently"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"deployment",children:"Deployment"}),"\n",(0,s.jsx)(n.h3,{id:"container-support",children:"Container Support"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Docker image"}),": Multi-stage build (Go Alpine builder + Debian runtime)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Optional Kafka"}),": librdkafka support via build flag"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Static binary"}),": Single binary deployment"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"supported-environments",children:"Supported Environments"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Kubernetes (K8s)"}),"\n",(0,s.jsx)(n.li,{children:"Google Kubernetes Engine (GKE)"}),"\n",(0,s.jsx)(n.li,{children:"Amazon EKS"}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"compatibility",children:"Compatibility"}),"\n",(0,s.jsx)(n.h3,{id:"supported-go-versions",children:"Supported Go Versions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Minimum"}),": Go 1.19"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Recommended"}),": Go 1.24+"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"external-dependencies",children:"External Dependencies"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Service"}),(0,s.jsx)(n.th,{children:"Version"}),(0,s.jsx)(n.th,{children:"Protocol"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"etcd"}),(0,s.jsx)(n.td,{children:"3.5+"}),(0,s.jsx)(n.td,{children:"gRPC"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Online Feature Store (OnFS)"}),(0,s.jsx)(n.td,{children:"1.0+"}),(0,s.jsx)(n.td,{children:"gRPC"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Predator (Helix)"}),(0,s.jsx)(n.td,{children:"1.0+"}),(0,s.jsx)(n.td,{children:"gRPC"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Numerix"}),(0,s.jsx)(n.td,{children:"1.0+"}),(0,s.jsx)(n.td,{children:"gRPC"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Kafka"}),(0,s.jsx)(n.td,{children:"2.0+"}),(0,s.jsx)(n.td,{children:"TCP"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"download--installation",children:"Download & Installation"}),"\n",(0,s.jsx)(n.h3,{id:"source-code",children:"Source Code"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/Meesho/BharatMLStack.git\ncd BharatMLStack/inferflow\n"})}),"\n",(0,s.jsx)(n.h3,{id:"build",children:"Build"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"go build -o inferflow-server cmd/inferflow/main.go\n"})}),"\n",(0,s.jsx)(n.h3,{id:"docker",children:"Docker"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"docker build -t inferflow:latest .\n"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,s.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,s.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,s.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,s.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}}}]); \ No newline at end of file diff --git a/docs/assets/js/9d13045e.3f255bd8.js b/docs/assets/js/9d13045e.3f255bd8.js new file mode 100644 index 00000000..c5b9c674 --- /dev/null +++ b/docs/assets/js/9d13045e.3f255bd8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8014],{7791:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>t,default:()=>a,frontMatter:()=>c,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"inferflow/v1.0.0/configuration","title":"Configuration Guide","description":"Inferflow is fully config-driven. All model onboarding, feature retrieval logic, DAG topology, and inference behavior are controlled through configuration stored in etcd \u2014 with zero code changes required.","source":"@site/docs/inferflow/v1.0.0/configuration.md","sourceDirName":"inferflow/v1.0.0","slug":"/inferflow/v1.0.0/configuration","permalink":"/BharatMLStack/inferflow/v1.0.0/configuration","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/inferflow/v1.0.0/configuration.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Configuration Guide","sidebar_position":3},"sidebar":"tutorialSidebar","previous":{"title":"Key Functionalities","permalink":"/BharatMLStack/inferflow/v1.0.0/functionalities"},"next":{"title":"Release Notes","permalink":"/BharatMLStack/inferflow/v1.0.0/release-notes"}}');var s=r(4848),d=r(8453);const c={title:"Configuration Guide",sidebar_position:3},t="Inferflow - Configuration Guide",l={},o=[{value:"Configuration Overview",id:"configuration-overview",level:2},{value:"Static Configuration (Environment Variables)",id:"static-configuration-environment-variables",level:2},{value:"Server",id:"server",level:3},{value:"etcd",id:"etcd",level:3},{value:"Online Feature Store (OnFS)",id:"online-feature-store-onfs",level:3},{value:"Predator (Model Serving)",id:"predator-model-serving",level:3},{value:"Numerix (Compute Engine)",id:"numerix-compute-engine",level:3},{value:"Kafka (Inference Logging)",id:"kafka-inference-logging",level:3},{value:"Metrics (StatsD / Telegraf)",id:"metrics-statsd--telegraf",level:3},{value:"In-Memory Cache",id:"in-memory-cache",level:3},{value:"Dynamic Configuration (etcd Model Config)",id:"dynamic-configuration-etcd-model-config",level:2},{value:"Config Structure",id:"config-structure",level:3},{value:"DAG Execution Config",id:"dag-execution-config",level:3},{value:"Feature Component Config",id:"feature-component-config",level:3},{value:"Predator Component Config",id:"predator-component-config",level:3},{value:"Numerix Component Config",id:"numerix-component-config",level:3},{value:"Response Config",id:"response-config",level:3},{value:"Service-Level Config",id:"service-level-config",level:3},{value:"Example: Onboarding a New Model",id:"example-onboarding-a-new-model",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"inferflow---configuration-guide",children:"Inferflow - Configuration Guide"})}),"\n",(0,s.jsxs)(n.p,{children:["Inferflow is fully config-driven. All model onboarding, feature retrieval logic, DAG topology, and inference behavior are controlled through configuration stored in ",(0,s.jsx)(n.strong,{children:"etcd"})," \u2014 with zero code changes required."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"configuration-overview",children:"Configuration Overview"}),"\n",(0,s.jsx)(n.p,{children:"Inferflow configuration is organized into two layers:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Static config"})," \u2014 Environment variables loaded at startup (via Viper)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dynamic config"})," \u2014 Model configurations stored in etcd, hot-reloaded on change"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"static-configuration-environment-variables",children:"Static Configuration (Environment Variables)"}),"\n",(0,s.jsx)(n.p,{children:"These are set at deployment time and require a restart to change."}),"\n",(0,s.jsx)(n.h3,{id:"server",children:"Server"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"APP_PORT"})}),(0,s.jsx)(n.td,{children:"gRPC/HTTP server port"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"50051"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"APP_ENV"})}),(0,s.jsx)(n.td,{children:"Environment name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"production"})})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"etcd",children:"etcd"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ETCD_ENDPOINTS"})}),(0,s.jsx)(n.td,{children:"Comma-separated etcd endpoints"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"etcd-0:2379,etcd-1:2379"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ETCD_DIAL_TIMEOUT"})}),(0,s.jsx)(n.td,{children:"Connection timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"5s"})})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"online-feature-store-onfs",children:"Online Feature Store (OnFS)"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"externalServiceOnFs_host"})}),(0,s.jsx)(n.td,{children:"OnFS gRPC host"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"onfs-api:50051"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"externalServiceOnFs_callerId"})}),(0,s.jsx)(n.td,{children:"Caller ID for auth"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"inferflow"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"externalServiceOnFs_callerToken"})}),(0,s.jsx)(n.td,{children:"Caller token for auth"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"<token>"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"externalServiceOnFs_batchSize"})}),(0,s.jsx)(n.td,{children:"Batch size for feature retrieval"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"externalServiceOnFs_deadline"})}),(0,s.jsx)(n.td,{children:"Request deadline"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"200ms"})})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"predator-model-serving",children:"Predator (Model Serving)"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Example"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"externalServicePredator_defaultDeadline"})}),(0,s.jsx)(n.td,{children:"Default inference deadline"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100ms"})})]})})]}),"\n",(0,s.jsx)(n.h3,{id:"numerix-compute-engine",children:"Numerix (Compute Engine)"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"numerixClientV1_host"})}),(0,s.jsx)(n.td,{children:"Numerix gRPC host"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"numerix:50052"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"numerixClientV1_deadline"})}),(0,s.jsx)(n.td,{children:"Request deadline"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100ms"})})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"kafka-inference-logging",children:"Kafka (Inference Logging)"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"KafkaBootstrapServers"})}),(0,s.jsx)(n.td,{children:"Kafka broker addresses"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"kafka-0:9092,kafka-1:9092"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"KafkaLoggingTopic"})}),(0,s.jsx)(n.td,{children:"Topic for inference logs"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"inferflow-logs"})})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"metrics-statsd--telegraf",children:"Metrics (StatsD / Telegraf)"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"TELEGRAF_HOST"})}),(0,s.jsx)(n.td,{children:"StatsD host"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"telegraf"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"TELEGRAF_PORT"})}),(0,s.jsx)(n.td,{children:"StatsD port"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"8125"})})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"in-memory-cache",children:"In-Memory Cache"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"CACHE_SIZE_MB"})}),(0,s.jsx)(n.td,{children:"Cache size in MB"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"512"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"CACHE_TYPE"})}),(0,s.jsx)(n.td,{children:"Cache implementation"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"freecache"})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"dynamic-configuration-etcd-model-config",children:"Dynamic Configuration (etcd Model Config)"}),"\n",(0,s.jsxs)(n.p,{children:["Model configurations are stored in etcd and hot-reloaded. Each model is identified by a ",(0,s.jsx)(n.code,{children:"model_config_id"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"config-structure",children:"Config Structure"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "model_config_id_example": {\n "dag_execution_config": {\n "component_dependency": {\n "feature_initializer": ["fs_user", "fs_product"],\n "fs_user": ["ranker_model"],\n "fs_product": ["ranker_model"],\n "ranker_model": []\n }\n },\n "component_config": {\n "feature_component_config": {\n "fs_user": { ... },\n "fs_product": { ... }\n },\n "predator_component_config": {\n "ranker_model": { ... }\n },\n "numerix_component_config": {},\n "cache_enabled": true,\n "cache_version": "v1",\n "cache_ttl": 300,\n "error_logging_percent": 10\n },\n "response_config": {\n "features": ["ranker_model:score"],\n "model_schema_perc": 100,\n "logging_perc": 5,\n "log_features": ["fs_user:profile:age", "ranker_model:score"],\n "log_batch_size": 100\n }\n }\n}\n'})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"dag-execution-config",children:"DAG Execution Config"}),"\n",(0,s.jsx)(n.p,{children:"Defines the component dependency graph."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "component_dependency": {\n "<parent_component>": ["<child_1>", "<child_2>"],\n "<child_1>": ["<grandchild>"],\n "<child_2>": ["<grandchild>"],\n "<grandchild>": []\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Rules:"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The graph must be a valid DAG (no cycles)"}),"\n",(0,s.jsx)(n.li,{children:"Components with no parents (zero in-degree) execute first"}),"\n",(0,s.jsxs)(n.li,{children:["Components with empty dependency arrays ",(0,s.jsx)(n.code,{children:"[]"})," are leaf nodes"]}),"\n",(0,s.jsxs)(n.li,{children:["All component names must match registered components in the ",(0,s.jsx)(n.code,{children:"ComponentConfig"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"feature-component-config",children:"Feature Component Config"}),"\n",(0,s.jsx)(n.p,{children:"Configures how features are fetched from the Online Feature Store."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "fs_user": {\n "fs_keys": {\n "schema": ["user_id"],\n "col": "context:user:user_id"\n },\n "fs_request": {\n "entity_label": "user",\n "feature_groups": [\n {\n "label": "demographics",\n "feature_labels": ["age", "location", "income_bracket"]\n },\n {\n "label": "behavior",\n "feature_labels": ["click_rate", "purchase_freq"]\n }\n ]\n },\n "fs_flatten_resp_keys": ["user_id"],\n "col_name_prefix": "user",\n "comp_cache_enabled": true,\n "comp_cache_ttl": 600,\n "composite_id": false\n }\n}\n'})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Field"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"fs_keys"})}),(0,s.jsxs)(n.td,{children:["How to extract lookup keys from the matrix. ",(0,s.jsx)(n.code,{children:"schema"})," defines key column names; ",(0,s.jsx)(n.code,{children:"col"})," references a matrix column"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"fs_request"})}),(0,s.jsx)(n.td,{children:"OnFS query: entity label + feature groups with specific features"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"fs_flatten_resp_keys"})}),(0,s.jsx)(n.td,{children:"Keys to flatten in response mapping"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"col_name_prefix"})}),(0,s.jsxs)(n.td,{children:["Prefix for matrix column names (e.g., ",(0,s.jsx)(n.code,{children:"user:demographics:age"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"comp_cache_enabled"})}),(0,s.jsx)(n.td,{children:"Enable in-memory caching for this component"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"comp_cache_ttl"})}),(0,s.jsx)(n.td,{children:"Cache TTL in seconds"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"composite_id"})}),(0,s.jsx)(n.td,{children:"Whether entity keys are composite"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"predator-component-config",children:"Predator Component Config"}),"\n",(0,s.jsx)(n.p,{children:"Configures model inference endpoints."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "ranker_model": {\n "model_name": "product_ranker_v3",\n "model_endpoint": "predator-ranker:8080",\n "model_end_points": {\n "predator-ranker-v3:8080": 80,\n "predator-ranker-v4:8080": 20\n },\n "deadline": 100,\n "batch_size": 50,\n "calibration": {\n "enabled": false\n },\n "inputs": {\n "feature_map": {\n "user:demographics:age": "INT32",\n "user:behavior:click_rate": "FP32",\n "product:attributes:category_id": "INT32"\n }\n },\n "outputs": {\n "score_columns": ["score", "confidence"]\n },\n "slate_component": false\n }\n}\n'})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Field"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"model_name"})}),(0,s.jsx)(n.td,{children:"Model identifier on the serving platform"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"model_endpoint"})}),(0,s.jsx)(n.td,{children:"Primary model serving endpoint"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"model_end_points"})}),(0,s.jsx)(n.td,{children:"Multiple endpoints with percentage-based traffic routing"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"deadline"})}),(0,s.jsx)(n.td,{children:"Inference timeout in milliseconds"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"batch_size"})}),(0,s.jsx)(n.td,{children:"Max items per inference batch"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"calibration"})}),(0,s.jsx)(n.td,{children:"Score calibration settings"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"inputs.feature_map"})}),(0,s.jsx)(n.td,{children:"Map of matrix column \u2192 data type for model input"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"outputs.score_columns"})}),(0,s.jsx)(n.td,{children:"Column names for model output scores"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"slate_component"})}),(0,s.jsx)(n.td,{children:"If true, runs per-slate inference"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"numerix-component-config",children:"Numerix Component Config"}),"\n",(0,s.jsx)(n.p,{children:"Configures compute operations (e.g., reranking)."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "reranker": {\n "score_column": "final_score",\n "data_type": "FP32",\n "score_mapping": {\n "ranker_model:score": "FP32",\n "user:behavior:click_rate": "FP32"\n },\n "compute_id": "diversity_rerank_v1",\n "slate_component": false\n }\n}\n'})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Field"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"score_column"})}),(0,s.jsx)(n.td,{children:"Output column name for the computed score"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"data_type"})}),(0,s.jsx)(n.td,{children:"Output data type"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"score_mapping"})}),(0,s.jsx)(n.td,{children:"Map of matrix columns to include as compute inputs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"compute_id"})}),(0,s.jsx)(n.td,{children:"Identifies the compute operation on Numerix"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"slate_component"})}),(0,s.jsx)(n.td,{children:"If true, runs per-slate compute"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"response-config",children:"Response Config"}),"\n",(0,s.jsx)(n.p,{children:"Controls what data is returned to the client and what is logged."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "features": ["ranker_model:score", "reranker:final_score"],\n "model_schema_perc": 100,\n "logging_perc": 5,\n "log_features": [\n "user:demographics:age",\n "ranker_model:score",\n "reranker:final_score"\n ],\n "log_batch_size": 100\n}\n'})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Field"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"features"})}),(0,s.jsx)(n.td,{children:"Matrix columns to include in the gRPC response"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"model_schema_perc"})}),(0,s.jsx)(n.td,{children:"Percentage of requests that include full schema in response"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"logging_perc"})}),(0,s.jsx)(n.td,{children:"Percentage of requests to send to Kafka for logging"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"log_features"})}),(0,s.jsx)(n.td,{children:"Specific features to include in log messages"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"log_batch_size"})}),(0,s.jsx)(n.td,{children:"Batch size for grouped log messages"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"service-level-config",children:"Service-Level Config"}),"\n",(0,s.jsx)(n.p,{children:"Global settings that apply across all models."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "v2_logging_type": "proto",\n "compression_enabled": false\n}\n'})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Field"}),(0,s.jsx)(n.th,{children:"Values"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"v2_logging_type"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"proto"}),", ",(0,s.jsx)(n.code,{children:"arrow"}),", ",(0,s.jsx)(n.code,{children:"parquet"})]}),(0,s.jsx)(n.td,{children:"Serialization format for Kafka inference logs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"compression_enabled"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"true"}),", ",(0,s.jsx)(n.code,{children:"false"})]}),(0,s.jsx)(n.td,{children:"Enable compression for log messages"})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"example-onboarding-a-new-model",children:"Example: Onboarding a New Model"}),"\n",(0,s.jsx)(n.p,{children:"To onboard a new ranking model, update the etcd config:"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Step 1:"})," Define the feature retrieval graph"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'"component_dependency": {\n "feature_initializer": ["fs_user", "fs_product", "fs_user_x_category"],\n "fs_product": ["fs_user_x_category"],\n "fs_user": ["new_ranker"],\n "fs_user_x_category": ["new_ranker"],\n "new_ranker": []\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Here ",(0,s.jsx)(n.code,{children:"fs_user_x_category"})," depends on ",(0,s.jsx)(n.code,{children:"fs_product"})," because it needs the category ID extracted from the product entity to resolve the user x category key."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Step 2:"})," Configure each component (feature groups, model endpoints, etc.)"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Step 3:"})," Push the config to etcd \u2014 Inferflow picks it up automatically via watchers."]}),"\n",(0,s.jsx)(n.p,{children:"No code changes. No redeployment. The new model is live."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,s.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,s.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,s.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,s.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function a(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>t});var i=r(6540);const s={},d=i.createContext(s);function c(e){const n=i.useContext(d);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),i.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/9e4087bc.342bf9bc.js b/docs/assets/js/9e4087bc.342bf9bc.js new file mode 100644 index 00000000..4364a70b --- /dev/null +++ b/docs/assets/js/9e4087bc.342bf9bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2711],{6266:(e,r,a)=>{a.d(r,{i:()=>s});var t=a(4586);function s(e={}){const{i18n:{currentLocale:r}}=(0,t.A)(),a=function(){const{i18n:{currentLocale:e,localeConfigs:r}}=(0,t.A)();return r[e].calendar}();return new Intl.DateTimeFormat(r,{calendar:a,...e})}},9331:(e,r,a)=>{a.r(r),a.d(r,{default:()=>m});a(6540);var t=a(8774),s=a(1312),n=a(5500),i=a(6266),c=a(1656),l=a(1107),o=a(4848);function d({year:e,posts:r}){const a=(0,i.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:e,children:e}),(0,o.jsx)("ul",{children:r.map(e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(t.A,{to:e.metadata.permalink,children:[(r=e.metadata.date,a.format(new Date(r)))," - ",e.metadata.title]})},e.metadata.date);var r})})]})}function h({years:e}){return(0,o.jsx)("section",{className:"margin-vert--lg",children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:e.map((e,r)=>(0,o.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,o.jsx)(d,{...e})},r))})})})}function m({archive:e}){const r=(0,s.T)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),a=(0,s.T)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),t=function(e){const r=e.reduce((e,r)=>{const a=r.metadata.date.split("-")[0],t=e.get(a)??[];return e.set(a,[r,...t])},new Map);return Array.from(r,([e,r])=>({year:e,posts:r}))}(e.blogPosts);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.be,{title:r,description:a}),(0,o.jsxs)(c.A,{children:[(0,o.jsx)("header",{className:"hero hero--primary",children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(l.A,{as:"h1",className:"hero__title",children:r}),(0,o.jsx)("p",{className:"hero__subtitle",children:a})]})}),(0,o.jsx)("main",{children:t.length>0&&(0,o.jsx)(h,{years:t})})]})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/9e4087bc.b154716b.js b/docs/assets/js/9e4087bc.b154716b.js deleted file mode 100644 index 9a388f81..00000000 --- a/docs/assets/js/9e4087bc.b154716b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2711],{6266:(e,r,a)=>{a.d(r,{i:()=>s});var t=a(4586);function s(e={}){const{i18n:{currentLocale:r}}=(0,t.A)(),a=function(){const{i18n:{currentLocale:e,localeConfigs:r}}=(0,t.A)();return r[e].calendar}();return new Intl.DateTimeFormat(r,{calendar:a,...e})}},9331:(e,r,a)=>{a.r(r),a.d(r,{default:()=>m});a(6540);var t=a(8774),s=a(1312),n=a(5500),i=a(6266),c=a(1656),l=a(1107),o=a(4848);function d({year:e,posts:r}){const a=(0,i.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:e,children:e}),(0,o.jsx)("ul",{children:r.map((e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(t.A,{to:e.metadata.permalink,children:[(r=e.metadata.date,a.format(new Date(r)))," - ",e.metadata.title]})},e.metadata.date);var r}))})]})}function h({years:e}){return(0,o.jsx)("section",{className:"margin-vert--lg",children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:e.map(((e,r)=>(0,o.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,o.jsx)(d,{...e})},r)))})})})}function m({archive:e}){const r=(0,s.T)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),a=(0,s.T)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),t=function(e){const r=e.reduce(((e,r)=>{const a=r.metadata.date.split("-")[0],t=e.get(a)??[];return e.set(a,[r,...t])}),new Map);return Array.from(r,(([e,r])=>({year:e,posts:r})))}(e.blogPosts);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.be,{title:r,description:a}),(0,o.jsxs)(c.A,{children:[(0,o.jsx)("header",{className:"hero hero--primary",children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(l.A,{as:"h1",className:"hero__title",children:r}),(0,o.jsx)("p",{className:"hero__subtitle",children:a})]})}),(0,o.jsx)("main",{children:t.length>0&&(0,o.jsx)(h,{years:t})})]})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/a6aa9e1f.a34fe105.js b/docs/assets/js/a6aa9e1f.a34fe105.js deleted file mode 100644 index 05cd3173..00000000 --- a/docs/assets/js/a6aa9e1f.a34fe105.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7643],{2053:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(4164),s=a(1312),r=a(6133);const i={tags:"tags_jXut",tag:"tag_QGVx"};var l=a(4848);function o({tags:e}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(s.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,n.A)(i.tags,"padding--none","margin-left--sm"),children:e.map((e=>(0,l.jsx)("li",{className:i.tag,children:(0,l.jsx)(r.A,{...e})},e.permalink)))})]})}},2907:(e,t,a)=>{a.d(t,{A:()=>U});a(6540);var n=a(4164),s=a(4096),r=a(4848);function i({children:e,className:t}){return(0,r.jsx)("article",{className:t,children:e})}var l=a(8774);const o={title:"title_f1Hy"};function c({className:e}){const{metadata:t,isBlogPostPage:a}=(0,s.e7)(),{permalink:i,title:c}=t,d=a?"h1":"h2";return(0,r.jsx)(d,{className:(0,n.A)(o.title,e),children:a?c:(0,r.jsx)(l.A,{to:i,children:c})})}var d=a(1312),g=a(5846),m=a(6266);const u={container:"container_mt6G"};function h({readingTime:e}){const t=function(){const{selectMessage:e}=(0,g.W)();return t=>{const a=Math.ceil(t);return e(a,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,r.jsx)(r.Fragment,{children:t(e)})}function p({date:e,formattedDate:t}){return(0,r.jsx)("time",{dateTime:e,children:t})}function x(){return(0,r.jsx)(r.Fragment,{children:" \xb7 "})}function j({className:e}){const{metadata:t}=(0,s.e7)(),{date:a,readingTime:i}=t,l=(0,m.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,r.jsxs)("div",{className:(0,n.A)(u.container,"margin-vert--md",e),children:[(0,r.jsx)(p,{date:a,formattedDate:(o=a,l.format(new Date(o)))}),void 0!==i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x,{}),(0,r.jsx)(h,{readingTime:i})]})]});var o}var A=a(6382);const b={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function f({className:e}){const{metadata:{authors:t},assets:a}=(0,s.e7)();if(0===t.length)return null;const i=t.every((({name:e})=>!e)),l=1===t.length;return(0,r.jsx)("div",{className:(0,n.A)("margin-top--md margin-bottom--sm",i?b.imageOnlyAuthorRow:"row",e),children:t.map(((e,t)=>(0,r.jsx)("div",{className:(0,n.A)(!i&&(l?"col col--12":"col col--6"),i?b.imageOnlyAuthorCol:b.authorCol),children:(0,r.jsx)(A.A,{author:{...e,imageURL:a.authorsImageUrls[t]??e.imageURL}})},t)))})}function v(){return(0,r.jsxs)("header",{children:[(0,r.jsx)(c,{}),(0,r.jsx)(j,{}),(0,r.jsx)(f,{})]})}var N=a(440),_=a(3253);function T({children:e,className:t}){const{isBlogPostPage:a}=(0,s.e7)();return(0,r.jsx)("div",{id:a?N.LU:void 0,className:(0,n.A)("markdown",t),children:(0,r.jsx)(_.A,{children:e})})}var k=a(7559),w=a(4336),y=a(2053);function P(){return(0,r.jsx)("b",{children:(0,r.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function R(e){const{blogPostTitle:t,...a}=e;return(0,r.jsx)(l.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,r.jsx)(P,{})})}function C(){const{metadata:e,isBlogPostPage:t}=(0,s.e7)(),{tags:a,title:i,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,g=!t&&o,m=a.length>0;if(!(m||g||l))return null;if(t){const e=!!(l||d||c);return(0,r.jsxs)("footer",{className:"docusaurus-mt-lg",children:[m&&(0,r.jsx)("div",{className:(0,n.A)("row","margin-top--sm",k.G.blog.blogFooterEditMetaRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(y.A,{tags:a})})}),e&&(0,r.jsx)(w.A,{className:(0,n.A)("margin-top--sm",k.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,r.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[m&&(0,r.jsx)("div",{className:(0,n.A)("col",{"col--9":g}),children:(0,r.jsx)(y.A,{tags:a})}),g&&(0,r.jsx)("div",{className:(0,n.A)("col text--right",{"col--3":m}),children:(0,r.jsx)(R,{blogPostTitle:i,to:e.permalink})})]})}function U({children:e,className:t}){const a=function(){const{isBlogPostPage:e}=(0,s.e7)();return e?void 0:"margin-bottom--xl"}();return(0,r.jsxs)(i,{className:(0,n.A)(a,t),children:[(0,r.jsx)(v,{}),(0,r.jsx)(T,{children:e}),(0,r.jsx)(C,{})]})}},3892:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var n=a(4096),s=a(2907),r=a(4848);function i({items:e,component:t=s.A}){return(0,r.jsx)(r.Fragment,{children:e.map((({content:e})=>(0,r.jsx)(n.in,{content:e,children:(0,r.jsx)(t,{children:(0,r.jsx)(e,{})})},e.metadata.permalink)))})}},5124:(e,t,a)=>{a.r(t),a.d(t,{default:()=>j});a(6540);var n=a(4164),s=a(4586),r=a(5500),i=a(7559),l=a(8027),o=a(7713),c=a(1463),d=a(3892),g=a(5260),m=a(4096),u=a(4848);function h(e){const t=(0,m.kJ)(e);return(0,u.jsx)(g.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function p(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,s.A)(),{blogDescription:n,blogTitle:i,permalink:l}=t,o="/"===l?a:i;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r.be,{title:o,description:n}),(0,u.jsx)(c.A,{tag:"blog_posts_list"})]})}function x(e){const{metadata:t,items:a,sidebar:n}=e;return(0,u.jsxs)(l.A,{sidebar:n,children:[(0,u.jsx)(d.A,{items:a}),(0,u.jsx)(o.A,{metadata:t})]})}function j(e){return(0,u.jsxs)(r.e3,{className:(0,n.A)(i.G.wrapper.blogPages,i.G.page.blogListPage),children:[(0,u.jsx)(p,{...e}),(0,u.jsx)(h,{...e}),(0,u.jsx)(x,{...e})]})}},6133:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var n=a(4164),s=a(8774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var i=a(4848);function l({permalink:e,label:t,count:a,description:l}){return(0,i.jsxs)(s.A,{rel:"tag",href:e,title:l,className:(0,n.A)(r.tag,a?r.tagWithCount:r.tagRegular),children:[t,a&&(0,i.jsx)("span",{children:a})]})}},7713:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var n=a(1312),s=a(9022),r=a(4848);function i(e){const{metadata:t}=e,{previousPage:a,nextPage:i}=t;return(0,r.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,r.jsx)(s.A,{permalink:a,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),i&&(0,r.jsx)(s.A,{permalink:i,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},9022:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var n=a(4164),s=a(8774),r=a(4848);function i(e){const{permalink:t,title:a,subLabel:i,isNext:l}=e;return(0,r.jsxs)(s.A,{className:(0,n.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,r.jsx)("div",{className:"pagination-nav__label",children:a})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/a6aa9e1f.e531d6c8.js b/docs/assets/js/a6aa9e1f.e531d6c8.js new file mode 100644 index 00000000..3cc9c0b0 --- /dev/null +++ b/docs/assets/js/a6aa9e1f.e531d6c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7643],{2053:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(4164),s=a(1312),r=a(6133);const i={tags:"tags_jXut",tag:"tag_QGVx"};var l=a(4848);function o({tags:e}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(s.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,n.A)(i.tags,"padding--none","margin-left--sm"),children:e.map(e=>(0,l.jsx)("li",{className:i.tag,children:(0,l.jsx)(r.A,{...e})},e.permalink))})]})}},2907:(e,t,a)=>{a.d(t,{A:()=>U});a(6540);var n=a(4164),s=a(4096),r=a(4848);function i({children:e,className:t}){return(0,r.jsx)("article",{className:t,children:e})}var l=a(8774);const o={title:"title_f1Hy"};function c({className:e}){const{metadata:t,isBlogPostPage:a}=(0,s.e7)(),{permalink:i,title:c}=t,d=a?"h1":"h2";return(0,r.jsx)(d,{className:(0,n.A)(o.title,e),children:a?c:(0,r.jsx)(l.A,{to:i,children:c})})}var d=a(1312),g=a(5846),m=a(6266);const u={container:"container_mt6G"};function h({readingTime:e}){const t=function(){const{selectMessage:e}=(0,g.W)();return t=>{const a=Math.ceil(t);return e(a,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,r.jsx)(r.Fragment,{children:t(e)})}function p({date:e,formattedDate:t}){return(0,r.jsx)("time",{dateTime:e,children:t})}function x(){return(0,r.jsx)(r.Fragment,{children:" \xb7 "})}function j({className:e}){const{metadata:t}=(0,s.e7)(),{date:a,readingTime:i}=t,l=(0,m.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,r.jsxs)("div",{className:(0,n.A)(u.container,"margin-vert--md",e),children:[(0,r.jsx)(p,{date:a,formattedDate:(o=a,l.format(new Date(o)))}),void 0!==i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x,{}),(0,r.jsx)(h,{readingTime:i})]})]});var o}var A=a(6382);const b={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function f({className:e}){const{metadata:{authors:t},assets:a}=(0,s.e7)();if(0===t.length)return null;const i=t.every(({name:e})=>!e),l=1===t.length;return(0,r.jsx)("div",{className:(0,n.A)("margin-top--md margin-bottom--sm",i?b.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>(0,r.jsx)("div",{className:(0,n.A)(!i&&(l?"col col--12":"col col--6"),i?b.imageOnlyAuthorCol:b.authorCol),children:(0,r.jsx)(A.A,{author:{...e,imageURL:a.authorsImageUrls[t]??e.imageURL}})},t))})}function v(){return(0,r.jsxs)("header",{children:[(0,r.jsx)(c,{}),(0,r.jsx)(j,{}),(0,r.jsx)(f,{})]})}var N=a(440),_=a(3253);function T({children:e,className:t}){const{isBlogPostPage:a}=(0,s.e7)();return(0,r.jsx)("div",{id:a?N.LU:void 0,className:(0,n.A)("markdown",t),children:(0,r.jsx)(_.A,{children:e})})}var k=a(7559),w=a(4336),y=a(2053);function P(){return(0,r.jsx)("b",{children:(0,r.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function R(e){const{blogPostTitle:t,...a}=e;return(0,r.jsx)(l.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,r.jsx)(P,{})})}function C(){const{metadata:e,isBlogPostPage:t}=(0,s.e7)(),{tags:a,title:i,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,g=!t&&o,m=a.length>0;if(!(m||g||l))return null;if(t){const e=!!(l||d||c);return(0,r.jsxs)("footer",{className:"docusaurus-mt-lg",children:[m&&(0,r.jsx)("div",{className:(0,n.A)("row","margin-top--sm",k.G.blog.blogFooterEditMetaRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(y.A,{tags:a})})}),e&&(0,r.jsx)(w.A,{className:(0,n.A)("margin-top--sm",k.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,r.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[m&&(0,r.jsx)("div",{className:(0,n.A)("col",{"col--9":g}),children:(0,r.jsx)(y.A,{tags:a})}),g&&(0,r.jsx)("div",{className:(0,n.A)("col text--right",{"col--3":m}),children:(0,r.jsx)(R,{blogPostTitle:i,to:e.permalink})})]})}function U({children:e,className:t}){const a=function(){const{isBlogPostPage:e}=(0,s.e7)();return e?void 0:"margin-bottom--xl"}();return(0,r.jsxs)(i,{className:(0,n.A)(a,t),children:[(0,r.jsx)(v,{}),(0,r.jsx)(T,{children:e}),(0,r.jsx)(C,{})]})}},3892:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var n=a(4096),s=a(2907),r=a(4848);function i({items:e,component:t=s.A}){return(0,r.jsx)(r.Fragment,{children:e.map(({content:e})=>(0,r.jsx)(n.in,{content:e,children:(0,r.jsx)(t,{children:(0,r.jsx)(e,{})})},e.metadata.permalink))})}},5124:(e,t,a)=>{a.r(t),a.d(t,{default:()=>j});a(6540);var n=a(4164),s=a(4586),r=a(5500),i=a(7559),l=a(8027),o=a(7713),c=a(1463),d=a(3892),g=a(5260),m=a(4096),u=a(4848);function h(e){const t=(0,m.kJ)(e);return(0,u.jsx)(g.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function p(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,s.A)(),{blogDescription:n,blogTitle:i,permalink:l}=t,o="/"===l?a:i;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r.be,{title:o,description:n}),(0,u.jsx)(c.A,{tag:"blog_posts_list"})]})}function x(e){const{metadata:t,items:a,sidebar:n}=e;return(0,u.jsxs)(l.A,{sidebar:n,children:[(0,u.jsx)(d.A,{items:a}),(0,u.jsx)(o.A,{metadata:t})]})}function j(e){return(0,u.jsxs)(r.e3,{className:(0,n.A)(i.G.wrapper.blogPages,i.G.page.blogListPage),children:[(0,u.jsx)(p,{...e}),(0,u.jsx)(h,{...e}),(0,u.jsx)(x,{...e})]})}},6133:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var n=a(4164),s=a(8774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var i=a(4848);function l({permalink:e,label:t,count:a,description:l}){return(0,i.jsxs)(s.A,{rel:"tag",href:e,title:l,className:(0,n.A)(r.tag,a?r.tagWithCount:r.tagRegular),children:[t,a&&(0,i.jsx)("span",{children:a})]})}},7713:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var n=a(1312),s=a(9022),r=a(4848);function i(e){const{metadata:t}=e,{previousPage:a,nextPage:i}=t;return(0,r.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,r.jsx)(s.A,{permalink:a,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer entries"})}),i&&(0,r.jsx)(s.A,{permalink:i,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older entries"}),isNext:!0})]})}},9022:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var n=a(4164),s=a(8774),r=a(4848);function i(e){const{permalink:t,title:a,subLabel:i,isNext:l}=e;return(0,r.jsxs)(s.A,{className:(0,n.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,r.jsx)("div",{className:"pagination-nav__label",children:a})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/a94703ab.3a38a667.js b/docs/assets/js/a94703ab.3a38a667.js new file mode 100644 index 00000000..dbe14b8d --- /dev/null +++ b/docs/assets/js/a94703ab.3a38a667.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9048],{1377:(e,t,n)=>{n.r(t),n.d(t,{default:()=>pe});var a=n(6540),o=n(4164),i=n(5500),s=n(7559),r=n(6972),c=n(609),l=n(1312),d=n(3104),u=n(5062);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(4848);function h(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:i,cancelScroll:s}=(0,d.gk)();return(0,d.Mq)(({scrollY:t},a)=>{const i=a?.scrollY;i&&(o.current?o.current=!1:t>=i?(s(),n(!1)):t<e?n(!1):t+window.innerHeight<document.documentElement.scrollHeight&&n(!0))}),(0,u.$)(e=>{e.location.hash&&(o.current=!0,n(!1))}),{shown:t,scrollToTop:()=>i(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,l.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3109),x=n(6347),f=n(4581),j=n(6342),v=n(3465);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const g="collapseSidebarButton_PEFL",A="collapseSidebarButtonIcon_kv0_";function C({onClick:e}){return(0,b.jsx)("button",{type:"button",title:(0,l.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,l.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",g),onClick:e,children:(0,b.jsx)(_,{className:A})})}var k=n(5041),S=n(9532);const T=Symbol("EmptyContext"),N=a.createContext(T);function I({children:e}){const[t,n]=(0,a.useState)(null),o=(0,a.useMemo)(()=>({expandedItem:t,setExpandedItem:n}),[t]);return(0,b.jsx)(N.Provider,{value:o,children:e})}var y=n(1422),B=n(9169),w=n(8774),L=n(2303);function E({collapsed:e,categoryLabel:t,onClick:n}){return(0,b.jsx)("button",{"aria-label":e?(0,l.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:t}):(0,l.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:t}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:n})}function M({item:e,onItemClick:t,activePath:n,level:i,index:c,...l}){const{items:d,label:u,collapsible:m,className:h,href:p}=e,{docs:{sidebar:{autoCollapseCategories:x}}}=(0,j.p)(),f=function(e){const t=(0,L.A)();return(0,a.useMemo)(()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,r.Nr)(e):void 0,[e,t])}(e),v=(0,r.w8)(e,n),_=(0,B.ys)(p,n),{collapsed:g,setCollapsed:A}=(0,y.u)({initialState:()=>!!m&&(!v&&e.collapsed)}),{expandedItem:C,setExpandedItem:k}=function(){const e=(0,a.useContext)(N);if(e===T)throw new S.dV("DocSidebarItemsExpandedStateProvider");return e}(),I=(e=!g)=>{k(e?null:c),A(e)};return function({isActive:e,collapsed:t,updateCollapsed:n}){const o=(0,S.ZC)(e);(0,a.useEffect)(()=>{e&&!o&&t&&n(!1)},[e,o,t,n])}({isActive:v,collapsed:g,updateCollapsed:I}),(0,a.useEffect)(()=>{m&&null!=C&&C!==c&&x&&A(!0)},[m,C,c,A,x]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":g},h),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":_}),children:[(0,b.jsx)(w.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":m,"menu__link--sublist-caret":!p&&m,"menu__link--active":v}),onClick:m?n=>{t?.(e),p?_?(n.preventDefault(),I()):I(!1):(n.preventDefault(),I())}:()=>{t?.(e)},"aria-current":_?"page":void 0,role:m&&!p?"button":void 0,"aria-expanded":m&&!p?!g:void 0,href:m?f??"#":f,...l,children:u}),p&&m&&(0,b.jsx)(E,{collapsed:g,categoryLabel:u,onClick:e=>{e.preventDefault(),I()}})]}),(0,b.jsx)(y.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:d,tabIndex:g?-1:0,onItemClick:t,activePath:n,level:i+1})})]})}var H=n(6654),G=n(3186);const P="menuExternalLink_NmtK";function R({item:e,onItemClick:t,activePath:n,level:a,index:i,...c}){const{href:l,label:d,className:u,autoAddBaseUrl:m}=e,h=(0,r.w8)(e,n),p=(0,H.A)(l);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(a),"menu__list-item",u),children:(0,b.jsxs)(w.A,{className:(0,o.A)("menu__link",!p&&P,{"menu__link--active":h}),autoAddBaseUrl:m,"aria-current":h?"page":void 0,to:l,...p&&{onClick:t?()=>t(e):void 0},...c,children:[d,!p&&(0,b.jsx)(G.A,{})]})},d)}const W="menuHtmlItem_M9Kj";function D({item:e,level:t,index:n}){const{value:a,defaultStyle:i,className:r}=e;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(t),i&&[W,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:a}},n)}function F({item:e,...t}){switch(e.type){case"category":return(0,b.jsx)(M,{item:e,...t});case"html":return(0,b.jsx)(D,{item:e,...t});default:return(0,b.jsx)(R,{item:e,...t})}}function U({items:e,...t}){const n=(0,r.Y)(e,t.activePath);return(0,b.jsx)(I,{children:n.map((e,n)=>(0,b.jsx)(F,{item:e,index:n,...t},n))})}const V=(0,a.memo)(U),Y="menu_SIkG",K="menuWithAnnouncementBar_GW3s";function z({path:e,sidebar:t,className:n}){const i=function(){const{isActive:e}=(0,k.M)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)(({scrollY:t})=>{e&&n(0===t)},[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,l.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",Y,i&&K,n),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:e,level:1})})})}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",J="sidebarHidden_VK0M",Q="sidebarLogo_isFc";function X({path:e,sidebar:t,onCollapse:n,isHidden:a}){const{navbar:{hideOnScroll:i},docs:{sidebar:{hideable:s}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,o.A)(q,i&&O,a&&J),children:[i&&(0,b.jsx)(v.A,{tabIndex:-1,className:Q}),(0,b.jsx)(z,{path:e,sidebar:t}),s&&(0,b.jsx)(C,{onClick:n})]})}const Z=a.memo(X);var $=n(5600),ee=n(9876);const te=({sidebar:e,path:t})=>{const n=(0,ee.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:e,activePath:t,onItemClick:e=>{"category"===e.type&&e.href&&n.toggle(),"link"===e.type&&n.toggle()},level:1})})};function ne(e){return(0,b.jsx)($.GX,{component:te,props:e})}const ae=a.memo(ne);function oe(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(Z,{...e}),a&&(0,b.jsx)(ae,{...e})]})}const ie={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function se({toggleSidebar:e}){return(0,b.jsx)("div",{className:ie.expandButton,title:(0,l.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,l.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:e,onClick:e,children:(0,b.jsx)(_,{className:ie.expandButtonIcon})})}const re={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function ce({children:e}){const t=(0,c.t)();return(0,b.jsx)(a.Fragment,{children:e},t?.name??"noSidebar")}function le({sidebar:e,hiddenSidebarContainer:t,setHiddenSidebarContainer:n}){const{pathname:i}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),l=(0,a.useCallback)(()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),n(e=>!e)},[n,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,re.docSidebarContainer,t&&re.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(re.docSidebarContainer)&&t&&c(!0)},children:(0,b.jsx)(ce,{children:(0,b.jsxs)("div",{className:(0,o.A)(re.sidebarViewport,r&&re.sidebarViewportHidden),children:[(0,b.jsx)(oe,{sidebar:e,path:i,onCollapse:l,isHidden:r}),r&&(0,b.jsx)(se,{toggleSidebar:l})]})})})}const de={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ue({hiddenSidebarContainer:e,children:t}){const n=(0,c.t)();return(0,b.jsx)("main",{className:(0,o.A)(de.docMainContainer,(e||!n)&&de.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",de.docItemWrapper,e&&de.docItemWrapperEnhanced),children:t})})}const me={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function be({children:e}){const t=(0,c.t)(),[n,o]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:me.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:me.docRoot,children:[t&&(0,b.jsx)(le,{sidebar:t.items,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}),(0,b.jsx)(ue,{hiddenSidebarContainer:n,children:e})]})]})}var he=n(3363);function pe(e){const t=(0,r.B5)(e);if(!t)return(0,b.jsx)(he.A,{});const{docElement:n,sidebarName:a,sidebarItems:l}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(c.V,{name:a,items:l,children:(0,b.jsx)(be,{children:n})})})}},3363:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var a=n(4164),o=n(1312),i=n(1107),s=n(4848);function r({className:e}){return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"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/docs/assets/js/a94703ab.50a268a2.js b/docs/assets/js/a94703ab.50a268a2.js deleted file mode 100644 index 331a960f..00000000 --- a/docs/assets/js/a94703ab.50a268a2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9048],{1377:(e,t,n)=>{n.r(t),n.d(t,{default:()=>pe});var a=n(6540),o=n(4164),i=n(5500),s=n(7559),r=n(6972),c=n(609),l=n(1312),d=n(3104),u=n(5062);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(4848);function h(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:i,cancelScroll:s}=(0,d.gk)();return(0,d.Mq)((({scrollY:t},a)=>{const i=a?.scrollY;i&&(o.current?o.current=!1:t>=i?(s(),n(!1)):t<e?n(!1):t+window.innerHeight<document.documentElement.scrollHeight&&n(!0))})),(0,u.$)((e=>{e.location.hash&&(o.current=!0,n(!1))})),{shown:t,scrollToTop:()=>i(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,l.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3109),x=n(6347),f=n(4581),j=n(6342),v=n(3465);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const g="collapseSidebarButton_PEFL",A="collapseSidebarButtonIcon_kv0_";function C({onClick:e}){return(0,b.jsx)("button",{type:"button",title:(0,l.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,l.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",g),onClick:e,children:(0,b.jsx)(_,{className:A})})}var k=n(5041),S=n(9532);const T=Symbol("EmptyContext"),N=a.createContext(T);function I({children:e}){const[t,n]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:t,setExpandedItem:n})),[t]);return(0,b.jsx)(N.Provider,{value:o,children:e})}var y=n(1422),B=n(9169),w=n(8774),L=n(2303);function E({collapsed:e,categoryLabel:t,onClick:n}){return(0,b.jsx)("button",{"aria-label":e?(0,l.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:t}):(0,l.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:t}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:n})}function M({item:e,onItemClick:t,activePath:n,level:i,index:c,...l}){const{items:d,label:u,collapsible:m,className:h,href:p}=e,{docs:{sidebar:{autoCollapseCategories:x}}}=(0,j.p)(),f=function(e){const t=(0,L.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,r.Nr)(e):void 0),[e,t])}(e),v=(0,r.w8)(e,n),_=(0,B.ys)(p,n),{collapsed:g,setCollapsed:A}=(0,y.u)({initialState:()=>!!m&&(!v&&e.collapsed)}),{expandedItem:C,setExpandedItem:k}=function(){const e=(0,a.useContext)(N);if(e===T)throw new S.dV("DocSidebarItemsExpandedStateProvider");return e}(),I=(e=!g)=>{k(e?null:c),A(e)};return function({isActive:e,collapsed:t,updateCollapsed:n}){const o=(0,S.ZC)(e);(0,a.useEffect)((()=>{e&&!o&&t&&n(!1)}),[e,o,t,n])}({isActive:v,collapsed:g,updateCollapsed:I}),(0,a.useEffect)((()=>{m&&null!=C&&C!==c&&x&&A(!0)}),[m,C,c,A,x]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":g},h),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":_}),children:[(0,b.jsx)(w.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":m,"menu__link--sublist-caret":!p&&m,"menu__link--active":v}),onClick:m?n=>{t?.(e),p?_?(n.preventDefault(),I()):I(!1):(n.preventDefault(),I())}:()=>{t?.(e)},"aria-current":_?"page":void 0,role:m&&!p?"button":void 0,"aria-expanded":m&&!p?!g:void 0,href:m?f??"#":f,...l,children:u}),p&&m&&(0,b.jsx)(E,{collapsed:g,categoryLabel:u,onClick:e=>{e.preventDefault(),I()}})]}),(0,b.jsx)(y.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:d,tabIndex:g?-1:0,onItemClick:t,activePath:n,level:i+1})})]})}var H=n(6654),G=n(3186);const P="menuExternalLink_NmtK";function R({item:e,onItemClick:t,activePath:n,level:a,index:i,...c}){const{href:l,label:d,className:u,autoAddBaseUrl:m}=e,h=(0,r.w8)(e,n),p=(0,H.A)(l);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(a),"menu__list-item",u),children:(0,b.jsxs)(w.A,{className:(0,o.A)("menu__link",!p&&P,{"menu__link--active":h}),autoAddBaseUrl:m,"aria-current":h?"page":void 0,to:l,...p&&{onClick:t?()=>t(e):void 0},...c,children:[d,!p&&(0,b.jsx)(G.A,{})]})},d)}const W="menuHtmlItem_M9Kj";function D({item:e,level:t,index:n}){const{value:a,defaultStyle:i,className:r}=e;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(t),i&&[W,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:a}},n)}function F({item:e,...t}){switch(e.type){case"category":return(0,b.jsx)(M,{item:e,...t});case"html":return(0,b.jsx)(D,{item:e,...t});default:return(0,b.jsx)(R,{item:e,...t})}}function U({items:e,...t}){const n=(0,r.Y)(e,t.activePath);return(0,b.jsx)(I,{children:n.map(((e,n)=>(0,b.jsx)(F,{item:e,index:n,...t},n)))})}const V=(0,a.memo)(U),Y="menu_SIkG",K="menuWithAnnouncementBar_GW3s";function z({path:e,sidebar:t,className:n}){const i=function(){const{isActive:e}=(0,k.M)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((({scrollY:t})=>{e&&n(0===t)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,l.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",Y,i&&K,n),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:e,level:1})})})}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",J="sidebarHidden_VK0M",Q="sidebarLogo_isFc";function X({path:e,sidebar:t,onCollapse:n,isHidden:a}){const{navbar:{hideOnScroll:i},docs:{sidebar:{hideable:s}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,o.A)(q,i&&O,a&&J),children:[i&&(0,b.jsx)(v.A,{tabIndex:-1,className:Q}),(0,b.jsx)(z,{path:e,sidebar:t}),s&&(0,b.jsx)(C,{onClick:n})]})}const Z=a.memo(X);var $=n(5600),ee=n(9876);const te=({sidebar:e,path:t})=>{const n=(0,ee.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:e,activePath:t,onItemClick:e=>{"category"===e.type&&e.href&&n.toggle(),"link"===e.type&&n.toggle()},level:1})})};function ne(e){return(0,b.jsx)($.GX,{component:te,props:e})}const ae=a.memo(ne);function oe(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(Z,{...e}),a&&(0,b.jsx)(ae,{...e})]})}const ie={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function se({toggleSidebar:e}){return(0,b.jsx)("div",{className:ie.expandButton,title:(0,l.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,l.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:e,onClick:e,children:(0,b.jsx)(_,{className:ie.expandButtonIcon})})}const re={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function ce({children:e}){const t=(0,c.t)();return(0,b.jsx)(a.Fragment,{children:e},t?.name??"noSidebar")}function le({sidebar:e,hiddenSidebarContainer:t,setHiddenSidebarContainer:n}){const{pathname:i}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),l=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),n((e=>!e))}),[n,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,re.docSidebarContainer,t&&re.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(re.docSidebarContainer)&&t&&c(!0)},children:(0,b.jsx)(ce,{children:(0,b.jsxs)("div",{className:(0,o.A)(re.sidebarViewport,r&&re.sidebarViewportHidden),children:[(0,b.jsx)(oe,{sidebar:e,path:i,onCollapse:l,isHidden:r}),r&&(0,b.jsx)(se,{toggleSidebar:l})]})})})}const de={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ue({hiddenSidebarContainer:e,children:t}){const n=(0,c.t)();return(0,b.jsx)("main",{className:(0,o.A)(de.docMainContainer,(e||!n)&&de.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",de.docItemWrapper,e&&de.docItemWrapperEnhanced),children:t})})}const me={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function be({children:e}){const t=(0,c.t)(),[n,o]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:me.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:me.docRoot,children:[t&&(0,b.jsx)(le,{sidebar:t.items,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}),(0,b.jsx)(ue,{hiddenSidebarContainer:n,children:e})]})]})}var he=n(3363);function pe(e){const t=(0,r.B5)(e);if(!t)return(0,b.jsx)(he.A,{});const{docElement:n,sidebarName:a,sidebarItems:l}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(c.V,{name:a,items:l,children:(0,b.jsx)(be,{children:n})})})}},3363:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var a=n(4164),o=n(1312),i=n(1107),s=n(4848);function r({className:e}){return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"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/docs/assets/js/a97f18d9.ce4ddba2.js b/docs/assets/js/a97f18d9.ce4ddba2.js new file mode 100644 index 00000000..c6af68cd --- /dev/null +++ b/docs/assets/js/a97f18d9.ce4ddba2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6724],{1106:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-two","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-two/index.md","source":"@site/blog/bharatmlstack-history/post-two/index.md","title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","description":"BharatMLStack","date":"2023-04-10T00:00:00.000Z","tags":[{"inline":true,"label":"inferflow","permalink":"/BharatMLStack/blog/tags/inferflow"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":6.31,"hasTruncateMarker":false,"authors":[{"name":"Bhawani Singh","title":"Architect @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"Lead Software Engineer @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null},{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null}],"frontMatter":{"slug":"post-two","title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","authors":["bhawani","jigar","adarsha"],"date":"2023-4-10","tags":["inferflow","interaction-store","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"prevItem":{"title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","permalink":"/BharatMLStack/blog/post-three"},"nextItem":{"title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","permalink":"/BharatMLStack/blog/post-one"}}')},3086:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"},4114:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/mp-dag-976ff51caf25f09d977ccc10e70918f3.png"},4215:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var i=t(1106),r=t(4848),s=t(8453);const a={slug:"post-two",title:"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)",authors:["bhawani","jigar","adarsha"],date:"2023-4-10",tags:["inferflow","interaction-store","mlplatform","meesho","bharatmlstack"]},o=void 0,l={authorsImageUrls:[void 0,void 0,void 0]},c=[{value:"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)",id:"building-meeshos-ml-platform-lessons-from-the-first-gen-system-part-2",level:2},{value:"The Cost of Success",id:"the-cost-of-success",level:3},{value:"Scaling Pains (and Cassandra\u2019s Limits)",id:"scaling-pains-and-cassandras-limits",level:3},{value:"Interaction Store Woes",id:"interaction-store-woes",level:3},{value:"Silver Linings",id:"silver-linings",level:3},{value:"Round Two: Solving the Top 2 Bottlenecks",id:"round-two-solving-the-top-2-bottlenecks",level:3},{value:"Problem 1: No-Code Feature Retrieval for Model Inference",id:"problem-1-no-code-feature-retrieval-for-model-inference",level:4},{value:"Problem 2: Scaling Without Breaking the Bank",id:"problem-2-scaling-without-breaking-the-bank",level:4},{value:"Optimizing the Online Feature Store",id:"optimizing-the-online-feature-store",level:4},{value:"Optimizing the Interaction Store",id:"optimizing-the-interaction-store",level:4},{value:"Results",id:"results",level:4},{value:"The Catch: Our ML Hosting Hit a Hard Limit",id:"the-catch-our-ml-hosting-hit-a-hard-limit",level:4},{value:"Conclusion: From Firefighting to Future-Proofing",id:"conclusion-from-firefighting-to-future-proofing",level:3}];function d(e){const n={h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"BharatMLStack",src:t(3086).A+"",width:"1396",height:"460"})}),"\n",(0,r.jsx)(n.h2,{id:"building-meeshos-ml-platform-lessons-from-the-first-gen-system-part-2",children:"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)"}),"\n",(0,r.jsx)(n.p,{children:"By late 2022, we had built something we were truly proud of\u2014a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation.\nAnd it worked. Mostly.\nBut soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn\u2019t built for scale.\nThis is the story of how we tackled these challenges\u2014building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS."}),"\n",(0,r.jsx)(n.h3,{id:"the-cost-of-success",children:"The Cost of Success"}),"\n",(0,r.jsx)(n.p,{children:"Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Adding new DAG nodes in IOP"}),"\n",(0,r.jsx)(n.li,{children:"Writing custom logic to fetch features from multiple sources (e.g., user, product, user \xd7 category)"}),"\n",(0,r.jsx)(n.li,{children:"Inferring intermediate features (e.g., extracting category from a product to fetch user \xd7 category data)"}),"\n",(0,r.jsx)(n.li,{children:"Optimizing I/O and dealing with the inevitable bugs"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations."}),"\n",(0,r.jsx)(n.h3,{id:"scaling-pains-and-cassandras-limits",children:"Scaling Pains (and Cassandra\u2019s Limits)"}),"\n",(0,r.jsx)(n.p,{children:"At some point, we were hitting:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"250\u2013300K reads/sec"}),"\n",(0,r.jsx)(n.li,{children:"1M writes/sec (during lean hours)"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership."}),"\n",(0,r.jsx)(n.h3,{id:"interaction-store-woes",children:"Interaction Store Woes"}),"\n",(0,r.jsx)(n.p,{children:"Our interaction store was another ticking time bomb:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\udea8 Clusters kept growing in size and cost"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udea8 Latency spikes became increasingly frequent"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udea8 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale."}),"\n",(0,r.jsx)(n.h3,{id:"silver-linings",children:"Silver Linings"}),"\n",(0,r.jsx)(n.p,{children:"Despite the chaos, the system was live and delivering value:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Real-time infrastructure was in production"}),"\n",(0,r.jsx)(n.li,{children:"Costs dropped by 60\u201370% compared to offline personalization"}),"\n",(0,r.jsx)(n.li,{children:"New experiments rolled out faster and more successfully"}),"\n",(0,r.jsx)(n.li,{children:"User engagement metrics improved"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"It wasn\u2019t perfect. It was far from easy. But it worked\u2014and that counted for a lot."}),"\n",(0,r.jsx)(n.h3,{id:"round-two-solving-the-top-2-bottlenecks",children:"Round Two: Solving the Top 2 Bottlenecks"}),"\n",(0,r.jsx)(n.p,{children:"With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Coding feature retrieval logic for every new model was becoming unsustainable"}),"\n",(0,r.jsx)(n.li,{children:"ML scale was exploding\u2014bringing rising infra costs with it"}),"\n",(0,r.jsx)(n.li,{children:"Real-time embedding search was the next big unlock"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"We tackled them one by one\u2014starting with the biggest pain point."}),"\n",(0,r.jsx)(n.h4,{id:"problem-1-no-code-feature-retrieval-for-model-inference",children:"Problem 1: No-Code Feature Retrieval for Model Inference"}),"\n",(0,r.jsx)(n.p,{children:"We noticed a pattern: for personalized ranking, models needed features from:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u2705 Product"}),"\n",(0,r.jsx)(n.li,{children:"\u2705 User"}),"\n",(0,r.jsx)(n.li,{children:"\u2705 User \xd7 Category"}),"\n",(0,r.jsx)(n.li,{children:"\u2705 Region, cohort, sub-category, etc."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"A key insight emerged: Entities that contribute features for a model always map back to the context entities."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"MP Dag",src:t(4114).A+"",width:"1272",height:"512"})}),"\n",(0,r.jsx)(n.p,{children:"With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"1\ufe0f\u20e3 Inferflow takes a modelId and context IDs (e.g., userId, productIds)"}),"\n",(0,r.jsx)(n.li,{children:"2\ufe0f\u20e3 Loads a pre-defined feature retrieval graph from ZooKeeper"}),"\n",(0,r.jsx)(n.li,{children:"3\ufe0f\u20e3 Executes the graph to resolve entity relationships dynamically"}),"\n",(0,r.jsx)(n.li,{children:"4\ufe0f\u20e3 Outputs a 2D matrix of feature vectors"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\ud83d\udca1 The impact?"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\ude80 No more custom feature retrieval code\u2014just graph updates in config"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\ude80 Feature consistency across experiments"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\ude80 Faster iteration cycles for ranking, fraud detection, and beyond"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Here\u2019s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed:\n",(0,r.jsx)(n.img,{alt:"MP matrix",src:t(8111).A+"",width:"1262",height:"768"}),"\nWe built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency."]}),"\n",(0,r.jsx)(n.h4,{id:"problem-2-scaling-without-breaking-the-bank",children:"Problem 2: Scaling Without Breaking the Bank"}),"\n",(0,r.jsx)(n.p,{children:"With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\udd39 Online Feature Store"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udd39 Interaction Store"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"optimizing-the-online-feature-store",children:"Optimizing the Online Feature Store"}),"\n",(0,r.jsx)(n.p,{children:"Our costs were concentrated in:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Database (Cassandra)"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Cache (Redis)"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Running Pods (Java services)"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"1\ufe0f\u20e3 Replacing Cassandra with ScyllaDB\nAs we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency."}),"\n",(0,r.jsx)(n.li,{children:"Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization."}),"\n",(0,r.jsx)(n.li,{children:"Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"2\ufe0f\u20e3 Finding the Right Cache\nTo reduce backend load and improve response times, we benchmarked multiple caching solutions\u2014Memcached, KeyDB, and Dragonfly\u2014under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation."}),"\n",(0,r.jsx)(n.li,{children:"Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access."}),"\n",(0,r.jsx)(n.li,{children:"Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility\u2014no changes needed in application code or client libraries."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"3\ufe0f\u20e3 Moving to GoLang for Cost-Efficient Serving\nJava services were memory-heavy\u2014so we rewrote core services in GoLang. The results?"}),"\n",(0,r.jsx)(n.p,{children:"\u2705 Memory usage dropped by ~80%\n\u2705 CPU utilization was significantly lower\n\u2705 Faster, more efficient deployments"}),"\n",(0,r.jsx)(n.h4,{id:"optimizing-the-interaction-store",children:"Optimizing the Interaction Store"}),"\n",(0,r.jsx)(n.p,{children:"We realized that we only need a user\u2019s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Cold Tier (ScyllaDB)\u2014Stores click, order, wishlist events"}),"\n",(0,r.jsx)(n.li,{children:"\ud83d\udccc Hot Tier (Redis)\u2014Loads a user\u2019s past interactions only when they open the app"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"InteractionStore",src:t(9758).A+"",width:"1242",height:"572"})}),"\n",(0,r.jsx)(n.h4,{id:"results",children:"Results"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale\u2014without breaking a sweat"}),"\n",(0,r.jsx)(n.li,{children:"Infra costs for Online Feature Store and Interaction Store dropped by ~60%"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"the-catch-our-ml-hosting-hit-a-hard-limit",children:"The Catch: Our ML Hosting Hit a Hard Limit"}),"\n",(0,r.jsx)(n.p,{children:"While planning for 2023 MBS, we ran into a critical scalability bottleneck:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u274c Insufficient compute availability in our region for ML instances"}),"\n",(0,r.jsx)(n.li,{children:"\u274c Couldn\u2019t provision enough nodes to handle real-time inference at scale"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping\u2014but it wasn\u2019t built to handle the bursty, high-QPS demands of real-world production workloads."}),"\n",(0,r.jsx)(n.h3,{id:"conclusion-from-firefighting-to-future-proofing",children:"Conclusion: From Firefighting to Future-Proofing"}),"\n",(0,r.jsx)(n.p,{children:"What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency\u2014driving down costs while improving experimentation velocity.\nBut new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That\u2019s the next piece of the puzzle\u2014and the story of Part 3."})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8111:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/mp-matrix-43994f433f78905ccbd10cfe284f3c9f.png"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(6540);const r={},s=i.createContext(r);function a(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:n},e.children)}},9758:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/interaction-str-d9e7aefea121aefb4e94c6c9f060d016.png"}}]); \ No newline at end of file diff --git a/docs/assets/js/aaabe254.ba3e9f5f.js b/docs/assets/js/aaabe254.ba3e9f5f.js new file mode 100644 index 00000000..40f78d18 --- /dev/null +++ b/docs/assets/js/aaabe254.ba3e9f5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[770],{1982:a=>{a.exports=JSON.parse('{"tag":{"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack","allTagsPath":"/BharatMLStack/blog/tags","count":4,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/bharatmlstack","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/ac51638e.cd23cca0.js b/docs/assets/js/ac51638e.cd23cca0.js deleted file mode 100644 index 524d3cba..00000000 --- a/docs/assets/js/ac51638e.cd23cca0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9473],{6692:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"sdks/python/v1.0.0/spark_feature_push_client","title":"Spark client","description":"PyPI version","source":"@site/docs/sdks/python/v1.0.0/spark_feature_push_client.md","sourceDirName":"sdks/python/v1.0.0","slug":"/sdks/python/v1.0.0/spark_feature_push_client","permalink":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/sdks/python/v1.0.0/spark_feature_push_client.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Spark client","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"GRPC Feature client","permalink":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client"}}');var r=a(4848),i=a(8453);const s={title:"Spark client",sidebar_position:1},o="Spark Feature Push Client",l={},c=[{value:"Installation",id:"installation",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Architecture Role",id:"architecture-role",level:2},{value:"Features",id:"features",level:2},{value:"When to Use This Client",id:"when-to-use-this-client",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"Related Packages",id:"related-packages",level:2},{value:"License",id:"license",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Supported Data Sources",id:"supported-data-sources",level:2},{value:"1. Database Tables",id:"1-database-tables",level:3},{value:"2. Cloud Storage - Parquet",id:"2-cloud-storage---parquet",level:3},{value:"3. Cloud Storage - Delta",id:"3-cloud-storage---delta",level:3},{value:"Configuration Examples",id:"configuration-examples",level:2},{value:"Basic Pipeline",id:"basic-pipeline",level:3},{value:"Reading from Multiple Sources",id:"reading-from-multiple-sources",level:3},{value:"Protobuf Serialization & Kafka Publishing",id:"protobuf-serialization--kafka-publishing",level:3},{value:"Data Type Handling",id:"data-type-handling",level:2},{value:"Scalar Types",id:"scalar-types",level:3},{value:"Vector Types",id:"vector-types",level:3},{value:"Production Pipeline Example",id:"production-pipeline-example",level:2},{value:"Configuration Options",id:"configuration-options",level:2},{value:"Client Configuration",id:"client-configuration",level:3},{value:"Protobuf Serialization Options",id:"protobuf-serialization-options",level:3},{value:"Kafka Publishing Options",id:"kafka-publishing-options",level:3},{value:"Performance Tuning",id:"performance-tuning",level:2},{value:"Spark Optimizations",id:"spark-optimizations",level:3},{value:"Memory Management",id:"memory-management",level:3},{value:"Kafka Throughput",id:"kafka-throughput",level:3},{value:"Monitoring & Debugging",id:"monitoring--debugging",level:2},{value:"DataFrame Inspection",id:"dataframe-inspection",level:3},{value:"Error Handling",id:"error-handling",level:3},{value:"Integration with Other SDKs",id:"integration-with-other-sdks",level:2},{value:"With gRPC Feature Client",id:"with-grpc-feature-client",level:3},{value:"With HTTP Feature Client (bharatml_common)",id:"with-http-feature-client-bharatml_common",level:3},{value:"Common Use Cases",id:"common-use-cases",level:2},{value:"1. Daily Batch ETL",id:"1-daily-batch-etl",level:3},{value:"2. Historical Backfill",id:"2-historical-backfill",level:3},{value:"3. Real-time Streaming (Advanced)",id:"3-real-time-streaming-advanced",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"Common Issues",id:"common-issues",level:3},{value:"Debug Mode",id:"debug-mode",level:3},{value:"Migration from Legacy Clients",id:"migration-from-legacy-clients",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Contributing",id:"contributing-1",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license-1",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"spark-feature-push-client",children:"Spark Feature Push Client"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://badge.fury.io/py/spark_feature_push_client",children:(0,r.jsx)(n.img,{src:"https://img.shields.io/pypi/v/spark_feature_push_client?label=pypi-package&color=light%20green",alt:"PyPI version"})}),"\n",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/actions/workflows/py-sdk.yml",children:(0,r.jsx)(n.img,{src:"https://github.com/Meesho/BharatMLStack/actions/workflows/py-sdk.yml/badge.svg",alt:"Build Status"})}),"\n",(0,r.jsx)(n.a,{href:"https://www.python.org/downloads/",children:(0,r.jsx)(n.img,{src:"https://img.shields.io/badge/python-3.7+-blue.svg",alt:"Python 3.7+"})}),"\n",(0,r.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:(0,r.jsx)(n.img,{src:"https://img.shields.io/badge/Discord-Join%20Chat-7289da?style=flat&logo=discord&logoColor=white",alt:"Discord"})}),"\n",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:(0,r.jsx)(n.img,{src:"https://img.shields.io/badge/License-BharatMLStack%20BSL%201.1-blue.svg",alt:"License"})})]}),"\n",(0,r.jsxs)(n.p,{children:["Apache Spark-based client for pushing ML features from offline batch sources to the BharatML Stack Online Feature Store via Kafka. This client is designed for ",(0,r.jsx)(n.strong,{children:"data pipeline operations"})," - reading from batch sources and publishing to Kafka for online consumption."]}),"\n",(0,r.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"pip install spark_feature_push_client\n"})}),"\n",(0,r.jsx)(n.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,r.jsx)(n.p,{children:"This package depends on:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://pypi.org/project/bharatml_commons/",children:"bharatml_commons"})}),": Common utilities and protobuf definitions"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"PySpark 3.0+"}),": For distributed data processing"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"architecture-role",children:"Architecture Role"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Batch Sources \u2502\u2500\u2500\u2500\u25b6\u2502 Spark Feature Push \u2502\u2500\u2500\u2500\u25b6\u2502 Kafka \u2502\u2500\u2500\u2500\u25b6\u2502 Online Feature \u2502\n\u2502 \u2022 Tables \u2502 \u2502 Client \u2502 \u2502 \u2502 \u2502 Store \u2502\n\u2502 \u2022 Parquet \u2502 \u2502 \u2022 Read & Transform \u2502 \u2502 \u2502 \u2502 \u2502\n\u2502 \u2022 Delta \u2502 \u2502 \u2022 Protobuf Serialize \u2502 \u2502 \u2502 \u2502 \u2502\n\u2502 \u2022 S3/GCS/ADLS \u2502 \u2502 \u2022 Batch Processing \u2502 \u2502 \u2502 \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u25b2\n \u2502\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 grpc_feature_ \u2502\n \u2502 client \u2502\n \u2502 (Real-time) \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n"})}),"\n",(0,r.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Batch Source Integration"}),": Read from Tables (Hive/Delta), Parquet, and Delta files on cloud storage"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Spark Processing"}),": Leverage Apache Spark for distributed data processing"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Protobuf Serialization"}),": Convert feature data to protobuf format using bharatml_commons schemas"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Kafka Publishing"}),": Push serialized features to Kafka topics for online consumption"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Metadata Integration"}),": Fetch feature schemas and configurations via REST API"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Data Type Support"}),": Handle scalar and vector types (strings, numbers, booleans, arrays)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Batch Optimization"}),": Configurable batch sizes for optimal Kafka throughput"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"when-to-use-this-client",children:"When to Use This Client"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Use spark_feature_push_client for:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\ud83d\udd04 ",(0,r.jsx)(n.strong,{children:"Batch ETL Pipelines"}),": Scheduled feature computation and publishing"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udcca ",(0,r.jsx)(n.strong,{children:"Historical Data Backfill"}),": Loading historical features into online store"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83c\udfd7\ufe0f ",(0,r.jsx)(n.strong,{children:"Data Engineering"}),": Spark-based feature transformations"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udcc8 ",(0,r.jsx)(n.strong,{children:"Large Scale Processing"}),": Processing millions of records efficiently"]}),"\n",(0,r.jsxs)(n.li,{children:["\u26a1 ",(0,r.jsx)(n.strong,{children:"Offline-to-Online"}),": Bridge between batch and real-time systems"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Use grpc_feature_client for:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\ud83d\ude80 ",(0,r.jsx)(n.strong,{children:"Real-time Operations"}),": Direct persist/retrieve operations"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udd0d ",(0,r.jsx)(n.strong,{children:"Interactive Queries"}),": Low-latency feature lookups"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83c\udfaf ",(0,r.jsx)(n.strong,{children:"API Integration"}),": Service-to-service communication"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udca8 ",(0,r.jsx)(n.strong,{children:"Single Records"}),": Persisting individual feature records"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'from spark_feature_push_client import OnlineFeatureStorePyClient\n\n# Initialize client with metadata source\nclient = OnlineFeatureStorePyClient(\n features_metadata_source_url="https://api.example.com/metadata",\n job_id="feature-pipeline-job",\n job_token="your-auth-token"\n)\n\n# Get feature configuration \nfeature_details = client.get_features_details()\n\n# Process your Spark DataFrame\nproto_df = client.generate_df_with_protobuf_messages(your_spark_df)\n\n# Push to Kafka\nclient.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers="localhost:9092",\n kafka_topic="features.user_features"\n)\n'})}),"\n",(0,r.jsx)(n.h2,{id:"related-packages",children:"Related Packages"}),"\n",(0,r.jsx)(n.p,{children:"This package is part of the BharatML Stack ecosystem:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://pypi.org/project/bharatml_commons/",children:"bharatml_commons"})}),": Common utilities and protobuf definitions (required dependency)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://pypi.org/project/grpc_feature_client/",children:"grpc_feature_client"})}),": High-performance gRPC client for real-time operations"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,r.jsxs)(n.p,{children:["Licensed under the BharatMLStack Business Source License 1.1. See ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"LICENSE"})," for details."]}),"\n",(0,r.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,r.jsxs)(n.p,{children:["We welcome contributions! Please see our ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTION.md",children:"Contributing Guide"})," for details."]}),"\n",(0,r.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Apache Spark 3.0+"}),": For distributed processing"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Kafka Connector"}),": ",(0,r.jsx)(n.code,{children:"spark-sql-kafka"})," for Kafka integration"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Java 8/11"}),": Required by Spark"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"bharatml_common"}),": For protobuf schemas"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# Example Spark session setup\nspark = SparkSession.builder \\\n .appName("FeaturePipeline") \\\n .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0") \\\n .getOrCreate()\n'})}),"\n",(0,r.jsx)(n.h2,{id:"supported-data-sources",children:"Supported Data Sources"}),"\n",(0,r.jsx)(n.h3,{id:"1-database-tables",children:"1. Database Tables"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Hive/Delta tables\ndf = spark.sql("SELECT * FROM feature_db.user_features")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"2-cloud-storage---parquet",children:"2. Cloud Storage - Parquet"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# AWS S3\ndf = spark.read.parquet("s3a://bucket/path/to/features/")\n\n# Google Cloud Storage \ndf = spark.read.parquet("gs://bucket/path/to/features/")\n\n# Azure Data Lake\ndf = spark.read.parquet("abfss://container@account.dfs.core.windows.net/path/")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"3-cloud-storage---delta",children:"3. Cloud Storage - Delta"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Delta format on cloud storage\ndf = spark.read.format("delta").load("s3a://bucket/delta-table/")\n'})}),"\n",(0,r.jsx)(n.h2,{id:"configuration-examples",children:"Configuration Examples"}),"\n",(0,r.jsx)(n.h3,{id:"basic-pipeline",children:"Basic Pipeline"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'from pyspark.sql import SparkSession\nfrom spark_feature_push_client import OnlineFeatureStorePyClient\n\n# Create Spark session\nspark = SparkSession.builder \\\n .appName("FeatureETL") \\\n .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0") \\\n .getOrCreate()\n\n# Initialize client\nclient = OnlineFeatureStorePyClient(\n features_metadata_source_url="https://metadata-service.example.com/api/v1/features",\n job_id="daily-feature-pipeline",\n job_token="pipeline-secret-token",\n fgs_to_consider=["user_demographics", "user_behavior"] # Optional: filter feature groups\n)\n\n# Get metadata and column mappings\n(\n offline_src_type_columns,\n offline_col_to_default_values_map, \n entity_column_names\n) = client.get_features_details()\n\nprint(f"Entity columns: {entity_column_names}")\nprint(f"Feature mappings: {offline_src_type_columns}")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"reading-from-multiple-sources",children:"Reading from Multiple Sources"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'def get_features_from_all_sources(spark, entity_columns, feature_mapping, default_values):\n """\n Read and combine features from multiple offline sources\n """\n dataframes = []\n \n for source_info in feature_mapping:\n table_name, source_type, feature_list = source_info\n \n if source_type == "TABLE":\n # Read from Hive/Delta table\n df = spark.table(table_name)\n \n elif source_type.startswith("PARQUET_"):\n # Read from Parquet files\n df = spark.read.parquet(table_name)\n \n elif source_type.startswith("DELTA_"):\n # Read from Delta files\n df = spark.read.format("delta").load(table_name)\n \n # Select and rename columns\n select_cols = entity_columns.copy()\n for original_col, renamed_col in feature_list:\n if original_col in df.columns:\n df = df.withColumnRenamed(original_col, renamed_col)\n select_cols.append(renamed_col)\n \n df = df.select(select_cols)\n dataframes.append(df)\n \n # Union all dataframes\n if dataframes:\n combined_df = dataframes[0]\n for df in dataframes[1:]:\n combined_df = combined_df.unionByName(df, allowMissingColumns=True)\n \n # Fill missing values with defaults\n for col, default_val in default_values.items():\n if col in combined_df.columns:\n combined_df = combined_df.fillna({col: default_val})\n \n return combined_df\n \n return None\n\n# Use the function\ndf = get_features_from_all_sources(\n spark, \n entity_column_names, \n offline_src_type_columns, \n offline_col_to_default_values_map\n)\n'})}),"\n",(0,r.jsx)(n.h3,{id:"protobuf-serialization--kafka-publishing",children:"Protobuf Serialization & Kafka Publishing"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Convert DataFrame to protobuf messages\n# This creates binary protobuf messages suitable for Kafka\nproto_df = client.generate_df_with_protobuf_messages(\n df, \n intra_batch_size=20 # Batch size for serialization\n)\n\n# The proto_df has schema: [value: binary, intra_batch_id: long]\nproto_df.printSchema()\n# root\n# |-- value: binary (nullable = false) \n# |-- intra_batch_id: long (nullable = false)\n\n# Write to Kafka with batching for better throughput\nclient.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers="broker1:9092,broker2:9092,broker3:9092",\n kafka_topic="features.user_features",\n additional_options={\n "kafka.acks": "all",\n "kafka.retries": "3",\n "kafka.compression.type": "snappy"\n },\n kafka_num_batches=4 # Split into 4 parallel Kafka writes\n)\n'})}),"\n",(0,r.jsx)(n.h2,{id:"data-type-handling",children:"Data Type Handling"}),"\n",(0,r.jsx)(n.p,{children:"The client automatically handles the protobuf data type mappings:"}),"\n",(0,r.jsx)(n.h3,{id:"scalar-types",children:"Scalar Types"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Example DataFrame with different types\ndata = [\n ("user123", 25, 185.5, True, "premium"), # int, float, bool, string\n ("user456", 30, 170.0, False, "basic")\n]\ndf = spark.createDataFrame(data, ["user_id", "age", "height", "is_premium", "tier"])\n\n# Automatically mapped to protobuf:\n# age -> int32_values\n# height -> fp32_values \n# is_premium -> bool_values\n# tier -> string_values\n'})}),"\n",(0,r.jsx)(n.h3,{id:"vector-types",children:"Vector Types"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Example with vector/array features\nfrom pyspark.sql.functions import array, lit\n\ndf = spark.createDataFrame([\n ("user123", [0.1, 0.2, 0.3], ["tech", "sports"], [1, 2, 3])\n], ["user_id", "embeddings", "interests", "scores"])\n\n# Automatically mapped to protobuf vectors:\n# embeddings -> fp32_values in Vector\n# interests -> string_values in Vector\n# scores -> int32_values in Vector\n'})}),"\n",(0,r.jsx)(n.h2,{id:"production-pipeline-example",children:"Production Pipeline Example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'def run_feature_pipeline():\n """\n Complete feature pipeline from batch sources to Kafka\n """\n \n # 1. Initialize Spark\n spark = SparkSession.builder \\\n .appName("DailyFeaturePipeline") \\\n .config("spark.sql.adaptive.enabled", "true") \\\n .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0") \\\n .getOrCreate()\n \n try:\n # 2. Initialize feature client\n client = OnlineFeatureStorePyClient(\n features_metadata_source_url=os.getenv("METADATA_URL"),\n job_id=os.getenv("JOB_ID"),\n job_token=os.getenv("JOB_TOKEN")\n )\n \n # 3. Get feature configuration\n feature_mapping, default_values, entity_columns = client.get_features_details()\n \n # 4. Read and process data\n df = get_features_from_all_sources(spark, entity_columns, feature_mapping, default_values)\n \n if df is None or df.count() == 0:\n raise ValueError("No data found in sources")\n \n # 5. Convert to protobuf\n proto_df = client.generate_df_with_protobuf_messages(df, intra_batch_size=50)\n \n # 6. Publish to Kafka\n client.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers=os.getenv("KAFKA_BROKERS"),\n kafka_topic=os.getenv("KAFKA_TOPIC"),\n additional_options={\n "kafka.acks": "all",\n "kafka.compression.type": "snappy",\n "kafka.max.request.size": "10485760" # 10MB\n },\n kafka_num_batches=int(os.getenv("KAFKA_BATCHES", "4"))\n )\n \n print(f"\u2705 Successfully processed {df.count()} records")\n \n finally:\n spark.stop()\n\nif __name__ == "__main__":\n run_feature_pipeline()\n'})}),"\n",(0,r.jsx)(n.h2,{id:"configuration-options",children:"Configuration Options"}),"\n",(0,r.jsx)(n.h3,{id:"client-configuration",children:"Client Configuration"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'client = OnlineFeatureStorePyClient(\n features_metadata_source_url="https://api.example.com/metadata", # Required\n job_id="pipeline-job-001", # Required \n job_token="secret-token-123", # Required\n fgs_to_consider=["user_features", "item_features"] # Optional: filter feature groups\n)\n'})}),"\n",(0,r.jsx)(n.h3,{id:"protobuf-serialization-options",children:"Protobuf Serialization Options"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"proto_df = client.generate_df_with_protobuf_messages(\n df,\n intra_batch_size=20 # Records per protobuf message (default: 20)\n)\n"})}),"\n",(0,r.jsx)(n.h3,{id:"kafka-publishing-options",children:"Kafka Publishing Options"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'client.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers="localhost:9092",\n kafka_topic="features.topic",\n additional_options={\n "kafka.acks": "all", # Acknowledgment level\n "kafka.retries": "3", # Retry attempts\n "kafka.compression.type": "snappy", # Compression\n "kafka.batch.size": "16384", # Batch size\n "kafka.linger.ms": "100", # Batching delay\n "kafka.max.request.size": "10485760" # Max message size\n },\n kafka_num_batches=1 # Number of parallel Kafka writers (default: 1)\n)\n'})}),"\n",(0,r.jsx)(n.h2,{id:"performance-tuning",children:"Performance Tuning"}),"\n",(0,r.jsx)(n.h3,{id:"spark-optimizations",children:"Spark Optimizations"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'spark = SparkSession.builder \\\n .appName("FeaturePipeline") \\\n .config("spark.sql.adaptive.enabled", "true") \\\n .config("spark.sql.adaptive.coalescePartitions.enabled", "true") \\\n .config("spark.sql.adaptive.skewJoin.enabled", "true") \\\n .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") \\\n .getOrCreate()\n'})}),"\n",(0,r.jsx)(n.h3,{id:"memory-management",children:"Memory Management"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# For large datasets, consider:\ndf = df.repartition(200) # Optimal partition count\ndf.cache() # Cache if reused multiple times\n"})}),"\n",(0,r.jsx)(n.h3,{id:"kafka-throughput",children:"Kafka Throughput"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# For high-throughput scenarios:\nclient.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers="brokers",\n kafka_topic="topic", \n kafka_num_batches=8, # Increase parallel writers\n additional_options={\n "kafka.batch.size": "65536", # Larger batches\n "kafka.linger.ms": "100", # Allow batching delay\n "kafka.compression.type": "lz4" # Fast compression\n }\n)\n'})}),"\n",(0,r.jsx)(n.h2,{id:"monitoring--debugging",children:"Monitoring & Debugging"}),"\n",(0,r.jsx)(n.h3,{id:"dataframe-inspection",children:"DataFrame Inspection"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Check data before processing\nprint(f"Records: {df.count()}")\nprint(f"Columns: {df.columns}")\ndf.printSchema()\ndf.show(5)\n\n# Check protobuf output\nproto_df.show(5, truncate=False)\nprint(f"Protobuf messages: {proto_df.count()}")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"error-handling",children:"Error Handling"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'try:\n proto_df = client.generate_df_with_protobuf_messages(df)\n client.write_protobuf_df_to_kafka(proto_df, brokers, topic)\n \nexcept Exception as e:\n print(f"Pipeline failed: {e}")\n # Log to monitoring system\n # Send alerts\n raise\n'})}),"\n",(0,r.jsx)(n.h2,{id:"integration-with-other-sdks",children:"Integration with Other SDKs"}),"\n",(0,r.jsx)(n.h3,{id:"with-grpc-feature-client",children:"With gRPC Feature Client"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# Spark client pushes features to Kafka\nspark_client = OnlineFeatureStorePyClient(...)\nspark_client.write_protobuf_df_to_kafka(proto_df, brokers, topic)\n\n# gRPC client retrieves features in real-time\nfrom grpc_feature_client import GRPCFeatureClient\ngrpc_client = GRPCFeatureClient(config)\nfeatures = grpc_client.retrieve_decoded_features(...)\n"})}),"\n",(0,r.jsx)(n.h3,{id:"with-http-feature-client-bharatml_common",children:"With HTTP Feature Client (bharatml_common)"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# Use HTTP client for metadata validation\nfrom bharatml_common import HTTPFeatureClient\nhttp_client = HTTPFeatureClient(base_url, job_id, token)\nmetadata = http_client.get_feature_metadata()\n\n# Validate feature names using shared utilities\nfrom bharatml_common import clean_column_name\nclean_features = [clean_column_name(name) for name in feature_names]\n\n# Process with Spark client\nspark_client.generate_df_with_protobuf_messages(df)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"common-use-cases",children:"Common Use Cases"}),"\n",(0,r.jsx)(n.h3,{id:"1-daily-batch-etl",children:"1. Daily Batch ETL"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# Cron job: 0 2 * * * (daily at 2 AM)\nspark-submit \\\n --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0 \\\n --conf spark.sql.adaptive.enabled=true \\\n daily_feature_pipeline.py\n"})}),"\n",(0,r.jsx)(n.h3,{id:"2-historical-backfill",children:"2. Historical Backfill"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Backfill last 30 days\nfrom datetime import datetime, timedelta\n\nfor i in range(30):\n date = datetime.now() - timedelta(days=i)\n df = spark.sql(f"""\n SELECT * FROM features \n WHERE date = \'{date.strftime(\'%Y-%m-%d\')}\'\n """)\n \n proto_df = client.generate_df_with_protobuf_messages(df)\n client.write_protobuf_df_to_kafka(proto_df, brokers, f"backfill.{date.strftime(\'%Y%m%d\')}")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"3-real-time-streaming-advanced",children:"3. Real-time Streaming (Advanced)"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Read from streaming source, process, and publish\nstreaming_df = spark.readStream \\\n .format("kafka") \\\n .option("kafka.bootstrap.servers", input_brokers) \\\n .option("subscribe", input_topic) \\\n .load()\n\n# Process streaming DataFrame\nprocessed_df = streaming_df.select(...)\n\n# Write to output Kafka (requires structured streaming)\nquery = processed_df.writeStream \\\n .format("kafka") \\\n .option("kafka.bootstrap.servers", output_brokers) \\\n .option("topic", output_topic) \\\n .start()\n'})}),"\n",(0,r.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,r.jsx)(n.h3,{id:"common-issues",children:"Common Issues"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"OutOfMemoryError"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Increase driver memory or reduce partition size\nspark.conf.set("spark.sql.adaptive.coalescePartitions.minPartitionNum", "50")\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Kafka Connection Timeout"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Check network connectivity and broker addresses\nadditional_options = {\n "kafka.request.timeout.ms": "60000",\n "kafka.session.timeout.ms": "30000"\n}\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Protobuf Serialization Errors"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Check data types and null values\ndf = df.fillna({"string_col": "", "numeric_col": 0})\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Metadata API Errors"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# Verify job_id, job_token, and URL\n# Check API server logs\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"debug-mode",children:"Debug Mode"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'import logging\nlogging.basicConfig(level=logging.DEBUG)\n\n# Enable Spark SQL logging\nspark.sparkContext.setLogLevel("INFO")\n'})}),"\n",(0,r.jsx)(n.h2,{id:"migration-from-legacy-clients",children:"Migration from Legacy Clients"}),"\n",(0,r.jsx)(n.p,{children:"If migrating from older versions:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# Old import\n# from online_feature_store_py_client import OnlineFeatureStorePyClient\n\n# New import (same interface)\nfrom spark_feature_push_client import OnlineFeatureStorePyClient\n\n# API remains the same - no code changes needed!\n"})}),"\n",(0,r.jsx)(n.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Resource Management"}),": Always stop Spark sessions"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Error Handling"}),": Implement proper exception handling and retries"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Monitoring"}),": Add metrics and logging to your pipelines"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Testing"}),": Test with sample data before production runs"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Security"}),": Use secure Kafka configurations in production"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Performance"}),": Monitor Spark UI for optimization opportunities"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The Spark Feature Push Client is your gateway from batch data sources to the real-time online feature store! \ud83d\ude80"}),"\n",(0,r.jsx)(n.h2,{id:"contributing-1",children:"Contributing"}),"\n",(0,r.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,r.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\ud83d\udcac ",(0,r.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,r.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,r.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,r.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,r.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"license-1",children:"License"}),"\n",(0,r.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function p(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,n,a)=>{a.d(n,{R:()=>s,x:()=>o});var t=a(6540);const r={},i=t.createContext(r);function s(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/ac51638e.ef64a004.js b/docs/assets/js/ac51638e.ef64a004.js new file mode 100644 index 00000000..d229d3ec --- /dev/null +++ b/docs/assets/js/ac51638e.ef64a004.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9473],{6692:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"sdks/python/v1.0.0/spark_feature_push_client","title":"Spark client","description":"PyPI version","source":"@site/docs/sdks/python/v1.0.0/spark_feature_push_client.md","sourceDirName":"sdks/python/v1.0.0","slug":"/sdks/python/v1.0.0/spark_feature_push_client","permalink":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/sdks/python/v1.0.0/spark_feature_push_client.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Spark client","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"GRPC Feature client","permalink":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client"},"next":{"title":"Numerix","permalink":"/BharatMLStack/category/numerix"}}');var r=a(4848),i=a(8453);const s={title:"Spark client",sidebar_position:1},o="Spark Feature Push Client",l={},c=[{value:"Installation",id:"installation",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Architecture Role",id:"architecture-role",level:2},{value:"Features",id:"features",level:2},{value:"When to Use This Client",id:"when-to-use-this-client",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"Related Packages",id:"related-packages",level:2},{value:"License",id:"license",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Supported Data Sources",id:"supported-data-sources",level:2},{value:"1. Database Tables",id:"1-database-tables",level:3},{value:"2. Cloud Storage - Parquet",id:"2-cloud-storage---parquet",level:3},{value:"3. Cloud Storage - Delta",id:"3-cloud-storage---delta",level:3},{value:"Configuration Examples",id:"configuration-examples",level:2},{value:"Basic Pipeline",id:"basic-pipeline",level:3},{value:"Reading from Multiple Sources",id:"reading-from-multiple-sources",level:3},{value:"Protobuf Serialization & Kafka Publishing",id:"protobuf-serialization--kafka-publishing",level:3},{value:"Data Type Handling",id:"data-type-handling",level:2},{value:"Scalar Types",id:"scalar-types",level:3},{value:"Vector Types",id:"vector-types",level:3},{value:"Production Pipeline Example",id:"production-pipeline-example",level:2},{value:"Configuration Options",id:"configuration-options",level:2},{value:"Client Configuration",id:"client-configuration",level:3},{value:"Protobuf Serialization Options",id:"protobuf-serialization-options",level:3},{value:"Kafka Publishing Options",id:"kafka-publishing-options",level:3},{value:"Performance Tuning",id:"performance-tuning",level:2},{value:"Spark Optimizations",id:"spark-optimizations",level:3},{value:"Memory Management",id:"memory-management",level:3},{value:"Kafka Throughput",id:"kafka-throughput",level:3},{value:"Monitoring & Debugging",id:"monitoring--debugging",level:2},{value:"DataFrame Inspection",id:"dataframe-inspection",level:3},{value:"Error Handling",id:"error-handling",level:3},{value:"Integration with Other SDKs",id:"integration-with-other-sdks",level:2},{value:"With gRPC Feature Client",id:"with-grpc-feature-client",level:3},{value:"With HTTP Feature Client (bharatml_common)",id:"with-http-feature-client-bharatml_common",level:3},{value:"Common Use Cases",id:"common-use-cases",level:2},{value:"1. Daily Batch ETL",id:"1-daily-batch-etl",level:3},{value:"2. Historical Backfill",id:"2-historical-backfill",level:3},{value:"3. Real-time Streaming (Advanced)",id:"3-real-time-streaming-advanced",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"Common Issues",id:"common-issues",level:3},{value:"Debug Mode",id:"debug-mode",level:3},{value:"Migration from Legacy Clients",id:"migration-from-legacy-clients",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Contributing",id:"contributing-1",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license-1",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"spark-feature-push-client",children:"Spark Feature Push Client"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://badge.fury.io/py/spark_feature_push_client",children:(0,r.jsx)(n.img,{src:"https://img.shields.io/pypi/v/spark_feature_push_client?label=pypi-package&color=light%20green",alt:"PyPI version"})}),"\n",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/actions/workflows/py-sdk.yml",children:(0,r.jsx)(n.img,{src:"https://github.com/Meesho/BharatMLStack/actions/workflows/py-sdk.yml/badge.svg",alt:"Build Status"})}),"\n",(0,r.jsx)(n.a,{href:"https://www.python.org/downloads/",children:(0,r.jsx)(n.img,{src:"https://img.shields.io/badge/python-3.7+-blue.svg",alt:"Python 3.7+"})}),"\n",(0,r.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:(0,r.jsx)(n.img,{src:"https://img.shields.io/badge/Discord-Join%20Chat-7289da?style=flat&logo=discord&logoColor=white",alt:"Discord"})}),"\n",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:(0,r.jsx)(n.img,{src:"https://img.shields.io/badge/License-BharatMLStack%20BSL%201.1-blue.svg",alt:"License"})})]}),"\n",(0,r.jsxs)(n.p,{children:["Apache Spark-based client for pushing ML features from offline batch sources to the BharatML Stack Online Feature Store via Kafka. This client is designed for ",(0,r.jsx)(n.strong,{children:"data pipeline operations"})," - reading from batch sources and publishing to Kafka for online consumption."]}),"\n",(0,r.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"pip install spark_feature_push_client\n"})}),"\n",(0,r.jsx)(n.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,r.jsx)(n.p,{children:"This package depends on:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://pypi.org/project/bharatml_commons/",children:"bharatml_commons"})}),": Common utilities and protobuf definitions"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"PySpark 3.0+"}),": For distributed data processing"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"architecture-role",children:"Architecture Role"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Batch Sources \u2502\u2500\u2500\u2500\u25b6\u2502 Spark Feature Push \u2502\u2500\u2500\u2500\u25b6\u2502 Kafka \u2502\u2500\u2500\u2500\u25b6\u2502 Online Feature \u2502\n\u2502 \u2022 Tables \u2502 \u2502 Client \u2502 \u2502 \u2502 \u2502 Store \u2502\n\u2502 \u2022 Parquet \u2502 \u2502 \u2022 Read & Transform \u2502 \u2502 \u2502 \u2502 \u2502\n\u2502 \u2022 Delta \u2502 \u2502 \u2022 Protobuf Serialize \u2502 \u2502 \u2502 \u2502 \u2502\n\u2502 \u2022 S3/GCS/ADLS \u2502 \u2502 \u2022 Batch Processing \u2502 \u2502 \u2502 \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u25b2\n \u2502\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 grpc_feature_ \u2502\n \u2502 client \u2502\n \u2502 (Real-time) \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n"})}),"\n",(0,r.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Batch Source Integration"}),": Read from Tables (Hive/Delta), Parquet, and Delta files on cloud storage"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Spark Processing"}),": Leverage Apache Spark for distributed data processing"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Protobuf Serialization"}),": Convert feature data to protobuf format using bharatml_commons schemas"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Kafka Publishing"}),": Push serialized features to Kafka topics for online consumption"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Metadata Integration"}),": Fetch feature schemas and configurations via REST API"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Data Type Support"}),": Handle scalar and vector types (strings, numbers, booleans, arrays)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Batch Optimization"}),": Configurable batch sizes for optimal Kafka throughput"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"when-to-use-this-client",children:"When to Use This Client"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Use spark_feature_push_client for:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\ud83d\udd04 ",(0,r.jsx)(n.strong,{children:"Batch ETL Pipelines"}),": Scheduled feature computation and publishing"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udcca ",(0,r.jsx)(n.strong,{children:"Historical Data Backfill"}),": Loading historical features into online store"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83c\udfd7\ufe0f ",(0,r.jsx)(n.strong,{children:"Data Engineering"}),": Spark-based feature transformations"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udcc8 ",(0,r.jsx)(n.strong,{children:"Large Scale Processing"}),": Processing millions of records efficiently"]}),"\n",(0,r.jsxs)(n.li,{children:["\u26a1 ",(0,r.jsx)(n.strong,{children:"Offline-to-Online"}),": Bridge between batch and real-time systems"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Use grpc_feature_client for:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\ud83d\ude80 ",(0,r.jsx)(n.strong,{children:"Real-time Operations"}),": Direct persist/retrieve operations"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udd0d ",(0,r.jsx)(n.strong,{children:"Interactive Queries"}),": Low-latency feature lookups"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83c\udfaf ",(0,r.jsx)(n.strong,{children:"API Integration"}),": Service-to-service communication"]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udca8 ",(0,r.jsx)(n.strong,{children:"Single Records"}),": Persisting individual feature records"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'from spark_feature_push_client import OnlineFeatureStorePyClient\n\n# Initialize client with metadata source\nclient = OnlineFeatureStorePyClient(\n features_metadata_source_url="https://api.example.com/metadata",\n job_id="feature-pipeline-job",\n job_token="your-auth-token"\n)\n\n# Get feature configuration \nfeature_details = client.get_features_details()\n\n# Process your Spark DataFrame\nproto_df = client.generate_df_with_protobuf_messages(your_spark_df)\n\n# Push to Kafka\nclient.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers="localhost:9092",\n kafka_topic="features.user_features"\n)\n'})}),"\n",(0,r.jsx)(n.h2,{id:"related-packages",children:"Related Packages"}),"\n",(0,r.jsx)(n.p,{children:"This package is part of the BharatML Stack ecosystem:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://pypi.org/project/bharatml_commons/",children:"bharatml_commons"})}),": Common utilities and protobuf definitions (required dependency)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://pypi.org/project/grpc_feature_client/",children:"grpc_feature_client"})}),": High-performance gRPC client for real-time operations"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,r.jsxs)(n.p,{children:["Licensed under the BharatMLStack Business Source License 1.1. See ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"LICENSE"})," for details."]}),"\n",(0,r.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,r.jsxs)(n.p,{children:["We welcome contributions! Please see our ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTION.md",children:"Contributing Guide"})," for details."]}),"\n",(0,r.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Apache Spark 3.0+"}),": For distributed processing"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Kafka Connector"}),": ",(0,r.jsx)(n.code,{children:"spark-sql-kafka"})," for Kafka integration"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Java 8/11"}),": Required by Spark"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"bharatml_common"}),": For protobuf schemas"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# Example Spark session setup\nspark = SparkSession.builder \\\n .appName("FeaturePipeline") \\\n .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0") \\\n .getOrCreate()\n'})}),"\n",(0,r.jsx)(n.h2,{id:"supported-data-sources",children:"Supported Data Sources"}),"\n",(0,r.jsx)(n.h3,{id:"1-database-tables",children:"1. Database Tables"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Hive/Delta tables\ndf = spark.sql("SELECT * FROM feature_db.user_features")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"2-cloud-storage---parquet",children:"2. Cloud Storage - Parquet"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# AWS S3\ndf = spark.read.parquet("s3a://bucket/path/to/features/")\n\n# Google Cloud Storage \ndf = spark.read.parquet("gs://bucket/path/to/features/")\n\n# Azure Data Lake\ndf = spark.read.parquet("abfss://container@account.dfs.core.windows.net/path/")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"3-cloud-storage---delta",children:"3. Cloud Storage - Delta"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Delta format on cloud storage\ndf = spark.read.format("delta").load("s3a://bucket/delta-table/")\n'})}),"\n",(0,r.jsx)(n.h2,{id:"configuration-examples",children:"Configuration Examples"}),"\n",(0,r.jsx)(n.h3,{id:"basic-pipeline",children:"Basic Pipeline"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'from pyspark.sql import SparkSession\nfrom spark_feature_push_client import OnlineFeatureStorePyClient\n\n# Create Spark session\nspark = SparkSession.builder \\\n .appName("FeatureETL") \\\n .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0") \\\n .getOrCreate()\n\n# Initialize client\nclient = OnlineFeatureStorePyClient(\n features_metadata_source_url="https://metadata-service.example.com/api/v1/features",\n job_id="daily-feature-pipeline",\n job_token="pipeline-secret-token",\n fgs_to_consider=["user_demographics", "user_behavior"] # Optional: filter feature groups\n)\n\n# Get metadata and column mappings\n(\n offline_src_type_columns,\n offline_col_to_default_values_map, \n entity_column_names\n) = client.get_features_details()\n\nprint(f"Entity columns: {entity_column_names}")\nprint(f"Feature mappings: {offline_src_type_columns}")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"reading-from-multiple-sources",children:"Reading from Multiple Sources"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'def get_features_from_all_sources(spark, entity_columns, feature_mapping, default_values):\n """\n Read and combine features from multiple offline sources\n """\n dataframes = []\n \n for source_info in feature_mapping:\n table_name, source_type, feature_list = source_info\n \n if source_type == "TABLE":\n # Read from Hive/Delta table\n df = spark.table(table_name)\n \n elif source_type.startswith("PARQUET_"):\n # Read from Parquet files\n df = spark.read.parquet(table_name)\n \n elif source_type.startswith("DELTA_"):\n # Read from Delta files\n df = spark.read.format("delta").load(table_name)\n \n # Select and rename columns\n select_cols = entity_columns.copy()\n for original_col, renamed_col in feature_list:\n if original_col in df.columns:\n df = df.withColumnRenamed(original_col, renamed_col)\n select_cols.append(renamed_col)\n \n df = df.select(select_cols)\n dataframes.append(df)\n \n # Union all dataframes\n if dataframes:\n combined_df = dataframes[0]\n for df in dataframes[1:]:\n combined_df = combined_df.unionByName(df, allowMissingColumns=True)\n \n # Fill missing values with defaults\n for col, default_val in default_values.items():\n if col in combined_df.columns:\n combined_df = combined_df.fillna({col: default_val})\n \n return combined_df\n \n return None\n\n# Use the function\ndf = get_features_from_all_sources(\n spark, \n entity_column_names, \n offline_src_type_columns, \n offline_col_to_default_values_map\n)\n'})}),"\n",(0,r.jsx)(n.h3,{id:"protobuf-serialization--kafka-publishing",children:"Protobuf Serialization & Kafka Publishing"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Convert DataFrame to protobuf messages\n# This creates binary protobuf messages suitable for Kafka\nproto_df = client.generate_df_with_protobuf_messages(\n df, \n intra_batch_size=20 # Batch size for serialization\n)\n\n# The proto_df has schema: [value: binary, intra_batch_id: long]\nproto_df.printSchema()\n# root\n# |-- value: binary (nullable = false) \n# |-- intra_batch_id: long (nullable = false)\n\n# Write to Kafka with batching for better throughput\nclient.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers="broker1:9092,broker2:9092,broker3:9092",\n kafka_topic="features.user_features",\n additional_options={\n "kafka.acks": "all",\n "kafka.retries": "3",\n "kafka.compression.type": "snappy"\n },\n kafka_num_batches=4 # Split into 4 parallel Kafka writes\n)\n'})}),"\n",(0,r.jsx)(n.h2,{id:"data-type-handling",children:"Data Type Handling"}),"\n",(0,r.jsx)(n.p,{children:"The client automatically handles the protobuf data type mappings:"}),"\n",(0,r.jsx)(n.h3,{id:"scalar-types",children:"Scalar Types"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Example DataFrame with different types\ndata = [\n ("user123", 25, 185.5, True, "premium"), # int, float, bool, string\n ("user456", 30, 170.0, False, "basic")\n]\ndf = spark.createDataFrame(data, ["user_id", "age", "height", "is_premium", "tier"])\n\n# Automatically mapped to protobuf:\n# age -> int32_values\n# height -> fp32_values \n# is_premium -> bool_values\n# tier -> string_values\n'})}),"\n",(0,r.jsx)(n.h3,{id:"vector-types",children:"Vector Types"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Example with vector/array features\nfrom pyspark.sql.functions import array, lit\n\ndf = spark.createDataFrame([\n ("user123", [0.1, 0.2, 0.3], ["tech", "sports"], [1, 2, 3])\n], ["user_id", "embeddings", "interests", "scores"])\n\n# Automatically mapped to protobuf vectors:\n# embeddings -> fp32_values in Vector\n# interests -> string_values in Vector\n# scores -> int32_values in Vector\n'})}),"\n",(0,r.jsx)(n.h2,{id:"production-pipeline-example",children:"Production Pipeline Example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'def run_feature_pipeline():\n """\n Complete feature pipeline from batch sources to Kafka\n """\n \n # 1. Initialize Spark\n spark = SparkSession.builder \\\n .appName("DailyFeaturePipeline") \\\n .config("spark.sql.adaptive.enabled", "true") \\\n .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0") \\\n .getOrCreate()\n \n try:\n # 2. Initialize feature client\n client = OnlineFeatureStorePyClient(\n features_metadata_source_url=os.getenv("METADATA_URL"),\n job_id=os.getenv("JOB_ID"),\n job_token=os.getenv("JOB_TOKEN")\n )\n \n # 3. Get feature configuration\n feature_mapping, default_values, entity_columns = client.get_features_details()\n \n # 4. Read and process data\n df = get_features_from_all_sources(spark, entity_columns, feature_mapping, default_values)\n \n if df is None or df.count() == 0:\n raise ValueError("No data found in sources")\n \n # 5. Convert to protobuf\n proto_df = client.generate_df_with_protobuf_messages(df, intra_batch_size=50)\n \n # 6. Publish to Kafka\n client.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers=os.getenv("KAFKA_BROKERS"),\n kafka_topic=os.getenv("KAFKA_TOPIC"),\n additional_options={\n "kafka.acks": "all",\n "kafka.compression.type": "snappy",\n "kafka.max.request.size": "10485760" # 10MB\n },\n kafka_num_batches=int(os.getenv("KAFKA_BATCHES", "4"))\n )\n \n print(f"\u2705 Successfully processed {df.count()} records")\n \n finally:\n spark.stop()\n\nif __name__ == "__main__":\n run_feature_pipeline()\n'})}),"\n",(0,r.jsx)(n.h2,{id:"configuration-options",children:"Configuration Options"}),"\n",(0,r.jsx)(n.h3,{id:"client-configuration",children:"Client Configuration"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'client = OnlineFeatureStorePyClient(\n features_metadata_source_url="https://api.example.com/metadata", # Required\n job_id="pipeline-job-001", # Required \n job_token="secret-token-123", # Required\n fgs_to_consider=["user_features", "item_features"] # Optional: filter feature groups\n)\n'})}),"\n",(0,r.jsx)(n.h3,{id:"protobuf-serialization-options",children:"Protobuf Serialization Options"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"proto_df = client.generate_df_with_protobuf_messages(\n df,\n intra_batch_size=20 # Records per protobuf message (default: 20)\n)\n"})}),"\n",(0,r.jsx)(n.h3,{id:"kafka-publishing-options",children:"Kafka Publishing Options"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'client.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers="localhost:9092",\n kafka_topic="features.topic",\n additional_options={\n "kafka.acks": "all", # Acknowledgment level\n "kafka.retries": "3", # Retry attempts\n "kafka.compression.type": "snappy", # Compression\n "kafka.batch.size": "16384", # Batch size\n "kafka.linger.ms": "100", # Batching delay\n "kafka.max.request.size": "10485760" # Max message size\n },\n kafka_num_batches=1 # Number of parallel Kafka writers (default: 1)\n)\n'})}),"\n",(0,r.jsx)(n.h2,{id:"performance-tuning",children:"Performance Tuning"}),"\n",(0,r.jsx)(n.h3,{id:"spark-optimizations",children:"Spark Optimizations"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'spark = SparkSession.builder \\\n .appName("FeaturePipeline") \\\n .config("spark.sql.adaptive.enabled", "true") \\\n .config("spark.sql.adaptive.coalescePartitions.enabled", "true") \\\n .config("spark.sql.adaptive.skewJoin.enabled", "true") \\\n .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") \\\n .getOrCreate()\n'})}),"\n",(0,r.jsx)(n.h3,{id:"memory-management",children:"Memory Management"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# For large datasets, consider:\ndf = df.repartition(200) # Optimal partition count\ndf.cache() # Cache if reused multiple times\n"})}),"\n",(0,r.jsx)(n.h3,{id:"kafka-throughput",children:"Kafka Throughput"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# For high-throughput scenarios:\nclient.write_protobuf_df_to_kafka(\n proto_df,\n kafka_bootstrap_servers="brokers",\n kafka_topic="topic", \n kafka_num_batches=8, # Increase parallel writers\n additional_options={\n "kafka.batch.size": "65536", # Larger batches\n "kafka.linger.ms": "100", # Allow batching delay\n "kafka.compression.type": "lz4" # Fast compression\n }\n)\n'})}),"\n",(0,r.jsx)(n.h2,{id:"monitoring--debugging",children:"Monitoring & Debugging"}),"\n",(0,r.jsx)(n.h3,{id:"dataframe-inspection",children:"DataFrame Inspection"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Check data before processing\nprint(f"Records: {df.count()}")\nprint(f"Columns: {df.columns}")\ndf.printSchema()\ndf.show(5)\n\n# Check protobuf output\nproto_df.show(5, truncate=False)\nprint(f"Protobuf messages: {proto_df.count()}")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"error-handling",children:"Error Handling"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'try:\n proto_df = client.generate_df_with_protobuf_messages(df)\n client.write_protobuf_df_to_kafka(proto_df, brokers, topic)\n \nexcept Exception as e:\n print(f"Pipeline failed: {e}")\n # Log to monitoring system\n # Send alerts\n raise\n'})}),"\n",(0,r.jsx)(n.h2,{id:"integration-with-other-sdks",children:"Integration with Other SDKs"}),"\n",(0,r.jsx)(n.h3,{id:"with-grpc-feature-client",children:"With gRPC Feature Client"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# Spark client pushes features to Kafka\nspark_client = OnlineFeatureStorePyClient(...)\nspark_client.write_protobuf_df_to_kafka(proto_df, brokers, topic)\n\n# gRPC client retrieves features in real-time\nfrom grpc_feature_client import GRPCFeatureClient\ngrpc_client = GRPCFeatureClient(config)\nfeatures = grpc_client.retrieve_decoded_features(...)\n"})}),"\n",(0,r.jsx)(n.h3,{id:"with-http-feature-client-bharatml_common",children:"With HTTP Feature Client (bharatml_common)"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# Use HTTP client for metadata validation\nfrom bharatml_common import HTTPFeatureClient\nhttp_client = HTTPFeatureClient(base_url, job_id, token)\nmetadata = http_client.get_feature_metadata()\n\n# Validate feature names using shared utilities\nfrom bharatml_common import clean_column_name\nclean_features = [clean_column_name(name) for name in feature_names]\n\n# Process with Spark client\nspark_client.generate_df_with_protobuf_messages(df)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"common-use-cases",children:"Common Use Cases"}),"\n",(0,r.jsx)(n.h3,{id:"1-daily-batch-etl",children:"1. Daily Batch ETL"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# Cron job: 0 2 * * * (daily at 2 AM)\nspark-submit \\\n --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0 \\\n --conf spark.sql.adaptive.enabled=true \\\n daily_feature_pipeline.py\n"})}),"\n",(0,r.jsx)(n.h3,{id:"2-historical-backfill",children:"2. Historical Backfill"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Backfill last 30 days\nfrom datetime import datetime, timedelta\n\nfor i in range(30):\n date = datetime.now() - timedelta(days=i)\n df = spark.sql(f"""\n SELECT * FROM features \n WHERE date = \'{date.strftime(\'%Y-%m-%d\')}\'\n """)\n \n proto_df = client.generate_df_with_protobuf_messages(df)\n client.write_protobuf_df_to_kafka(proto_df, brokers, f"backfill.{date.strftime(\'%Y%m%d\')}")\n'})}),"\n",(0,r.jsx)(n.h3,{id:"3-real-time-streaming-advanced",children:"3. Real-time Streaming (Advanced)"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Read from streaming source, process, and publish\nstreaming_df = spark.readStream \\\n .format("kafka") \\\n .option("kafka.bootstrap.servers", input_brokers) \\\n .option("subscribe", input_topic) \\\n .load()\n\n# Process streaming DataFrame\nprocessed_df = streaming_df.select(...)\n\n# Write to output Kafka (requires structured streaming)\nquery = processed_df.writeStream \\\n .format("kafka") \\\n .option("kafka.bootstrap.servers", output_brokers) \\\n .option("topic", output_topic) \\\n .start()\n'})}),"\n",(0,r.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,r.jsx)(n.h3,{id:"common-issues",children:"Common Issues"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"OutOfMemoryError"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Increase driver memory or reduce partition size\nspark.conf.set("spark.sql.adaptive.coalescePartitions.minPartitionNum", "50")\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Kafka Connection Timeout"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Check network connectivity and broker addresses\nadditional_options = {\n "kafka.request.timeout.ms": "60000",\n "kafka.session.timeout.ms": "30000"\n}\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Protobuf Serialization Errors"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'# Check data types and null values\ndf = df.fillna({"string_col": "", "numeric_col": 0})\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Metadata API Errors"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# Verify job_id, job_token, and URL\n# Check API server logs\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"debug-mode",children:"Debug Mode"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'import logging\nlogging.basicConfig(level=logging.DEBUG)\n\n# Enable Spark SQL logging\nspark.sparkContext.setLogLevel("INFO")\n'})}),"\n",(0,r.jsx)(n.h2,{id:"migration-from-legacy-clients",children:"Migration from Legacy Clients"}),"\n",(0,r.jsx)(n.p,{children:"If migrating from older versions:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"# Old import\n# from online_feature_store_py_client import OnlineFeatureStorePyClient\n\n# New import (same interface)\nfrom spark_feature_push_client import OnlineFeatureStorePyClient\n\n# API remains the same - no code changes needed!\n"})}),"\n",(0,r.jsx)(n.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Resource Management"}),": Always stop Spark sessions"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Error Handling"}),": Implement proper exception handling and retries"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Monitoring"}),": Add metrics and logging to your pipelines"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Testing"}),": Test with sample data before production runs"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Security"}),": Use secure Kafka configurations in production"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Performance"}),": Monitor Spark UI for optimization opportunities"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The Spark Feature Push Client is your gateway from batch data sources to the real-time online feature store! \ud83d\ude80"}),"\n",(0,r.jsx)(n.h2,{id:"contributing-1",children:"Contributing"}),"\n",(0,r.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,r.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\ud83d\udcac ",(0,r.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,r.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,r.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,r.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,r.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,r.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"license-1",children:"License"}),"\n",(0,r.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,r.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,r.jsx)("div",{align:"center",children:(0,r.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,n,a)=>{a.d(n,{R:()=>s,x:()=>o});var t=a(6540);const r={},i=t.createContext(r);function s(e){const n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/adb039a4.c0c263a3.js b/docs/assets/js/adb039a4.c0c263a3.js new file mode 100644 index 00000000..e0723da8 --- /dev/null +++ b/docs/assets/js/adb039a4.c0c263a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7609],{926:a=>{a.exports=JSON.parse('{"tag":{"label":"llm","permalink":"/BharatMLStack/blog/tags/llm","allTagsPath":"/BharatMLStack/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/llm","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/be9e6e2d.944ea2f0.js b/docs/assets/js/be9e6e2d.944ea2f0.js new file mode 100644 index 00000000..1c4c7230 --- /dev/null +++ b/docs/assets/js/be9e6e2d.944ea2f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7871],{3405:a=>{a.exports=JSON.parse('{"tag":{"label":"embedding-search","permalink":"/BharatMLStack/blog/tags/embedding-search","allTagsPath":"/BharatMLStack/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/BharatMLStack/blog/tags/embedding-search","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/c4822c4f.9fe3ec4e.js b/docs/assets/js/c4822c4f.c80625fe.js similarity index 98% rename from docs/assets/js/c4822c4f.9fe3ec4e.js rename to docs/assets/js/c4822c4f.c80625fe.js index bf79f6f5..8c408293 100644 --- a/docs/assets/js/c4822c4f.9fe3ec4e.js +++ b/docs/assets/js/c4822c4f.c80625fe.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1915],{3649:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"online-feature-store/v1.0.0/functionalities","title":"Key Functionalities","description":"Overview","source":"@site/docs/online-feature-store/v1.0.0/functionalities.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/functionalities","permalink":"/BharatMLStack/online-feature-store/v1.0.0/functionalities","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/functionalities.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"Key Functionalities","sidebar_position":4},"sidebar":"tutorialSidebar","previous":{"title":"Benchmarks","permalink":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks"},"next":{"title":"Release Notes","permalink":"/BharatMLStack/online-feature-store/v1.0.0/release-notes"}}');var s=r(4848),t=r(8453);const l={title:"Key Functionalities",sidebar_position:4},o="Online Feature Store - Key Functionalities",a={},c=[{value:"Overview",id:"overview",level:2},{value:"\ud83d\ude80 Core Capabilities",id:"-core-capabilities",level:2},{value:"<strong>Real-Time Feature Serving</strong>",id:"real-time-feature-serving",level:3},{value:"<strong>Multi-Format Data Support</strong>",id:"multi-format-data-support",level:3},{value:"<strong>Multi-Database Backend</strong>",id:"multi-database-backend",level:3},{value:"\ud83c\udfaf Key Features",id:"-key-features",level:2},{value:"<strong>Performance Optimizations</strong>",id:"performance-optimizations",level:3},{value:"<strong>Data Management</strong>",id:"data-management",level:3},{value:"<strong>Developer Experience</strong>",id:"developer-experience",level:3},{value:"<strong>Production Ready</strong>",id:"production-ready",level:3},{value:"\ud83d\udcca Use Cases",id:"-use-cases",level:2},{value:"<strong>Real-Time ML Inference</strong>",id:"real-time-ml-inference",level:3},{value:"<strong>Batch Feature Serving</strong>",id:"batch-feature-serving",level:3},{value:"<strong>A/B Testing Support</strong>",id:"ab-testing-support",level:3},{value:"\ud83c\udf9b\ufe0f Configuration Options",id:"\ufe0f-configuration-options",level:2},{value:"<strong>Performance Tuning</strong>",id:"performance-tuning",level:3},{value:"<strong>Storage Configuration</strong>",id:"storage-configuration",level:3},{value:"<strong>Monitoring & Observability</strong>",id:"monitoring--observability",level:3},{value:"\ud83d\udcc8 Production Deployment",id:"-production-deployment",level:2},{value:"<strong>Recommended Architecture</strong>",id:"recommended-architecture",level:3},{value:"<strong>Scaling Guidelines</strong>",id:"scaling-guidelines",level:3},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"online-feature-store---key-functionalities",children:"Online Feature Store - Key Functionalities"})}),"\n",(0,s.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,s.jsxs)(n.p,{children:["The BharatML Online Feature Store is a high-performance, production-ready system designed to serve machine learning features with ",(0,s.jsx)(n.strong,{children:"sub-10ms P99 latency"})," and ",(0,s.jsx)(n.strong,{children:"1M+ RPS capacity"}),". It bridges the gap between offline feature engineering and real-time model inference."]}),"\n",(0,s.jsx)(n.h2,{id:"-core-capabilities",children:"\ud83d\ude80 Core Capabilities"}),"\n",(0,s.jsx)(n.h3,{id:"real-time-feature-serving",children:(0,s.jsx)(n.strong,{children:"Real-Time Feature Serving"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Ultra-Low Latency"}),": Sub-10ms P99 response times"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"High Throughput"}),": Tested at 1M+ requests per second with 100 IDs per request"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Batch Retrieval"}),": Fetch multiple features for multiple entities in a single request"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Point-in-Time Consistency"}),": Ensure feature consistency across model predictions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dependent feature consistency"}),": features part of same feature group."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"multi-format-data-support",children:(0,s.jsx)(n.strong,{children:"Multi-Format Data Support"})}),"\n",(0,s.jsx)(n.p,{children:"Supports all common ML data types with optimized serialization:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Data Type"}),(0,s.jsx)(n.th,{children:"Support"}),(0,s.jsx)(n.th,{children:"Use Cases"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Integers"})}),(0,s.jsx)(n.td,{children:"int8, int16, int32, int64"}),(0,s.jsx)(n.td,{children:"User IDs, counts, categorical encodings"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Floats"})}),(0,s.jsx)(n.td,{children:"float16, float32, float64"}),(0,s.jsx)(n.td,{children:"Continuous features, embeddings, scores"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Strings"})}),(0,s.jsx)(n.td,{children:"Variable length"}),(0,s.jsx)(n.td,{children:"Categories, text features, metadata"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Booleans"})}),(0,s.jsx)(n.td,{children:"Bit-packed"}),(0,s.jsx)(n.td,{children:"Feature flags, binary indicators"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Vectors"})}),(0,s.jsx)(n.td,{children:"All above types"}),(0,s.jsx)(n.td,{children:"Embeddings, feature arrays, time series"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"multi-database-backend",children:(0,s.jsx)(n.strong,{children:"Multi-Database Backend"})}),"\n",(0,s.jsx)(n.p,{children:"Flexible storage options for different deployment needs:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\ud83d\udd25 Scylla DB"}),": Ultra-high performance NoSQL (recommended for production)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\u26a1 Dragonfly"}),": Modern Redis alternative with better memory efficiency"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\ud83d\udcca Redis"}),": Standard in-memory store for development and small-scale deployments"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"-key-features",children:"\ud83c\udfaf Key Features"}),"\n",(0,s.jsx)(n.h3,{id:"performance-optimizations",children:(0,s.jsx)(n.strong,{children:"Performance Optimizations"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Custom PSDB Format"}),": Proprietary serialization format optimized for ML features"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Object Pooling"}),": Memory-efficient resource reuse"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Connection Pooling"}),": Optimized database connection management"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Compression Support"}),": Multiple algorithms (LZ4, Snappy, ZSTD) with intelligent fallback"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"data-management",children:(0,s.jsx)(n.strong,{children:"Data Management"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"TTL Support"}),": Automatic feature expiration with configurable time-to-live"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Versioning"}),": Multiple feature schema versions with backward compatibility"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Batch Operations"}),": Efficient bulk read/write operations"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Groups"}),": Logical grouping of related features for better organization"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"developer-experience",children:(0,s.jsx)(n.strong,{children:"Developer Experience"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"gRPC API"}),": High-performance, language-agnostic interface"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Go SDK"}),": Native Go client with connection pooling and error handling"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Python SDK"}),": ML-friendly Python bindings for data scientists"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESTful Interface"}),": HTTP API for health check"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"production-ready",children:(0,s.jsx)(n.strong,{children:"Production Ready"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Health Checks"}),": Built-in monitoring and health endpoints"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Metrics Integration"}),": DataDog, Prometheus-compatible metrics"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Structured Logging"}),": JSON-formatted logs with configurable levels"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Graceful Shutdown"}),": Clean resource cleanup on termination"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"-use-cases",children:"\ud83d\udcca Use Cases"}),"\n",(0,s.jsx)(n.h3,{id:"real-time-ml-inference",children:(0,s.jsx)(n.strong,{children:"Real-Time ML Inference"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-go",children:'// Fetch user features for recommendation model\nquery := &onfs.Query{\n EntityLabel: "user",\n FeatureGroups: []onfs.FeatureGroup{\n {\n Label: "demographics",\n FeatureLabels: []string{"age", "location", "income"},\n },\n {\n Label: "behavior", \n FeatureLabels: []string{"click_rate", "purchase_history"},\n },\n },\n KeysSchema: []string{"user_id"},\n Keys: []onfs.Keys{\n {Cols: []string{"user_123"}},\n },\n}\n\nresult, err := client.RetrieveFeatures(ctx, query)\n'})}),"\n",(0,s.jsx)(n.h3,{id:"batch-feature-serving",children:(0,s.jsx)(n.strong,{children:"Batch Feature Serving"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-go",children:'// Bulk feature retrieval for model training\nquery := &onfs.Query{\n EntityLabel: "transaction",\n FeatureGroups: []onfs.FeatureGroup{\n {\n Label: "transaction_history",\n FeatureLabels: []string{"amount", "frequency", "merchant_type"},\n },\n {\n Label: "risk_scores",\n FeatureLabels: []string{"fraud_score", "credit_score"},\n },\n },\n KeysSchema: []string{"transaction_id"},\n Keys: []onfs.Keys{\n {Cols: []string{"txn_001"}},\n {Cols: []string{"txn_002"}},\n // ... 100s of transaction IDs\n },\n}\n\nresult, err := client.RetrieveFeatures(ctx, query)\n'})}),"\n",(0,s.jsx)(n.h3,{id:"ab-testing-support",children:(0,s.jsx)(n.strong,{children:"A/B Testing Support"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-go",children:'// Version-aware feature retrieval with decoded values\nquery := &onfs.Query{\n EntityLabel: "experiment",\n FeatureGroups: []onfs.FeatureGroup{\n {\n Label: "model_features_v2", // Specific version\n FeatureLabels: []string{"feature_a", "feature_b", "feature_c"},\n },\n },\n KeysSchema: []string{"user_id"},\n Keys: []onfs.Keys{\n {Cols: []string{"user_123"}},\n },\n}\n\n// Get string-decoded values for easier debugging/analysis\ndecodedResult, err := client.RetrieveDecodedFeatures(ctx, query)\n'})}),"\n",(0,s.jsx)(n.h2,{id:"\ufe0f-configuration-options",children:"\ud83c\udf9b\ufe0f Configuration Options"}),"\n",(0,s.jsx)(n.h3,{id:"performance-tuning",children:(0,s.jsx)(n.strong,{children:"Performance Tuning"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cache TTL"}),": Configure feature freshness requirements"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"storage-configuration",children:(0,s.jsx)(n.strong,{children:"Storage Configuration"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Database Selection"}),": Choose backend based on scale and requirements"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Replication Factor"}),": RF=2 for ScyllaDB"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Partition Strategy"}),": DB side control - not handled here"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Backup Frequency"}),": DB side control - not handled here"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"monitoring--observability",children:(0,s.jsx)(n.strong,{children:"Monitoring & Observability"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Metrics Collection"}),": Request rates, latencies, error rates"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Custom Dashboards"}),": Feature-specific monitoring views"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"-production-deployment",children:"\ud83d\udcc8 Production Deployment"}),"\n",(0,s.jsx)(n.h3,{id:"recommended-architecture",children:(0,s.jsx)(n.strong,{children:"Recommended Architecture"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Load Balancer"}),": Distribute traffic across multiple instances"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Store Cluster"}),": 3+ instances for high availability"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Database Cluster"}),": Replicated backend with automatic failover"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Monitoring Stack"}),": Metrics, logs, and alerting infrastructure"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"scaling-guidelines",children:(0,s.jsx)(n.strong,{children:"Scaling Guidelines"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Horizontal Scaling"}),": Add more feature store instances"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Database Scaling"}),": Increase partition count or upgrade hardware"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dragonfly/Remote Cache Scaling"}),": Use Cluster or Failover/Sentinal based setup"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Connection Tuning"}),": Optimize pool sizes for your traffic patterns"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,s.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,s.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\ud83d\udcac ",(0,s.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,s.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,s.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,s.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,s.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,s.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>o});var i=r(6540);const s={},t=i.createContext(s);function l(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1915],{3649:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"online-feature-store/v1.0.0/functionalities","title":"Key Functionalities","description":"Overview","source":"@site/docs/online-feature-store/v1.0.0/functionalities.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/functionalities","permalink":"/BharatMLStack/online-feature-store/v1.0.0/functionalities","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/functionalities.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"Key Functionalities","sidebar_position":4},"sidebar":"tutorialSidebar","previous":{"title":"Benchmarks","permalink":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks"},"next":{"title":"Release Notes","permalink":"/BharatMLStack/online-feature-store/v1.0.0/release-notes"}}');var s=r(4848),t=r(8453);const l={title:"Key Functionalities",sidebar_position:4},o="Online Feature Store - Key Functionalities",a={},c=[{value:"Overview",id:"overview",level:2},{value:"\ud83d\ude80 Core Capabilities",id:"-core-capabilities",level:2},{value:"<strong>Real-Time Feature Serving</strong>",id:"real-time-feature-serving",level:3},{value:"<strong>Multi-Format Data Support</strong>",id:"multi-format-data-support",level:3},{value:"<strong>Multi-Database Backend</strong>",id:"multi-database-backend",level:3},{value:"\ud83c\udfaf Key Features",id:"-key-features",level:2},{value:"<strong>Performance Optimizations</strong>",id:"performance-optimizations",level:3},{value:"<strong>Data Management</strong>",id:"data-management",level:3},{value:"<strong>Developer Experience</strong>",id:"developer-experience",level:3},{value:"<strong>Production Ready</strong>",id:"production-ready",level:3},{value:"\ud83d\udcca Use Cases",id:"-use-cases",level:2},{value:"<strong>Real-Time ML Inference</strong>",id:"real-time-ml-inference",level:3},{value:"<strong>Batch Feature Serving</strong>",id:"batch-feature-serving",level:3},{value:"<strong>A/B Testing Support</strong>",id:"ab-testing-support",level:3},{value:"\ud83c\udf9b\ufe0f Configuration Options",id:"\ufe0f-configuration-options",level:2},{value:"<strong>Performance Tuning</strong>",id:"performance-tuning",level:3},{value:"<strong>Storage Configuration</strong>",id:"storage-configuration",level:3},{value:"<strong>Monitoring & Observability</strong>",id:"monitoring--observability",level:3},{value:"\ud83d\udcc8 Production Deployment",id:"-production-deployment",level:2},{value:"<strong>Recommended Architecture</strong>",id:"recommended-architecture",level:3},{value:"<strong>Scaling Guidelines</strong>",id:"scaling-guidelines",level:3},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"online-feature-store---key-functionalities",children:"Online Feature Store - Key Functionalities"})}),"\n",(0,s.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,s.jsxs)(n.p,{children:["The BharatML Online Feature Store is a high-performance, production-ready system designed to serve machine learning features with ",(0,s.jsx)(n.strong,{children:"sub-10ms P99 latency"})," and ",(0,s.jsx)(n.strong,{children:"1M+ RPS capacity"}),". It bridges the gap between offline feature engineering and real-time model inference."]}),"\n",(0,s.jsx)(n.h2,{id:"-core-capabilities",children:"\ud83d\ude80 Core Capabilities"}),"\n",(0,s.jsx)(n.h3,{id:"real-time-feature-serving",children:(0,s.jsx)(n.strong,{children:"Real-Time Feature Serving"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Ultra-Low Latency"}),": Sub-10ms P99 response times"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"High Throughput"}),": Tested at 1M+ requests per second with 100 IDs per request"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Batch Retrieval"}),": Fetch multiple features for multiple entities in a single request"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Point-in-Time Consistency"}),": Ensure feature consistency across model predictions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dependent feature consistency"}),": features part of same feature group."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"multi-format-data-support",children:(0,s.jsx)(n.strong,{children:"Multi-Format Data Support"})}),"\n",(0,s.jsx)(n.p,{children:"Supports all common ML data types with optimized serialization:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Data Type"}),(0,s.jsx)(n.th,{children:"Support"}),(0,s.jsx)(n.th,{children:"Use Cases"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Integers"})}),(0,s.jsx)(n.td,{children:"int8, int16, int32, int64"}),(0,s.jsx)(n.td,{children:"User IDs, counts, categorical encodings"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Floats"})}),(0,s.jsx)(n.td,{children:"float16, float32, float64"}),(0,s.jsx)(n.td,{children:"Continuous features, embeddings, scores"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Strings"})}),(0,s.jsx)(n.td,{children:"Variable length"}),(0,s.jsx)(n.td,{children:"Categories, text features, metadata"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Booleans"})}),(0,s.jsx)(n.td,{children:"Bit-packed"}),(0,s.jsx)(n.td,{children:"Feature flags, binary indicators"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Vectors"})}),(0,s.jsx)(n.td,{children:"All above types"}),(0,s.jsx)(n.td,{children:"Embeddings, feature arrays, time series"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"multi-database-backend",children:(0,s.jsx)(n.strong,{children:"Multi-Database Backend"})}),"\n",(0,s.jsx)(n.p,{children:"Flexible storage options for different deployment needs:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\ud83d\udd25 Scylla DB"}),": Ultra-high performance NoSQL (recommended for production)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\u26a1 Dragonfly"}),": Modern Redis alternative with better memory efficiency"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"\ud83d\udcca Redis"}),": Standard in-memory store for development and small-scale deployments"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"-key-features",children:"\ud83c\udfaf Key Features"}),"\n",(0,s.jsx)(n.h3,{id:"performance-optimizations",children:(0,s.jsx)(n.strong,{children:"Performance Optimizations"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Custom PSDB Format"}),": Proprietary serialization format optimized for ML features"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Object Pooling"}),": Memory-efficient resource reuse"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Connection Pooling"}),": Optimized database connection management"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Compression Support"}),": Multiple algorithms (LZ4, Snappy, ZSTD) with intelligent fallback"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"data-management",children:(0,s.jsx)(n.strong,{children:"Data Management"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"TTL Support"}),": Automatic feature expiration with configurable time-to-live"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Versioning"}),": Multiple feature schema versions with backward compatibility"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Batch Operations"}),": Efficient bulk read/write operations"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Groups"}),": Logical grouping of related features for better organization"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"developer-experience",children:(0,s.jsx)(n.strong,{children:"Developer Experience"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"gRPC API"}),": High-performance, language-agnostic interface"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Go SDK"}),": Native Go client with connection pooling and error handling"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Python SDK"}),": ML-friendly Python bindings for data scientists"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESTful Interface"}),": HTTP API for health check"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"production-ready",children:(0,s.jsx)(n.strong,{children:"Production Ready"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Health Checks"}),": Built-in monitoring and health endpoints"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Metrics Integration"}),": DataDog, Prometheus-compatible metrics"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Structured Logging"}),": JSON-formatted logs with configurable levels"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Graceful Shutdown"}),": Clean resource cleanup on termination"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"-use-cases",children:"\ud83d\udcca Use Cases"}),"\n",(0,s.jsx)(n.h3,{id:"real-time-ml-inference",children:(0,s.jsx)(n.strong,{children:"Real-Time ML Inference"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-go",children:'// Fetch user features for recommendation model\nquery := &onfs.Query{\n EntityLabel: "user",\n FeatureGroups: []onfs.FeatureGroup{\n {\n Label: "demographics",\n FeatureLabels: []string{"age", "location", "income"},\n },\n {\n Label: "behavior", \n FeatureLabels: []string{"click_rate", "purchase_history"},\n },\n },\n KeysSchema: []string{"user_id"},\n Keys: []onfs.Keys{\n {Cols: []string{"user_123"}},\n },\n}\n\nresult, err := client.RetrieveFeatures(ctx, query)\n'})}),"\n",(0,s.jsx)(n.h3,{id:"batch-feature-serving",children:(0,s.jsx)(n.strong,{children:"Batch Feature Serving"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-go",children:'// Bulk feature retrieval for model training\nquery := &onfs.Query{\n EntityLabel: "transaction",\n FeatureGroups: []onfs.FeatureGroup{\n {\n Label: "transaction_history",\n FeatureLabels: []string{"amount", "frequency", "merchant_type"},\n },\n {\n Label: "risk_scores",\n FeatureLabels: []string{"fraud_score", "credit_score"},\n },\n },\n KeysSchema: []string{"transaction_id"},\n Keys: []onfs.Keys{\n {Cols: []string{"txn_001"}},\n {Cols: []string{"txn_002"}},\n // ... 100s of transaction IDs\n },\n}\n\nresult, err := client.RetrieveFeatures(ctx, query)\n'})}),"\n",(0,s.jsx)(n.h3,{id:"ab-testing-support",children:(0,s.jsx)(n.strong,{children:"A/B Testing Support"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-go",children:'// Version-aware feature retrieval with decoded values\nquery := &onfs.Query{\n EntityLabel: "experiment",\n FeatureGroups: []onfs.FeatureGroup{\n {\n Label: "model_features_v2", // Specific version\n FeatureLabels: []string{"feature_a", "feature_b", "feature_c"},\n },\n },\n KeysSchema: []string{"user_id"},\n Keys: []onfs.Keys{\n {Cols: []string{"user_123"}},\n },\n}\n\n// Get string-decoded values for easier debugging/analysis\ndecodedResult, err := client.RetrieveDecodedFeatures(ctx, query)\n'})}),"\n",(0,s.jsx)(n.h2,{id:"\ufe0f-configuration-options",children:"\ud83c\udf9b\ufe0f Configuration Options"}),"\n",(0,s.jsx)(n.h3,{id:"performance-tuning",children:(0,s.jsx)(n.strong,{children:"Performance Tuning"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cache TTL"}),": Configure feature freshness requirements"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"storage-configuration",children:(0,s.jsx)(n.strong,{children:"Storage Configuration"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Database Selection"}),": Choose backend based on scale and requirements"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Replication Factor"}),": RF=2 for ScyllaDB"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Partition Strategy"}),": DB side control - not handled here"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Backup Frequency"}),": DB side control - not handled here"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"monitoring--observability",children:(0,s.jsx)(n.strong,{children:"Monitoring & Observability"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Metrics Collection"}),": Request rates, latencies, error rates"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Custom Dashboards"}),": Feature-specific monitoring views"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"-production-deployment",children:"\ud83d\udcc8 Production Deployment"}),"\n",(0,s.jsx)(n.h3,{id:"recommended-architecture",children:(0,s.jsx)(n.strong,{children:"Recommended Architecture"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Load Balancer"}),": Distribute traffic across multiple instances"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Store Cluster"}),": 3+ instances for high availability"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Database Cluster"}),": Replicated backend with automatic failover"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Monitoring Stack"}),": Metrics, logs, and alerting infrastructure"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"scaling-guidelines",children:(0,s.jsx)(n.strong,{children:"Scaling Guidelines"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Horizontal Scaling"}),": Add more feature store instances"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Database Scaling"}),": Increase partition count or upgrade hardware"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Dragonfly/Remote Cache Scaling"}),": Use Cluster or Failover/Sentinal based setup"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Connection Tuning"}),": Optimize pool sizes for your traffic patterns"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,s.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,s.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\ud83d\udcac ",(0,s.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,s.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,s.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,s.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,s.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,s.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,s.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,s.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,s.jsx)("div",{align:"center",children:(0,s.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>o});var i=r(6540);const s={},t=i.createContext(s);function l(e){const n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/c4f5d8e4.41d5b3c8.js b/docs/assets/js/c4f5d8e4.41d5b3c8.js new file mode 100644 index 00000000..69b0d45b --- /dev/null +++ b/docs/assets/js/c4f5d8e4.41d5b3c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2634],{6467:(e,i,t)=>{t.r(i),t.d(i,{default:()=>M});var s=t(4164),r=t(8774),n=t(4586),a=t(6025),o=t(1656),c=t(1107);const l={features:"features_t9lD",featureSvg:"featureSvg_GfXr",featuresHeader:"featuresHeader_qR2i",featuresSubtitle:"featuresSubtitle_VdGe","bharatml-card":"bharatml-card_xZ6l","bharatml-icon":"bharatml-icon_XBoJ",featureDescription:"featureDescription_sP1D"};var d=t(4848);const h=[{title:"High-Performance Feature Store",icon:"\ud83d\ude80",description:(0,d.jsx)(d.Fragment,{children:"Sub-10ms P99 latency and 1M+ RPS capacity. Built for real-time ML inference with custom PSDB serialization format that outperforms Protocol Buffers and Apache Arrow."})},{title:"Production-Ready ML Infrastructure",icon:"\u26a1",description:(0,d.jsx)(d.Fragment,{children:"Multi-database backends (Scylla, Dragonfly, Redis), comprehensive monitoring, and enterprise-grade features. Deploy with confidence using battle-tested components."})},{title:"Developer-First Experience",icon:"\ud83d\udee0\ufe0f",description:(0,d.jsx)(d.Fragment,{children:"Multi-language SDKs (Go, Python), gRPC APIs, and extensive documentation. From data scientists, ML engineers to backend engineers, everyone gets tools they love."})}],u=[{title:"Feature Catalog & Management",icon:"\ud83d\udccb",description:(0,d.jsx)(d.Fragment,{children:"Comprehensive feature catalog with metadata management, versioning, and governance. Organize and discover features across your ML platform with ease."})},{title:"User Management & Admin Ops",icon:"\ud83d\udc65",description:(0,d.jsx)(d.Fragment,{children:"Role-based access control, user authentication, and administrative operations. Secure your ML platform with enterprise-grade user management capabilities."})},{title:"Modern UI Framework",icon:"\ud83c\udfa8",description:(0,d.jsx)(d.Fragment,{children:"Intuitive, responsive web interface built with modern web technologies. Streamline MLOps workflows with beautiful and functional user experiences."})}],m=[{title:"Multi-Language Support",icon:"\ud83c\udf10",description:(0,d.jsx)(d.Fragment,{children:"Native SDKs for Go and Python with idiomatic APIs. Choose the language that fits your team's expertise and existing infrastructure."})},{title:"gRPC & REST APIs",icon:"\ud83d\udd17",description:(0,d.jsx)(d.Fragment,{children:"High-performance gRPC clients and REST APIs for seamless integration. Built-in support for streaming, batching, and async operations."})},{title:"Spark Integration",icon:"\u26a1",description:(0,d.jsx)(d.Fragment,{children:"Native Apache Spark integration for batch feature processing and ingestion. Scale your feature engineering workflows with distributed computing power."})}];function x({icon:e,title:i,description:t}){return(0,d.jsxs)("div",{className:(0,s.A)("col col--4"),children:[(0,d.jsx)("div",{className:"text--center",children:(0,d.jsx)("div",{className:"bharatml-icon",children:e})}),(0,d.jsxs)("div",{className:"text--center padding-horiz--md bharatml-card",children:[(0,d.jsx)(c.A,{as:"h3",children:i}),(0,d.jsx)("p",{className:l.featureDescription,children:t})]})]})}function p({title:e,subtitle:i,features:t}){return(0,d.jsx)("section",{className:l.features,children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsxs)("div",{className:"text--center margin-bottom--xl",children:[(0,d.jsx)(c.A,{as:"h2",className:l.featuresHeader,children:e}),(0,d.jsx)("p",{className:l.featuresSubtitle,children:i})]}),(0,d.jsx)("div",{className:"row",children:t.map((e,i)=>(0,d.jsx)(x,{...e},i))})]})})}function g(){return(0,d.jsx)(p,{title:"Online Feature Store",subtitle:"High-performance, production-ready feature serving for real-time ML inference",features:h})}function f(){return(0,d.jsx)(p,{title:"Trufflebox UI",subtitle:"Modern, feature-rich UI framework for comprehensive MLOps management",features:u})}function j(){return(0,d.jsx)(p,{title:"SDKs",subtitle:"Developer-friendly client libraries and APIs for seamless platform integration",features:m})}const b={heroBanner:"heroBanner_qdFl",logoContainer:"logoContainer_xdaK",heroLogo:"heroLogo_U6bI",buttons:"buttons_AeoN",statsContainer:"statsContainer_KpvY",statItem:"statItem_bwiZ",aboutSection:"aboutSection_udvw",highlightBox:"highlightBox_Uhe8"};function v(){const{siteConfig:e}=(0,n.A)();return(0,d.jsx)("header",{className:(0,s.A)("hero bharatml-hero",b.heroBanner),children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsx)("div",{className:b.logoContainer,children:(0,d.jsx)("img",{src:(0,a.Ay)("/img/logo.svg"),alt:"BharatMLStack Logo",className:b.heroLogo})}),(0,d.jsxs)(c.A,{as:"h1",className:"hero__title",children:["Welcome to ",e.title]}),(0,d.jsx)("p",{className:"hero__subtitle",children:"Open source, end-to-end ML infrastructure stack built for scale, speed, and simplicity."}),(0,d.jsxs)("div",{className:b.buttons,children:[(0,d.jsx)(r.A,{className:"button button--secondary button--lg margin-right--md bharatml-button",to:"/category/online-feature-store",children:"\ud83d\udcda Get Started"}),(0,d.jsx)(r.A,{className:"button button--outline button--secondary button--lg",href:"https://github.com/Meesho/BharatMLStack",target:"_blank",children:"\u2b50 Star on GitHub"})]}),(0,d.jsxs)("div",{className:b.statsContainer,children:[(0,d.jsxs)("div",{className:b.statItem,children:[(0,d.jsx)("strong",{children:"Sub-10ms"}),(0,d.jsx)("span",{children:"P99 Latency"})]}),(0,d.jsxs)("div",{className:b.statItem,children:[(0,d.jsx)("strong",{children:"1M+ RPS"}),(0,d.jsx)("span",{children:"Tested Capacity"})]}),(0,d.jsxs)("div",{className:b.statItem,children:[(0,d.jsx)("strong",{children:"Multi-DB"}),(0,d.jsx)("span",{children:"Support"})]})]})]})})}function N(){return(0,d.jsx)("section",{className:b.aboutSection,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--6",children:[(0,d.jsx)(c.A,{as:"h2",children:"Built for India's Scale"}),(0,d.jsx)("p",{children:"BharatMLStack is a comprehensive, production-ready machine learning infrastructure platform designed to democratize ML capabilities across India and beyond. Our mission is to provide a robust, scalable, and accessible ML stack that empowers organizations to build, deploy, and manage machine learning solutions at massive scale."}),(0,d.jsx)(r.A,{className:"button button--primary",to:"/category/online-feature-store",children:"Explore Online Feature Store \u2192"})]}),(0,d.jsx)("div",{className:"col col--6",children:(0,d.jsxs)("div",{className:b.highlightBox,children:[(0,d.jsx)("h3",{children:"\ud83c\udfc6 Key Achievements"}),(0,d.jsxs)("ul",{children:[(0,d.jsx)("li",{children:"\u2705 Sub-10ms P99 latency for real-time inference"}),(0,d.jsx)("li",{children:"\u2705 1M+ RPS tested with 100 IDs per request"}),(0,d.jsx)("li",{children:"\u2705 PSDB format outperforms Proto3 & Arrow"}),(0,d.jsx)("li",{children:"\u2705 Multi-database: Scylla, Dragonfly, Redis"}),(0,d.jsx)("li",{children:"\u2705 Production-ready with comprehensive monitoring"})]})]})})]})})})}function y(){return(0,d.jsx)("section",{className:b.aboutSection,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--6",children:[(0,d.jsx)(c.A,{as:"h2",children:"Modern MLOps Management"}),(0,d.jsx)("p",{children:"Trufflebox UI provides a comprehensive, modern web interface for managing your entire ML infrastructure. Built with cutting-edge web technologies, it delivers an intuitive experience for feature management, user administration, and operational oversight. Streamline your MLOps workflows with enterprise-grade UI components."}),(0,d.jsx)(r.A,{className:"button button--primary",to:"/category/trufflebox-ui",children:"Explore Trufflebox UI \u2192"})]}),(0,d.jsx)("div",{className:"col col--6",children:(0,d.jsxs)("div",{className:b.highlightBox,children:[(0,d.jsx)("h3",{children:"\ud83c\udfa8 UI Features"}),(0,d.jsxs)("ul",{children:[(0,d.jsx)("li",{children:"\u2705 Comprehensive feature catalog & discovery"}),(0,d.jsx)("li",{children:"\u2705 Role-based access control & user management"}),(0,d.jsx)("li",{children:"\u2705 Job, Store, Admin Ops management"}),(0,d.jsx)("li",{children:"\u2705 Approval flow for everything"}),(0,d.jsx)("li",{children:"\u2705 Responsive design for desktop & mobile"})]})]})})]})})})}function S(){return(0,d.jsx)("section",{className:b.aboutSection,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--6",children:[(0,d.jsx)(c.A,{as:"h2",children:"Developer-First Integration"}),(0,d.jsx)("p",{children:"Our SDKs are designed with developers in mind, providing idiomatic APIs for Go and Python that feel natural in your existing codebase. Whether you're building microservices, data pipelines, or ML applications, our SDKs provide the tools you need for seamless integration with BharatMLStack's powerful infrastructure."}),(0,d.jsx)(r.A,{className:"button button--primary",to:"/category/sdks",children:"Explore SDKs \u2192"})]}),(0,d.jsx)("div",{className:"col col--6",children:(0,d.jsxs)("div",{className:b.highlightBox,children:[(0,d.jsx)("h3",{children:"\ud83d\udee0\ufe0f Developer Tools"}),(0,d.jsxs)("ul",{children:[(0,d.jsx)("li",{children:"\u2705 Native Go & Python SDKs with type safety"}),(0,d.jsx)("li",{children:"\u2705 High-performance gRPC"}),(0,d.jsx)("li",{children:"\u2705 Apache Spark integration for publishing features"})]})]})})]})})})}function w(){return(0,d.jsx)("section",{className:b.aboutSection,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--6",children:[(0,d.jsx)(c.A,{as:"h2",children:"Numerix"}),(0,d.jsx)("p",{children:"Numerix is a mathematical compute engine for BharatML Stack. It is used to perform mathematical operations on matrices and vectors."}),(0,d.jsx)(r.A,{className:"button button--primary",to:"/category/numerix",children:"Explore Numerix \u2192"})]}),(0,d.jsx)("div",{className:"col col--6",children:(0,d.jsxs)("div",{className:b.highlightBox,children:[(0,d.jsx)("h3",{children:"\ud83d\udee0\ufe0f Numerix Features"}),(0,d.jsxs)("ul",{children:[(0,d.jsx)("li",{children:"\u2705 Postfix expression evaluation"}),(0,d.jsx)("li",{children:"\u2705 Vectorized math operations"}),(0,d.jsx)("li",{children:"\u2705 Typed evaluation"}),(0,d.jsx)("li",{children:"\u2705 Compiler-assisted SIMD"}),(0,d.jsx)("li",{children:"\u2705 ARM & AMD support"}),(0,d.jsx)("li",{children:"\u2705 Multi-arch builds"}),(0,d.jsx)("li",{children:"\u2705 Deterministic runtime"})]})]})})]})})})}function M(){const{siteConfig:e}=(0,n.A)();return(0,d.jsxs)(o.A,{title:`${e.title} - Open Source ML Infrastructure`,description:"Open source, end-to-end ML infrastructure stack built for scale, speed, and simplicity. Features high-performance Online Feature Store with sub-10ms latency.",children:[(0,d.jsx)(v,{}),(0,d.jsxs)("main",{children:[(0,d.jsx)(g,{}),(0,d.jsx)(N,{}),(0,d.jsx)(f,{}),(0,d.jsx)(y,{}),(0,d.jsx)(j,{}),(0,d.jsx)(S,{}),(0,d.jsx)(w,{})]})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/c4f5d8e4.f5d4db47.js b/docs/assets/js/c4f5d8e4.f5d4db47.js deleted file mode 100644 index 24625a06..00000000 --- a/docs/assets/js/c4f5d8e4.f5d4db47.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2634],{6467:(e,t,i)=>{i.r(t),i.d(t,{default:()=>w});var s=i(4164),r=i(8774),n=i(4586),a=i(6025),o=i(1656),c=i(1107);const l={features:"features_t9lD",featureSvg:"featureSvg_GfXr",featuresHeader:"featuresHeader_qR2i",featuresSubtitle:"featuresSubtitle_VdGe","bharatml-card":"bharatml-card_xZ6l","bharatml-icon":"bharatml-icon_XBoJ",featureDescription:"featureDescription_sP1D"};var d=i(4848);const h=[{title:"High-Performance Feature Store",icon:"\ud83d\ude80",description:(0,d.jsx)(d.Fragment,{children:"Sub-10ms P99 latency and 1M+ RPS capacity. Built for real-time ML inference with custom PSDB serialization format that outperforms Protocol Buffers and Apache Arrow."})},{title:"Production-Ready ML Infrastructure",icon:"\u26a1",description:(0,d.jsx)(d.Fragment,{children:"Multi-database backends (Scylla, Dragonfly, Redis), comprehensive monitoring, and enterprise-grade features. Deploy with confidence using battle-tested components."})},{title:"Developer-First Experience",icon:"\ud83d\udee0\ufe0f",description:(0,d.jsx)(d.Fragment,{children:"Multi-language SDKs (Go, Python), gRPC APIs, and extensive documentation. From data scientists, ML engineers to backend engineers, everyone gets tools they love."})}],u=[{title:"Feature Catalog & Management",icon:"\ud83d\udccb",description:(0,d.jsx)(d.Fragment,{children:"Comprehensive feature catalog with metadata management, versioning, and governance. Organize and discover features across your ML platform with ease."})},{title:"User Management & Admin Ops",icon:"\ud83d\udc65",description:(0,d.jsx)(d.Fragment,{children:"Role-based access control, user authentication, and administrative operations. Secure your ML platform with enterprise-grade user management capabilities."})},{title:"Modern UI Framework",icon:"\ud83c\udfa8",description:(0,d.jsx)(d.Fragment,{children:"Intuitive, responsive web interface built with modern web technologies. Streamline MLOps workflows with beautiful and functional user experiences."})}],m=[{title:"Multi-Language Support",icon:"\ud83c\udf10",description:(0,d.jsx)(d.Fragment,{children:"Native SDKs for Go and Python with idiomatic APIs. Choose the language that fits your team's expertise and existing infrastructure."})},{title:"gRPC & REST APIs",icon:"\ud83d\udd17",description:(0,d.jsx)(d.Fragment,{children:"High-performance gRPC clients and REST APIs for seamless integration. Built-in support for streaming, batching, and async operations."})},{title:"Spark Integration",icon:"\u26a1",description:(0,d.jsx)(d.Fragment,{children:"Native Apache Spark integration for batch feature processing and ingestion. Scale your feature engineering workflows with distributed computing power."})}];function g({icon:e,title:t,description:i}){return(0,d.jsxs)("div",{className:(0,s.A)("col col--4"),children:[(0,d.jsx)("div",{className:"text--center",children:(0,d.jsx)("div",{className:"bharatml-icon",children:e})}),(0,d.jsxs)("div",{className:"text--center padding-horiz--md bharatml-card",children:[(0,d.jsx)(c.A,{as:"h3",children:t}),(0,d.jsx)("p",{className:l.featureDescription,children:i})]})]})}function p({title:e,subtitle:t,features:i}){return(0,d.jsx)("section",{className:l.features,children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsxs)("div",{className:"text--center margin-bottom--xl",children:[(0,d.jsx)(c.A,{as:"h2",className:l.featuresHeader,children:e}),(0,d.jsx)("p",{className:l.featuresSubtitle,children:t})]}),(0,d.jsx)("div",{className:"row",children:i.map(((e,t)=>(0,d.jsx)(g,{...e},t)))})]})})}function x(){return(0,d.jsx)(p,{title:"Online Feature Store",subtitle:"High-performance, production-ready feature serving for real-time ML inference",features:h})}function f(){return(0,d.jsx)(p,{title:"Trufflebox UI",subtitle:"Modern, feature-rich UI framework for comprehensive MLOps management",features:u})}function j(){return(0,d.jsx)(p,{title:"SDKs",subtitle:"Developer-friendly client libraries and APIs for seamless platform integration",features:m})}const b={heroBanner:"heroBanner_qdFl",logoContainer:"logoContainer_xdaK",heroLogo:"heroLogo_U6bI",buttons:"buttons_AeoN",statsContainer:"statsContainer_KpvY",statItem:"statItem_bwiZ",aboutSection:"aboutSection_udvw",highlightBox:"highlightBox_Uhe8"};function v(){const{siteConfig:e}=(0,n.A)();return(0,d.jsx)("header",{className:(0,s.A)("hero bharatml-hero",b.heroBanner),children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsx)("div",{className:b.logoContainer,children:(0,d.jsx)("img",{src:(0,a.Ay)("/img/logo.svg"),alt:"BharatMLStack Logo",className:b.heroLogo})}),(0,d.jsxs)(c.A,{as:"h1",className:"hero__title",children:["Welcome to ",e.title]}),(0,d.jsx)("p",{className:"hero__subtitle",children:"Open source, end-to-end ML infrastructure stack built for scale, speed, and simplicity."}),(0,d.jsxs)("div",{className:b.buttons,children:[(0,d.jsx)(r.A,{className:"button button--secondary button--lg margin-right--md bharatml-button",to:"/category/online-feature-store",children:"\ud83d\udcda Get Started"}),(0,d.jsx)(r.A,{className:"button button--outline button--secondary button--lg",href:"https://github.com/Meesho/BharatMLStack",target:"_blank",children:"\u2b50 Star on GitHub"})]}),(0,d.jsxs)("div",{className:b.statsContainer,children:[(0,d.jsxs)("div",{className:b.statItem,children:[(0,d.jsx)("strong",{children:"Sub-10ms"}),(0,d.jsx)("span",{children:"P99 Latency"})]}),(0,d.jsxs)("div",{className:b.statItem,children:[(0,d.jsx)("strong",{children:"1M+ RPS"}),(0,d.jsx)("span",{children:"Tested Capacity"})]}),(0,d.jsxs)("div",{className:b.statItem,children:[(0,d.jsx)("strong",{children:"Multi-DB"}),(0,d.jsx)("span",{children:"Support"})]})]})]})})}function y(){return(0,d.jsx)("section",{className:b.aboutSection,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--6",children:[(0,d.jsx)(c.A,{as:"h2",children:"Built for India's Scale"}),(0,d.jsx)("p",{children:"BharatMLStack is a comprehensive, production-ready machine learning infrastructure platform designed to democratize ML capabilities across India and beyond. Our mission is to provide a robust, scalable, and accessible ML stack that empowers organizations to build, deploy, and manage machine learning solutions at massive scale."}),(0,d.jsx)(r.A,{className:"button button--primary",to:"/category/online-feature-store",children:"Explore Online Feature Store \u2192"})]}),(0,d.jsx)("div",{className:"col col--6",children:(0,d.jsxs)("div",{className:b.highlightBox,children:[(0,d.jsx)("h3",{children:"\ud83c\udfc6 Key Achievements"}),(0,d.jsxs)("ul",{children:[(0,d.jsx)("li",{children:"\u2705 Sub-10ms P99 latency for real-time inference"}),(0,d.jsx)("li",{children:"\u2705 1M+ RPS tested with 100 IDs per request"}),(0,d.jsx)("li",{children:"\u2705 PSDB format outperforms Proto3 & Arrow"}),(0,d.jsx)("li",{children:"\u2705 Multi-database: Scylla, Dragonfly, Redis"}),(0,d.jsx)("li",{children:"\u2705 Production-ready with comprehensive monitoring"})]})]})})]})})})}function S(){return(0,d.jsx)("section",{className:b.aboutSection,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--6",children:[(0,d.jsx)(c.A,{as:"h2",children:"Modern MLOps Management"}),(0,d.jsx)("p",{children:"Trufflebox UI provides a comprehensive, modern web interface for managing your entire ML infrastructure. Built with cutting-edge web technologies, it delivers an intuitive experience for feature management, user administration, and operational oversight. Streamline your MLOps workflows with enterprise-grade UI components."}),(0,d.jsx)(r.A,{className:"button button--primary",to:"/category/trufflebox-ui",children:"Explore Trufflebox UI \u2192"})]}),(0,d.jsx)("div",{className:"col col--6",children:(0,d.jsxs)("div",{className:b.highlightBox,children:[(0,d.jsx)("h3",{children:"\ud83c\udfa8 UI Features"}),(0,d.jsxs)("ul",{children:[(0,d.jsx)("li",{children:"\u2705 Comprehensive feature catalog & discovery"}),(0,d.jsx)("li",{children:"\u2705 Role-based access control & user management"}),(0,d.jsx)("li",{children:"\u2705 Job, Store, Admin Ops management"}),(0,d.jsx)("li",{children:"\u2705 Approval flow for everything"}),(0,d.jsx)("li",{children:"\u2705 Responsive design for desktop & mobile"})]})]})})]})})})}function N(){return(0,d.jsx)("section",{className:b.aboutSection,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--6",children:[(0,d.jsx)(c.A,{as:"h2",children:"Developer-First Integration"}),(0,d.jsx)("p",{children:"Our SDKs are designed with developers in mind, providing idiomatic APIs for Go and Python that feel natural in your existing codebase. Whether you're building microservices, data pipelines, or ML applications, our SDKs provide the tools you need for seamless integration with BharatMLStack's powerful infrastructure."}),(0,d.jsx)(r.A,{className:"button button--primary",to:"/category/sdks",children:"Explore SDKs \u2192"})]}),(0,d.jsx)("div",{className:"col col--6",children:(0,d.jsxs)("div",{className:b.highlightBox,children:[(0,d.jsx)("h3",{children:"\ud83d\udee0\ufe0f Developer Tools"}),(0,d.jsxs)("ul",{children:[(0,d.jsx)("li",{children:"\u2705 Native Go & Python SDKs with type safety"}),(0,d.jsx)("li",{children:"\u2705 High-performance gRPC"}),(0,d.jsx)("li",{children:"\u2705 Apache Spark integration for publishing features"})]})]})})]})})})}function w(){const{siteConfig:e}=(0,n.A)();return(0,d.jsxs)(o.A,{title:`${e.title} - Open Source ML Infrastructure`,description:"Open source, end-to-end ML infrastructure stack built for scale, speed, and simplicity. Features high-performance Online Feature Store with sub-10ms latency.",children:[(0,d.jsx)(v,{}),(0,d.jsxs)("main",{children:[(0,d.jsx)(x,{}),(0,d.jsx)(y,{}),(0,d.jsx)(f,{}),(0,d.jsx)(S,{}),(0,d.jsx)(j,{}),(0,d.jsx)(N,{})]})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/ccc49370.1c88001f.js b/docs/assets/js/ccc49370.1c88001f.js new file mode 100644 index 00000000..6012d4d3 --- /dev/null +++ b/docs/assets/js/ccc49370.1c88001f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3249],{1689:(e,t,n)=>{n.d(t,{A:()=>d});n(6540);var a=n(4164),s=n(4084),i=n(7559),r=n(7293),l=n(4848);function o({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(s.Yh,{}),className:(0,a.A)(e,i.G.common.draftBanner),children:(0,l.jsx)(s.TT,{})})}var c=n(2234);function d({metadata:e}){const{unlisted:t,frontMatter:n}=e;return(0,l.jsxs)(l.Fragment,{children:[(t||n.unlisted)&&(0,l.jsx)(c.A,{}),n.draft&&(0,l.jsx)(o,{})]})}},2053:(e,t,n)=>{n.d(t,{A:()=>o});n(6540);var a=n(4164),s=n(1312),i=n(6133);const r={tags:"tags_jXut",tag:"tag_QGVx"};var l=n(4848);function o({tags:e}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(s.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,a.A)(r.tags,"padding--none","margin-left--sm"),children:e.map(e=>(0,l.jsx)("li",{className:r.tag,children:(0,l.jsx)(i.A,{...e})},e.permalink))})]})}},2234:(e,t,n)=>{n.d(t,{A:()=>c});n(6540);var a=n(4164),s=n(7559),i=n(4084),r=n(7293),l=n(4848);function o({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(i.Rc,{}),className:(0,a.A)(e,s.G.common.unlistedBanner),children:(0,l.jsx)(i.Uh,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.AE,{}),(0,l.jsx)(o,{...e})]})}},2907:(e,t,n)=>{n.d(t,{A:()=>O});n(6540);var a=n(4164),s=n(4096),i=n(4848);function r({children:e,className:t}){return(0,i.jsx)("article",{className:t,children:e})}var l=n(8774);const o={title:"title_f1Hy"};function c({className:e}){const{metadata:t,isBlogPostPage:n}=(0,s.e7)(),{permalink:r,title:c}=t,d=n?"h1":"h2";return(0,i.jsx)(d,{className:(0,a.A)(o.title,e),children:n?c:(0,i.jsx)(l.A,{to:r,children:c})})}var d=n(1312),m=n(5846),u=n(6266);const g={container:"container_mt6G"};function h({readingTime:e}){const t=function(){const{selectMessage:e}=(0,m.W)();return t=>{const n=Math.ceil(t);return e(n,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:n}))}}();return(0,i.jsx)(i.Fragment,{children:t(e)})}function x({date:e,formattedDate:t}){return(0,i.jsx)("time",{dateTime:e,children:t})}function f(){return(0,i.jsx)(i.Fragment,{children:" \xb7 "})}function p({className:e}){const{metadata:t}=(0,s.e7)(),{date:n,readingTime:r}=t,l=(0,u.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,i.jsxs)("div",{className:(0,a.A)(g.container,"margin-vert--md",e),children:[(0,i.jsx)(x,{date:n,formattedDate:(o=n,l.format(new Date(o)))}),void 0!==r&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(f,{}),(0,i.jsx)(h,{readingTime:r})]})]});var o}var v=n(6382);const j={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function b({className:e}){const{metadata:{authors:t},assets:n}=(0,s.e7)();if(0===t.length)return null;const r=t.every(({name:e})=>!e),l=1===t.length;return(0,i.jsx)("div",{className:(0,a.A)("margin-top--md margin-bottom--sm",r?j.imageOnlyAuthorRow:"row",e),children:t.map((e,t)=>(0,i.jsx)("div",{className:(0,a.A)(!r&&(l?"col col--12":"col col--6"),r?j.imageOnlyAuthorCol:j.authorCol),children:(0,i.jsx)(v.A,{author:{...e,imageURL:n.authorsImageUrls[t]??e.imageURL}})},t))})}function A(){return(0,i.jsxs)("header",{children:[(0,i.jsx)(c,{}),(0,i.jsx)(p,{}),(0,i.jsx)(b,{})]})}var N=n(440),_=n(3253);function L({children:e,className:t}){const{isBlogPostPage:n}=(0,s.e7)();return(0,i.jsx)("div",{id:n?N.LU:void 0,className:(0,a.A)("markdown",t),children:(0,i.jsx)(_.A,{children:e})})}var y=n(7559),C=n(4336),T=n(2053);function k(){return(0,i.jsx)("b",{children:(0,i.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function H(e){const{blogPostTitle:t,...n}=e;return(0,i.jsx)(l.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...n,children:(0,i.jsx)(k,{})})}function w(){const{metadata:e,isBlogPostPage:t}=(0,s.e7)(),{tags:n,title:r,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,u=n.length>0;if(!(u||m||l))return null;if(t){const e=!!(l||d||c);return(0,i.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,a.A)("row","margin-top--sm",y.G.blog.blogFooterEditMetaRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(T.A,{tags:n})})}),e&&(0,i.jsx)(C.A,{className:(0,a.A)("margin-top--sm",y.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,i.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,a.A)("col",{"col--9":m}),children:(0,i.jsx)(T.A,{tags:n})}),m&&(0,i.jsx)("div",{className:(0,a.A)("col text--right",{"col--3":u}),children:(0,i.jsx)(H,{blogPostTitle:r,to:e.permalink})})]})}function O({children:e,className:t}){const n=function(){const{isBlogPostPage:e}=(0,s.e7)();return e?void 0:"margin-bottom--xl"}();return(0,i.jsxs)(r,{className:(0,a.A)(n,t),children:[(0,i.jsx)(A,{}),(0,i.jsx)(L,{children:e}),(0,i.jsx)(w,{})]})}},3858:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});n(6540);var a=n(4164),s=n(5500),i=n(7559),r=n(4096),l=n(8027),o=n(2907),c=n(1312),d=n(9022),m=n(4848);function u(e){const{nextItem:t,prevItem:n}=e;return(0,m.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.T)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[n&&(0,m.jsx)(d.A,{...n,subLabel:(0,m.jsx)(c.A,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer post"})}),t&&(0,m.jsx)(d.A,{...t,subLabel:(0,m.jsx)(c.A,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older post"}),isNext:!0})]})}function g(){const{assets:e,metadata:t}=(0,r.e7)(),{title:n,description:a,date:i,tags:l,authors:o,frontMatter:c}=t,{keywords:d}=c,u=e.image??c.image;return(0,m.jsxs)(s.be,{title:c.title_meta??n,description:a,keywords:d,image:u,children:[(0,m.jsx)("meta",{property:"og:type",content:"article"}),(0,m.jsx)("meta",{property:"article:published_time",content:i}),o.some(e=>e.url)&&(0,m.jsx)("meta",{property:"article:author",content:o.map(e=>e.url).filter(Boolean).join(",")}),l.length>0&&(0,m.jsx)("meta",{property:"article:tag",content:l.map(e=>e.label).join(",")})]})}var h=n(5260);function x(){const e=(0,r.J_)();return(0,m.jsx)(h.A,{children:(0,m.jsx)("script",{type:"application/ld+json",children:JSON.stringify(e)})})}var f=n(7763),p=n(1689);function v({sidebar:e,children:t}){const{metadata:n,toc:a}=(0,r.e7)(),{nextItem:s,prevItem:i,frontMatter:c}=n,{hide_table_of_contents:d,toc_min_heading_level:g,toc_max_heading_level:h}=c;return(0,m.jsxs)(l.A,{sidebar:e,toc:!d&&a.length>0?(0,m.jsx)(f.A,{toc:a,minHeadingLevel:g,maxHeadingLevel:h}):void 0,children:[(0,m.jsx)(p.A,{metadata:n}),(0,m.jsx)(o.A,{children:t}),(s||i)&&(0,m.jsx)(u,{nextItem:s,prevItem:i})]})}function j(e){const t=e.content;return(0,m.jsx)(r.in,{content:e.content,isBlogPostPage:!0,children:(0,m.jsxs)(s.e3,{className:(0,a.A)(i.G.wrapper.blogPages,i.G.page.blogPostPage),children:[(0,m.jsx)(g,{}),(0,m.jsx)(x,{}),(0,m.jsx)(v,{sidebar:e.sidebar,children:(0,m.jsx)(t,{})})]})})}},4084:(e,t,n)=>{n.d(t,{AE:()=>o,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>c});n(6540);var a=n(1312),s=n(5260),i=n(4848);function r(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function o(){return(0,i.jsx)(s.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},5195:(e,t,n)=>{n.d(t,{A:()=>x});var a=n(6540),s=n(6342);function i(e){const t=e.map(e=>({...e,parentIndex:-1,children:[]})),n=Array(7).fill(-1);t.forEach((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t});const a=[];return t.forEach(e=>{const{parentIndex:n,...s}=e;n>=0?t[n].children.push(s):a.push(s)}),a}function r({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return e.flatMap(e=>{const a=r({toc:e.children,minHeadingLevel:t,maxHeadingLevel:n});return function(e){return e.level>=t&&e.level<=n}(e)?[{...e,children:a}]:a})}function l(e){const t=e.getBoundingClientRect();return t.top===t.bottom?l(e.parentNode):t}function o(e,{anchorTopOffset:t}){const n=e.find(e=>l(e).top>=t);if(n){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(l(n))?n:e[e.indexOf(n)-1]??null}return e[e.length-1]??null}function c(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,s.p)();return(0,a.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}function d(e){const t=(0,a.useRef)(void 0),n=c();(0,a.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:s,minHeadingLevel:i,maxHeadingLevel:r}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),l=function({minHeadingLevel:e,maxHeadingLevel:t}){const n=[];for(let a=e;a<=t;a+=1)n.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:i,maxHeadingLevel:r}),c=o(l,{anchorTopOffset:n.current}),d=e.find(e=>c&&c.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(s),e.classList.add(s),t.current=e):e.classList.remove(s)}(e,e===d)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[e,n])}var m=n(8774),u=n(4848);function g({toc:e,className:t,linkClassName:n,isChild:a}){return e.length?(0,u.jsx)("ul",{className:a?void 0:t,children:e.map(e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.A,{to:`#${e.id}`,className:n??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(g,{isChild:!0,toc:e.children,className:t,linkClassName:n})]},e.id))}):null}const h=a.memo(g);function x({toc:e,className:t="table-of-contents table-of-contents__left-border",linkClassName:n="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:o,maxHeadingLevel:c,...m}){const g=(0,s.p)(),x=o??g.tableOfContents.minHeadingLevel,f=c??g.tableOfContents.maxHeadingLevel,p=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,a.useMemo)(()=>r({toc:i(e),minHeadingLevel:t,maxHeadingLevel:n}),[e,t,n])}({toc:e,minHeadingLevel:x,maxHeadingLevel:f});return d((0,a.useMemo)(()=>{if(n&&l)return{linkClassName:n,linkActiveClassName:l,minHeadingLevel:x,maxHeadingLevel:f}},[n,l,x,f])),(0,u.jsx)(h,{toc:p,className:t,linkClassName:n,...m})}},6133:(e,t,n)=>{n.d(t,{A:()=>l});n(6540);var a=n(4164),s=n(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var r=n(4848);function l({permalink:e,label:t,count:n,description:l}){return(0,r.jsxs)(s.A,{rel:"tag",href:e,title:l,className:(0,a.A)(i.tag,n?i.tagWithCount:i.tagRegular),children:[t,n&&(0,r.jsx)("span",{children:n})]})}},7763:(e,t,n)=>{n.d(t,{A:()=>c});n(6540);var a=n(4164),s=n(5195);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var r=n(4848);const l="table-of-contents__link toc-highlight",o="table-of-contents__link--active";function c({className:e,...t}){return(0,r.jsx)("div",{className:(0,a.A)(i.tableOfContents,"thin-scrollbar",e),children:(0,r.jsx)(s.A,{...t,linkClassName:l,linkActiveClassName:o})})}},9022:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var a=n(4164),s=n(8774),i=n(4848);function r(e){const{permalink:t,title:n,subLabel:r,isNext:l}=e;return(0,i.jsxs)(s.A,{className:(0,a.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[r&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:r}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/ccc49370.8f9e0351.js b/docs/assets/js/ccc49370.8f9e0351.js deleted file mode 100644 index 7648bd8a..00000000 --- a/docs/assets/js/ccc49370.8f9e0351.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3249],{1689:(e,t,n)=>{n.d(t,{A:()=>d});n(6540);var a=n(4164),s=n(4084),i=n(7559),r=n(7293),l=n(4848);function o({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(s.Yh,{}),className:(0,a.A)(e,i.G.common.draftBanner),children:(0,l.jsx)(s.TT,{})})}var c=n(2234);function d({metadata:e}){const{unlisted:t,frontMatter:n}=e;return(0,l.jsxs)(l.Fragment,{children:[(t||n.unlisted)&&(0,l.jsx)(c.A,{}),n.draft&&(0,l.jsx)(o,{})]})}},2053:(e,t,n)=>{n.d(t,{A:()=>o});n(6540);var a=n(4164),s=n(1312),i=n(6133);const r={tags:"tags_jXut",tag:"tag_QGVx"};var l=n(4848);function o({tags:e}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(s.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,a.A)(r.tags,"padding--none","margin-left--sm"),children:e.map((e=>(0,l.jsx)("li",{className:r.tag,children:(0,l.jsx)(i.A,{...e})},e.permalink)))})]})}},2234:(e,t,n)=>{n.d(t,{A:()=>c});n(6540);var a=n(4164),s=n(4084),i=n(7559),r=n(7293),l=n(4848);function o({className:e}){return(0,l.jsx)(r.A,{type:"caution",title:(0,l.jsx)(s.Rc,{}),className:(0,a.A)(e,i.G.common.unlistedBanner),children:(0,l.jsx)(s.Uh,{})})}function c(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.AE,{}),(0,l.jsx)(o,{...e})]})}},2907:(e,t,n)=>{n.d(t,{A:()=>O});n(6540);var a=n(4164),s=n(4096),i=n(4848);function r({children:e,className:t}){return(0,i.jsx)("article",{className:t,children:e})}var l=n(8774);const o={title:"title_f1Hy"};function c({className:e}){const{metadata:t,isBlogPostPage:n}=(0,s.e7)(),{permalink:r,title:c}=t,d=n?"h1":"h2";return(0,i.jsx)(d,{className:(0,a.A)(o.title,e),children:n?c:(0,i.jsx)(l.A,{to:r,children:c})})}var d=n(1312),m=n(5846),u=n(6266);const g={container:"container_mt6G"};function h({readingTime:e}){const t=function(){const{selectMessage:e}=(0,m.W)();return t=>{const n=Math.ceil(t);return e(n,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:n}))}}();return(0,i.jsx)(i.Fragment,{children:t(e)})}function x({date:e,formattedDate:t}){return(0,i.jsx)("time",{dateTime:e,children:t})}function f(){return(0,i.jsx)(i.Fragment,{children:" \xb7 "})}function p({className:e}){const{metadata:t}=(0,s.e7)(),{date:n,readingTime:r}=t,l=(0,u.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,i.jsxs)("div",{className:(0,a.A)(g.container,"margin-vert--md",e),children:[(0,i.jsx)(x,{date:n,formattedDate:(o=n,l.format(new Date(o)))}),void 0!==r&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(f,{}),(0,i.jsx)(h,{readingTime:r})]})]});var o}var v=n(6382);const j={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function b({className:e}){const{metadata:{authors:t},assets:n}=(0,s.e7)();if(0===t.length)return null;const r=t.every((({name:e})=>!e)),l=1===t.length;return(0,i.jsx)("div",{className:(0,a.A)("margin-top--md margin-bottom--sm",r?j.imageOnlyAuthorRow:"row",e),children:t.map(((e,t)=>(0,i.jsx)("div",{className:(0,a.A)(!r&&(l?"col col--12":"col col--6"),r?j.imageOnlyAuthorCol:j.authorCol),children:(0,i.jsx)(v.A,{author:{...e,imageURL:n.authorsImageUrls[t]??e.imageURL}})},t)))})}function A(){return(0,i.jsxs)("header",{children:[(0,i.jsx)(c,{}),(0,i.jsx)(p,{}),(0,i.jsx)(b,{})]})}var N=n(440),_=n(3253);function L({children:e,className:t}){const{isBlogPostPage:n}=(0,s.e7)();return(0,i.jsx)("div",{id:n?N.LU:void 0,className:(0,a.A)("markdown",t),children:(0,i.jsx)(_.A,{children:e})})}var y=n(7559),C=n(4336),T=n(2053);function k(){return(0,i.jsx)("b",{children:(0,i.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read more"})})}function H(e){const{blogPostTitle:t,...n}=e;return(0,i.jsx)(l.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...n,children:(0,i.jsx)(k,{})})}function w(){const{metadata:e,isBlogPostPage:t}=(0,s.e7)(),{tags:n,title:r,editUrl:l,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,u=n.length>0;if(!(u||m||l))return null;if(t){const e=!!(l||d||c);return(0,i.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,a.A)("row","margin-top--sm",y.G.blog.blogFooterEditMetaRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(T.A,{tags:n})})}),e&&(0,i.jsx)(C.A,{className:(0,a.A)("margin-top--sm",y.G.blog.blogFooterEditMetaRow),editUrl:l,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,i.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,i.jsx)("div",{className:(0,a.A)("col",{"col--9":m}),children:(0,i.jsx)(T.A,{tags:n})}),m&&(0,i.jsx)("div",{className:(0,a.A)("col text--right",{"col--3":u}),children:(0,i.jsx)(H,{blogPostTitle:r,to:e.permalink})})]})}function O({children:e,className:t}){const n=function(){const{isBlogPostPage:e}=(0,s.e7)();return e?void 0:"margin-bottom--xl"}();return(0,i.jsxs)(r,{className:(0,a.A)(n,t),children:[(0,i.jsx)(A,{}),(0,i.jsx)(L,{children:e}),(0,i.jsx)(w,{})]})}},3858:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});n(6540);var a=n(4164),s=n(5500),i=n(7559),r=n(4096),l=n(8027),o=n(2907),c=n(1312),d=n(9022),m=n(4848);function u(e){const{nextItem:t,prevItem:n}=e;return(0,m.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.T)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[n&&(0,m.jsx)(d.A,{...n,subLabel:(0,m.jsx)(c.A,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer post"})}),t&&(0,m.jsx)(d.A,{...t,subLabel:(0,m.jsx)(c.A,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older post"}),isNext:!0})]})}function g(){const{assets:e,metadata:t}=(0,r.e7)(),{title:n,description:a,date:i,tags:l,authors:o,frontMatter:c}=t,{keywords:d}=c,u=e.image??c.image;return(0,m.jsxs)(s.be,{title:c.title_meta??n,description:a,keywords:d,image:u,children:[(0,m.jsx)("meta",{property:"og:type",content:"article"}),(0,m.jsx)("meta",{property:"article:published_time",content:i}),o.some((e=>e.url))&&(0,m.jsx)("meta",{property:"article:author",content:o.map((e=>e.url)).filter(Boolean).join(",")}),l.length>0&&(0,m.jsx)("meta",{property:"article:tag",content:l.map((e=>e.label)).join(",")})]})}var h=n(5260);function x(){const e=(0,r.J_)();return(0,m.jsx)(h.A,{children:(0,m.jsx)("script",{type:"application/ld+json",children:JSON.stringify(e)})})}var f=n(7763),p=n(1689);function v({sidebar:e,children:t}){const{metadata:n,toc:a}=(0,r.e7)(),{nextItem:s,prevItem:i,frontMatter:c}=n,{hide_table_of_contents:d,toc_min_heading_level:g,toc_max_heading_level:h}=c;return(0,m.jsxs)(l.A,{sidebar:e,toc:!d&&a.length>0?(0,m.jsx)(f.A,{toc:a,minHeadingLevel:g,maxHeadingLevel:h}):void 0,children:[(0,m.jsx)(p.A,{metadata:n}),(0,m.jsx)(o.A,{children:t}),(s||i)&&(0,m.jsx)(u,{nextItem:s,prevItem:i})]})}function j(e){const t=e.content;return(0,m.jsx)(r.in,{content:e.content,isBlogPostPage:!0,children:(0,m.jsxs)(s.e3,{className:(0,a.A)(i.G.wrapper.blogPages,i.G.page.blogPostPage),children:[(0,m.jsx)(g,{}),(0,m.jsx)(x,{}),(0,m.jsx)(v,{sidebar:e.sidebar,children:(0,m.jsx)(t,{})})]})})}},4084:(e,t,n)=>{n.d(t,{AE:()=>o,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>c});n(6540);var a=n(1312),s=n(5260),i=n(4848);function r(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function o(){return(0,i.jsx)(s.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function c(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function d(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},5195:(e,t,n)=>{n.d(t,{A:()=>x});var a=n(6540),s=n(6342);function i(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...s}=e;n>=0?t[n].children.push(s):a.push(s)})),a}function r({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return e.flatMap((e=>{const a=r({toc:e.children,minHeadingLevel:t,maxHeadingLevel:n});return function(e){return e.level>=t&&e.level<=n}(e)?[{...e,children:a}]:a}))}function l(e){const t=e.getBoundingClientRect();return t.top===t.bottom?l(e.parentNode):t}function o(e,{anchorTopOffset:t}){const n=e.find((e=>l(e).top>=t));if(n){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(l(n))?n:e[e.indexOf(n)-1]??null}return e[e.length-1]??null}function c(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,s.p)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,a.useRef)(void 0),n=c();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:s,minHeadingLevel:i,maxHeadingLevel:r}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),l=function({minHeadingLevel:e,maxHeadingLevel:t}){const n=[];for(let a=e;a<=t;a+=1)n.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:i,maxHeadingLevel:r}),c=o(l,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.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(s),e.classList.add(s),t.current=e):e.classList.remove(s)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}var m=n(8774),u=n(4848);function g({toc:e,className:t,linkClassName:n,isChild:a}){return e.length?(0,u.jsx)("ul",{className:a?void 0:t,children:e.map((e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.A,{to:`#${e.id}`,className:n??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(g,{isChild:!0,toc:e.children,className:t,linkClassName:n})]},e.id)))}):null}const h=a.memo(g);function x({toc:e,className:t="table-of-contents table-of-contents__left-border",linkClassName:n="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:o,maxHeadingLevel:c,...m}){const g=(0,s.p)(),x=o??g.tableOfContents.minHeadingLevel,f=c??g.tableOfContents.maxHeadingLevel,p=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,a.useMemo)((()=>r({toc:i(e),minHeadingLevel:t,maxHeadingLevel:n})),[e,t,n])}({toc:e,minHeadingLevel:x,maxHeadingLevel:f});return d((0,a.useMemo)((()=>{if(n&&l)return{linkClassName:n,linkActiveClassName:l,minHeadingLevel:x,maxHeadingLevel:f}}),[n,l,x,f])),(0,u.jsx)(h,{toc:p,className:t,linkClassName:n,...m})}},6133:(e,t,n)=>{n.d(t,{A:()=>l});n(6540);var a=n(4164),s=n(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var r=n(4848);function l({permalink:e,label:t,count:n,description:l}){return(0,r.jsxs)(s.A,{rel:"tag",href:e,title:l,className:(0,a.A)(i.tag,n?i.tagWithCount:i.tagRegular),children:[t,n&&(0,r.jsx)("span",{children:n})]})}},7763:(e,t,n)=>{n.d(t,{A:()=>c});n(6540);var a=n(4164),s=n(5195);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var r=n(4848);const l="table-of-contents__link toc-highlight",o="table-of-contents__link--active";function c({className:e,...t}){return(0,r.jsx)("div",{className:(0,a.A)(i.tableOfContents,"thin-scrollbar",e),children:(0,r.jsx)(s.A,{...t,linkClassName:l,linkActiveClassName:o})})}},9022:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var a=n(4164),s=n(8774),i=n(4848);function r(e){const{permalink:t,title:n,subLabel:r,isNext:l}=e;return(0,i.jsxs)(s.A,{className:(0,a.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[r&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:r}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}}}]); \ No newline at end of file diff --git a/docs/assets/js/d152284c.0800e671.js b/docs/assets/js/d152284c.0800e671.js new file mode 100644 index 00000000..ff655ac8 --- /dev/null +++ b/docs/assets/js/d152284c.0800e671.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1606],{5876:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"online-feature-store/v1.0.0/release-notes","title":"Release Notes","description":"Version 1.0.0 \ud83d\ude80","source":"@site/docs/online-feature-store/v1.0.0/release-notes.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/release-notes","permalink":"/BharatMLStack/online-feature-store/v1.0.0/release-notes","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/release-notes.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"title":"Release Notes","sidebar_position":5},"sidebar":"tutorialSidebar","previous":{"title":"Key Functionalities","permalink":"/BharatMLStack/online-feature-store/v1.0.0/functionalities"},"next":{"title":"Inferflow","permalink":"/BharatMLStack/category/inferflow"}}');var i=r(4848),t=r(8453);const l={title:"Release Notes",sidebar_position:5},o="Online Feature Store - Release Notes",a={},c=[{value:"Version 1.0.0 \ud83d\ude80",id:"version-100-",level:2},{value:"\ud83c\udfaf <strong>What's New</strong>",id:"-whats-new",level:2},{value:"<strong>Core Feature Store Engine</strong>",id:"core-feature-store-engine",level:3},{value:"<strong>Advanced Data Type Support</strong>",id:"advanced-data-type-support",level:3},{value:"<strong>Multi-Database Architecture</strong>",id:"multi-database-architecture",level:3},{value:"\ud83d\ude80 <strong>Performance & Optimization</strong>",id:"-performance--optimization",level:2},{value:"<strong>PSDB v2 Serialization Format without compression</strong>",id:"psdb-v2-serialization-format-without-compression",level:3},{value:"<strong>Memory Management</strong>",id:"memory-management",level:3},{value:"<strong>Compression Support</strong>",id:"compression-support",level:3},{value:"\ud83d\udee0\ufe0f <strong>APIs & SDKs</strong>",id:"\ufe0f-apis--sdks",level:2},{value:"<strong>gRPC API</strong>",id:"grpc-api",level:3},{value:"<strong>Go SDK v1.0.0</strong>",id:"go-sdk-v100",level:3},{value:"<strong>Python SDK Collection v1.0.0</strong>",id:"python-sdk-collection-v100",level:3},{value:"<strong>RESTful Interface</strong>",id:"restful-interface",level:3},{value:"\ud83d\udd27 <strong>Enterprise Features</strong>",id:"-enterprise-features",level:2},{value:"<strong>Production Readiness</strong>",id:"production-readiness",level:3},{value:"<strong>Monitoring & Observability</strong>",id:"monitoring--observability",level:3},{value:"<strong>Data Management</strong>",id:"data-management",level:3},{value:"\ud83c\udfd7\ufe0f <strong>Deployment & Configuration</strong>",id:"\ufe0f-deployment--configuration",level:2},{value:"<strong>Container Support</strong>",id:"container-support",level:3},{value:"\ud83d\udd04 <strong>Compatibility</strong>",id:"-compatibility",level:2},{value:"<strong>Supported Go Versions</strong>",id:"supported-go-versions",level:3},{value:"<strong>Database Compatibility</strong>",id:"database-compatibility",level:3},{value:"\ud83d\udc1b <strong>Known Issues</strong>",id:"-known-issues",level:2},{value:"<strong>Current Limitations</strong>",id:"current-limitations",level:3},{value:"<strong>Workarounds</strong>",id:"workarounds",level:3},{value:"\ud83d\udcbe <strong>Download & Installation</strong>",id:"-download--installation",level:2},{value:"<strong>Container Images</strong>",id:"container-images",level:3},{value:"<strong>Arch Supported</strong>",id:"arch-supported",level:3},{value:"<strong>Source Code</strong>",id:"source-code",level:3},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"online-feature-store---release-notes",children:"Online Feature Store - Release Notes"})}),"\n",(0,i.jsx)(n.h2,{id:"version-100-",children:"Version 1.0.0 \ud83d\ude80"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Release Date"}),": June 2025",(0,i.jsx)(n.br,{}),"\n",(0,i.jsx)(n.strong,{children:"Status"}),": General Availability (GA)"]}),"\n",(0,i.jsxs)(n.p,{children:["We're excited to announce the first stable release of the ",(0,i.jsx)(n.strong,{children:"BharatML Online Feature Store"})," - a high-performance, production-ready feature serving system designed for machine learning workloads."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h2,{id:"-whats-new",children:["\ud83c\udfaf ",(0,i.jsx)(n.strong,{children:"What's New"})]}),"\n",(0,i.jsx)(n.h3,{id:"core-feature-store-engine",children:(0,i.jsx)(n.strong,{children:"Core Feature Store Engine"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Ultra-Low Latency"}),": Achieve sub-10ms P99 response times for real-time inference"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"High Throughput"}),": Tested and validated at 1M+ requests per second with 100 IDs per request"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multi-Entity Support"}),": Serve features for multiple entity types (users, transactions, products, etc.)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch Retrieval"}),": Efficient bulk feature fetching for real-time inference and incremental/online training workloads"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"advanced-data-type-support",children:(0,i.jsx)(n.strong,{children:"Advanced Data Type Support"})}),"\n",(0,i.jsx)(n.p,{children:"Complete support for all ML-relevant data types:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Data Type"}),(0,i.jsx)(n.th,{children:"Variants"}),(0,i.jsx)(n.th,{children:"Optimizations"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Integers"})}),(0,i.jsx)(n.td,{children:"int8, int16, int32, int64"}),(0,i.jsx)(n.td,{children:"Varint encoding, bit packing"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Floats"})}),(0,i.jsx)(n.td,{children:"float8, float16, float32, float64"}),(0,i.jsx)(n.td,{children:"IEEE 754 compliant storage"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Strings"})}),(0,i.jsx)(n.td,{children:"Variable length"}),(0,i.jsx)(n.td,{children:"Pascal string encoding"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Booleans"})}),(0,i.jsx)(n.td,{children:"Bit-packed"}),(0,i.jsx)(n.td,{children:"8x memory compression"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Vectors"})}),(0,i.jsx)(n.td,{children:"All above types"}),(0,i.jsx)(n.td,{children:"Contiguous memory layout"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"multi-database-architecture",children:(0,i.jsx)(n.strong,{children:"Multi-Database Architecture"})}),"\n",(0,i.jsx)(n.p,{children:"Flexible backend storage with optimized drivers:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\ud83d\udd25 Scylla DB"}),": Ultra-high performance NoSQL (recommended for production)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u26a1 Dragonfly"}),": Modern Redis alternative with better memory efficiency"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\ud83d\udcca Redis"}),": Standard in-memory store for development environments"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"-performance--optimization",children:["\ud83d\ude80 ",(0,i.jsx)(n.strong,{children:"Performance & Optimization"})]}),"\n",(0,i.jsx)(n.h3,{id:"psdb-v2-serialization-format-without-compression",children:(0,i.jsx)(n.strong,{children:"PSDB v2 Serialization Format without compression"})}),"\n",(0,i.jsxs)(n.p,{children:["Our proprietary ",(0,i.jsx)(n.strong,{children:"Permanent Storage Data Block"})," format delivers:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"35% faster"})," serialization than Protocol Buffers"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"100.0-102.2%"})," size efficiency (near raw data size)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"93% fewer allocations"})," than Apache Arrow (4 vs 66 allocs/op)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"975 MB/s"})," throughput capacity"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"memory-management",children:(0,i.jsx)(n.strong,{children:"Memory Management"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Object Pooling"}),": Zero-allocation feature retrieval with PSDBPool"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Connection Pooling"}),": Optimized database connection reuse"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Buffer Management"}),": Pre-allocated buffers for serialization operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Smart Caching"}),": Configurable TTL-based feature caching"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"compression-support",children:(0,i.jsx)(n.strong,{children:"Compression Support"})}),"\n",(0,i.jsx)(n.p,{children:"Intelligent compression with multiple algorithms:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"ZSTD"}),": Maximum compression for bandwidth-constrained environments"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Auto-Fallback"}),": Intelligent selection based on data characteristics"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"\ufe0f-apis--sdks",children:["\ud83d\udee0\ufe0f ",(0,i.jsx)(n.strong,{children:"APIs & SDKs"})]}),"\n",(0,i.jsx)(n.h3,{id:"grpc-api",children:(0,i.jsx)(n.strong,{children:"gRPC API"})}),"\n",(0,i.jsx)(n.p,{children:"High-performance, language-agnostic interface:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-protobuf",children:"service FeatureStoreService {\n rpc RetrieveFeatures(Query) returns (QueryResult);\n rpc RetrieveDecodedFeatures(Query) returns (DecodedQueryResult);\n rpc PersistFeatures(PersistFeaturesRequest) returns (Result);\n}\n"})}),"\n",(0,i.jsx)(n.h3,{id:"go-sdk-v100",children:(0,i.jsx)(n.strong,{children:"Go SDK v1.0.0"})}),"\n",(0,i.jsx)(n.p,{children:"Native Go client with enterprise features:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Type-Safe API"}),": Strongly typed interfaces and data structures"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Connection Management"}),": Configurable timeouts, TLS, and pooling"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch Processing"}),": Configurable batch sizes for bulk operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Metrics Integration"}),": Built-in timing and count metrics"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Authentication"}),": Caller ID and token-based security"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"python-sdk-collection-v100",children:(0,i.jsx)(n.strong,{children:"Python SDK Collection v1.0.0"})}),"\n",(0,i.jsx)(n.p,{children:"Three specialized Python packages for different ML workflows:"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"bharatml_commons"})," - Common utilities and protobuf definitions:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"HTTP Client"}),": Feature metadata operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Protobuf Support"}),": Generated Python definitions for all APIs"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Utility Functions"}),": Column cleaning and feature processing"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"spark_feature_push_client"})," - Apache Spark-based data pipeline:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch ETL"}),": Large-scale data processing with Spark"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Kafka Integration"}),": Protobuf serialization and Kafka publishing"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multi-Source Support"}),": Hive, Delta, Parquet, Cloud Storage"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"grpc_feature_client"})," - High-performance gRPC client:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Real-time Operations"}),": Direct persist/retrieve API access"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Low Latency"}),": Optimized for model inference workflows"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Type Safety"}),": Strongly typed Python interfaces"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"restful-interface",children:(0,i.jsx)(n.strong,{children:"RESTful Interface"})}),"\n",(0,i.jsx)(n.p,{children:"HTTP API for web applications:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Health Endpoints"}),": Built-in monitoring and status checks"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"-enterprise-features",children:["\ud83d\udd27 ",(0,i.jsx)(n.strong,{children:"Enterprise Features"})]}),"\n",(0,i.jsx)(n.h3,{id:"production-readiness",children:(0,i.jsx)(n.strong,{children:"Production Readiness"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Health Checks"}),": ",(0,i.jsx)(n.code,{children:"/health/self"})," endpoints for probing"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Graceful Shutdown"}),": Clean resource cleanup with configurable timeouts"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Structured Logging"}),": Formatted logs with configurable levels"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Signal Handling"}),": SIGTERM/SIGINT support for container environments"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"monitoring--observability",children:(0,i.jsx)(n.strong,{children:"Monitoring & Observability"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"DataDog Integration"}),": Built-in metrics collection and reporting"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Prometheus Compatibility"}),": Standard metrics format support"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Custom Metrics"}),": Request rates, latencies, error rates, and business metrics"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Distributed Tracing [untested]"}),": Request flow visibility across services"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"data-management",children:(0,i.jsx)(n.strong,{children:"Data Management"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"TTL Support"}),": Automatic feature expiration"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Feature Versioning"}),": Schema evolution with backward compatibility"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Bulk Operations"}),": Efficient batch read/write with configurable sizes"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"\ufe0f-deployment--configuration",children:["\ud83c\udfd7\ufe0f ",(0,i.jsx)(n.strong,{children:"Deployment & Configuration"})]}),"\n",(0,i.jsx)(n.h3,{id:"container-support",children:(0,i.jsx)(n.strong,{children:"Container Support"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Docker Images"}),": Multi-architecture support (amd64, arm64)"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"-compatibility",children:["\ud83d\udd04 ",(0,i.jsx)(n.strong,{children:"Compatibility"})]}),"\n",(0,i.jsx)(n.h3,{id:"supported-go-versions",children:(0,i.jsx)(n.strong,{children:"Supported Go Versions"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Minimum"}),": Go 1.22.0"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Recommended"}),": Go 1.22.8+"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"database-compatibility",children:(0,i.jsx)(n.strong,{children:"Database Compatibility"})}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Database"}),(0,i.jsx)(n.th,{children:"Version"}),(0,i.jsx)(n.th,{children:"Status"}),(0,i.jsx)(n.th,{children:"Notes"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Scylla DB"}),(0,i.jsx)(n.td,{children:"5.0+"}),(0,i.jsx)(n.td,{children:"\u2705 Recommended"}),(0,i.jsx)(n.td,{children:"Optimal performance"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Dragonfly"}),(0,i.jsx)(n.td,{children:"1.0+"}),(0,i.jsx)(n.td,{children:"\u2705 Supported"}),(0,i.jsx)(n.td,{children:"Memory efficient"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Redis"}),(0,i.jsx)(n.td,{children:"6.0+"}),(0,i.jsx)(n.td,{children:"\u2705 Development"}),(0,i.jsx)(n.td,{children:"Limited scale"})]})]})]}),"\n",(0,i.jsxs)(n.h2,{id:"-known-issues",children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Known Issues"})]}),"\n",(0,i.jsx)(n.h3,{id:"current-limitations",children:(0,i.jsx)(n.strong,{children:"Current Limitations"})}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Large Vector Support"}),": Vectors >10MB may experience increased latency"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"workarounds",children:(0,i.jsx)(n.strong,{children:"Workarounds"})}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Vector Chunking"}),": Split large vectors into smaller segments"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"-download--installation",children:["\ud83d\udcbe ",(0,i.jsx)(n.strong,{children:"Download & Installation"})]}),"\n",(0,i.jsx)(n.h3,{id:"container-images",children:(0,i.jsx)(n.strong,{children:"Container Images"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Pull the latest image\ndocker pull ghcr.io/meesho/onfs-api-server:latest\ndocker pull ghcr.io/meesho/onfs-consumer:latest\ndocker pull ghcr.io/meesho/horizon:latest\ndocker pull ghcr.io/meesho/trufflebox-ui:latest\n\n"})}),"\n",(0,i.jsx)(n.h3,{id:"arch-supported",children:(0,i.jsx)(n.strong,{children:"Arch Supported"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.strong,{children:"Linux (amd64)"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.strong,{children:"Linux (arm64)"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.strong,{children:"macOS (Intel)"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.strong,{children:"macOS (Apple Silicon)"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Checkout ",(0,i.jsx)(n.a,{href:"https://github.com/orgs/Meesho/packages?repo_name=BharatMLStack",children:"Packages"})]}),"\n",(0,i.jsx)(n.h3,{id:"source-code",children:(0,i.jsx)(n.strong,{children:"Source Code"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/Meesho/BharatMLStack.git\ncd BharatMLStack/online-feature-store\ngit checkout release/1.0.0\n"})}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcac ",(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>o});var s=r(6540);const i={},t=s.createContext(i);function l(e){const n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/d152284c.8adb699d.js b/docs/assets/js/d152284c.8adb699d.js deleted file mode 100644 index b8f92b00..00000000 --- a/docs/assets/js/d152284c.8adb699d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1606],{5876:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"online-feature-store/v1.0.0/release-notes","title":"Release Notes","description":"Version 1.0.0 \ud83d\ude80","source":"@site/docs/online-feature-store/v1.0.0/release-notes.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/release-notes","permalink":"/BharatMLStack/online-feature-store/v1.0.0/release-notes","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/release-notes.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"title":"Release Notes","sidebar_position":5},"sidebar":"tutorialSidebar","previous":{"title":"Key Functionalities","permalink":"/BharatMLStack/online-feature-store/v1.0.0/functionalities"},"next":{"title":"Quick Start","permalink":"/BharatMLStack/category/quick-start"}}');var i=r(4848),t=r(8453);const l={title:"Release Notes",sidebar_position:5},o="Online Feature Store - Release Notes",a={},c=[{value:"Version 1.0.0 \ud83d\ude80",id:"version-100-",level:2},{value:"\ud83c\udfaf <strong>What's New</strong>",id:"-whats-new",level:2},{value:"<strong>Core Feature Store Engine</strong>",id:"core-feature-store-engine",level:3},{value:"<strong>Advanced Data Type Support</strong>",id:"advanced-data-type-support",level:3},{value:"<strong>Multi-Database Architecture</strong>",id:"multi-database-architecture",level:3},{value:"\ud83d\ude80 <strong>Performance & Optimization</strong>",id:"-performance--optimization",level:2},{value:"<strong>PSDB v2 Serialization Format without compression</strong>",id:"psdb-v2-serialization-format-without-compression",level:3},{value:"<strong>Memory Management</strong>",id:"memory-management",level:3},{value:"<strong>Compression Support</strong>",id:"compression-support",level:3},{value:"\ud83d\udee0\ufe0f <strong>APIs & SDKs</strong>",id:"\ufe0f-apis--sdks",level:2},{value:"<strong>gRPC API</strong>",id:"grpc-api",level:3},{value:"<strong>Go SDK v1.0.0</strong>",id:"go-sdk-v100",level:3},{value:"<strong>Python SDK Collection v1.0.0</strong>",id:"python-sdk-collection-v100",level:3},{value:"<strong>RESTful Interface</strong>",id:"restful-interface",level:3},{value:"\ud83d\udd27 <strong>Enterprise Features</strong>",id:"-enterprise-features",level:2},{value:"<strong>Production Readiness</strong>",id:"production-readiness",level:3},{value:"<strong>Monitoring & Observability</strong>",id:"monitoring--observability",level:3},{value:"<strong>Data Management</strong>",id:"data-management",level:3},{value:"\ud83c\udfd7\ufe0f <strong>Deployment & Configuration</strong>",id:"\ufe0f-deployment--configuration",level:2},{value:"<strong>Container Support</strong>",id:"container-support",level:3},{value:"\ud83d\udd04 <strong>Compatibility</strong>",id:"-compatibility",level:2},{value:"<strong>Supported Go Versions</strong>",id:"supported-go-versions",level:3},{value:"<strong>Database Compatibility</strong>",id:"database-compatibility",level:3},{value:"\ud83d\udc1b <strong>Known Issues</strong>",id:"-known-issues",level:2},{value:"<strong>Current Limitations</strong>",id:"current-limitations",level:3},{value:"<strong>Workarounds</strong>",id:"workarounds",level:3},{value:"\ud83d\udcbe <strong>Download & Installation</strong>",id:"-download--installation",level:2},{value:"<strong>Container Images</strong>",id:"container-images",level:3},{value:"<strong>Arch Supported</strong>",id:"arch-supported",level:3},{value:"<strong>Source Code</strong>",id:"source-code",level:3},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"online-feature-store---release-notes",children:"Online Feature Store - Release Notes"})}),"\n",(0,i.jsx)(n.h2,{id:"version-100-",children:"Version 1.0.0 \ud83d\ude80"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Release Date"}),": June 2025",(0,i.jsx)(n.br,{}),"\n",(0,i.jsx)(n.strong,{children:"Status"}),": General Availability (GA)"]}),"\n",(0,i.jsxs)(n.p,{children:["We're excited to announce the first stable release of the ",(0,i.jsx)(n.strong,{children:"BharatML Online Feature Store"})," - a high-performance, production-ready feature serving system designed for machine learning workloads."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsxs)(n.h2,{id:"-whats-new",children:["\ud83c\udfaf ",(0,i.jsx)(n.strong,{children:"What's New"})]}),"\n",(0,i.jsx)(n.h3,{id:"core-feature-store-engine",children:(0,i.jsx)(n.strong,{children:"Core Feature Store Engine"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Ultra-Low Latency"}),": Achieve sub-10ms P99 response times for real-time inference"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"High Throughput"}),": Tested and validated at 1M+ requests per second with 100 IDs per request"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multi-Entity Support"}),": Serve features for multiple entity types (users, transactions, products, etc.)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch Retrieval"}),": Efficient bulk feature fetching for real-time inference and incremental/online training workloads"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"advanced-data-type-support",children:(0,i.jsx)(n.strong,{children:"Advanced Data Type Support"})}),"\n",(0,i.jsx)(n.p,{children:"Complete support for all ML-relevant data types:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Data Type"}),(0,i.jsx)(n.th,{children:"Variants"}),(0,i.jsx)(n.th,{children:"Optimizations"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Integers"})}),(0,i.jsx)(n.td,{children:"int8, int16, int32, int64"}),(0,i.jsx)(n.td,{children:"Varint encoding, bit packing"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Floats"})}),(0,i.jsx)(n.td,{children:"float8, float16, float32, float64"}),(0,i.jsx)(n.td,{children:"IEEE 754 compliant storage"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Strings"})}),(0,i.jsx)(n.td,{children:"Variable length"}),(0,i.jsx)(n.td,{children:"Pascal string encoding"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Booleans"})}),(0,i.jsx)(n.td,{children:"Bit-packed"}),(0,i.jsx)(n.td,{children:"8x memory compression"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Vectors"})}),(0,i.jsx)(n.td,{children:"All above types"}),(0,i.jsx)(n.td,{children:"Contiguous memory layout"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"multi-database-architecture",children:(0,i.jsx)(n.strong,{children:"Multi-Database Architecture"})}),"\n",(0,i.jsx)(n.p,{children:"Flexible backend storage with optimized drivers:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\ud83d\udd25 Scylla DB"}),": Ultra-high performance NoSQL (recommended for production)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u26a1 Dragonfly"}),": Modern Redis alternative with better memory efficiency"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\ud83d\udcca Redis"}),": Standard in-memory store for development environments"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"-performance--optimization",children:["\ud83d\ude80 ",(0,i.jsx)(n.strong,{children:"Performance & Optimization"})]}),"\n",(0,i.jsx)(n.h3,{id:"psdb-v2-serialization-format-without-compression",children:(0,i.jsx)(n.strong,{children:"PSDB v2 Serialization Format without compression"})}),"\n",(0,i.jsxs)(n.p,{children:["Our proprietary ",(0,i.jsx)(n.strong,{children:"Permanent Storage Data Block"})," format delivers:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"35% faster"})," serialization than Protocol Buffers"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"100.0-102.2%"})," size efficiency (near raw data size)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"93% fewer allocations"})," than Apache Arrow (4 vs 66 allocs/op)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"975 MB/s"})," throughput capacity"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"memory-management",children:(0,i.jsx)(n.strong,{children:"Memory Management"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Object Pooling"}),": Zero-allocation feature retrieval with PSDBPool"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Connection Pooling"}),": Optimized database connection reuse"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Buffer Management"}),": Pre-allocated buffers for serialization operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Smart Caching"}),": Configurable TTL-based feature caching"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"compression-support",children:(0,i.jsx)(n.strong,{children:"Compression Support"})}),"\n",(0,i.jsx)(n.p,{children:"Intelligent compression with multiple algorithms:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"ZSTD"}),": Maximum compression for bandwidth-constrained environments"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Auto-Fallback"}),": Intelligent selection based on data characteristics"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"\ufe0f-apis--sdks",children:["\ud83d\udee0\ufe0f ",(0,i.jsx)(n.strong,{children:"APIs & SDKs"})]}),"\n",(0,i.jsx)(n.h3,{id:"grpc-api",children:(0,i.jsx)(n.strong,{children:"gRPC API"})}),"\n",(0,i.jsx)(n.p,{children:"High-performance, language-agnostic interface:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-protobuf",children:"service FeatureStoreService {\n rpc RetrieveFeatures(Query) returns (QueryResult);\n rpc RetrieveDecodedFeatures(Query) returns (DecodedQueryResult);\n rpc PersistFeatures(PersistFeaturesRequest) returns (Result);\n}\n"})}),"\n",(0,i.jsx)(n.h3,{id:"go-sdk-v100",children:(0,i.jsx)(n.strong,{children:"Go SDK v1.0.0"})}),"\n",(0,i.jsx)(n.p,{children:"Native Go client with enterprise features:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Type-Safe API"}),": Strongly typed interfaces and data structures"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Connection Management"}),": Configurable timeouts, TLS, and pooling"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch Processing"}),": Configurable batch sizes for bulk operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Metrics Integration"}),": Built-in timing and count metrics"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Authentication"}),": Caller ID and token-based security"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"python-sdk-collection-v100",children:(0,i.jsx)(n.strong,{children:"Python SDK Collection v1.0.0"})}),"\n",(0,i.jsx)(n.p,{children:"Three specialized Python packages for different ML workflows:"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"bharatml_commons"})," - Common utilities and protobuf definitions:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"HTTP Client"}),": Feature metadata operations"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Protobuf Support"}),": Generated Python definitions for all APIs"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Utility Functions"}),": Column cleaning and feature processing"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"spark_feature_push_client"})," - Apache Spark-based data pipeline:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Batch ETL"}),": Large-scale data processing with Spark"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Kafka Integration"}),": Protobuf serialization and Kafka publishing"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multi-Source Support"}),": Hive, Delta, Parquet, Cloud Storage"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"grpc_feature_client"})," - High-performance gRPC client:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Real-time Operations"}),": Direct persist/retrieve API access"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Low Latency"}),": Optimized for model inference workflows"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Type Safety"}),": Strongly typed Python interfaces"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"restful-interface",children:(0,i.jsx)(n.strong,{children:"RESTful Interface"})}),"\n",(0,i.jsx)(n.p,{children:"HTTP API for web applications:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Health Endpoints"}),": Built-in monitoring and status checks"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"-enterprise-features",children:["\ud83d\udd27 ",(0,i.jsx)(n.strong,{children:"Enterprise Features"})]}),"\n",(0,i.jsx)(n.h3,{id:"production-readiness",children:(0,i.jsx)(n.strong,{children:"Production Readiness"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Health Checks"}),": ",(0,i.jsx)(n.code,{children:"/health/self"})," endpoints for probing"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Graceful Shutdown"}),": Clean resource cleanup with configurable timeouts"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Structured Logging"}),": Formatted logs with configurable levels"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Signal Handling"}),": SIGTERM/SIGINT support for container environments"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"monitoring--observability",children:(0,i.jsx)(n.strong,{children:"Monitoring & Observability"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"DataDog Integration"}),": Built-in metrics collection and reporting"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Prometheus Compatibility"}),": Standard metrics format support"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Custom Metrics"}),": Request rates, latencies, error rates, and business metrics"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Distributed Tracing [untested]"}),": Request flow visibility across services"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"data-management",children:(0,i.jsx)(n.strong,{children:"Data Management"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"TTL Support"}),": Automatic feature expiration"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Feature Versioning"}),": Schema evolution with backward compatibility"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Bulk Operations"}),": Efficient batch read/write with configurable sizes"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"\ufe0f-deployment--configuration",children:["\ud83c\udfd7\ufe0f ",(0,i.jsx)(n.strong,{children:"Deployment & Configuration"})]}),"\n",(0,i.jsx)(n.h3,{id:"container-support",children:(0,i.jsx)(n.strong,{children:"Container Support"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Docker Images"}),": Multi-architecture support (amd64, arm64)"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"-compatibility",children:["\ud83d\udd04 ",(0,i.jsx)(n.strong,{children:"Compatibility"})]}),"\n",(0,i.jsx)(n.h3,{id:"supported-go-versions",children:(0,i.jsx)(n.strong,{children:"Supported Go Versions"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Minimum"}),": Go 1.22.0"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Recommended"}),": Go 1.22.8+"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"database-compatibility",children:(0,i.jsx)(n.strong,{children:"Database Compatibility"})}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Database"}),(0,i.jsx)(n.th,{children:"Version"}),(0,i.jsx)(n.th,{children:"Status"}),(0,i.jsx)(n.th,{children:"Notes"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Scylla DB"}),(0,i.jsx)(n.td,{children:"5.0+"}),(0,i.jsx)(n.td,{children:"\u2705 Recommended"}),(0,i.jsx)(n.td,{children:"Optimal performance"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Dragonfly"}),(0,i.jsx)(n.td,{children:"1.0+"}),(0,i.jsx)(n.td,{children:"\u2705 Supported"}),(0,i.jsx)(n.td,{children:"Memory efficient"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Redis"}),(0,i.jsx)(n.td,{children:"6.0+"}),(0,i.jsx)(n.td,{children:"\u2705 Development"}),(0,i.jsx)(n.td,{children:"Limited scale"})]})]})]}),"\n",(0,i.jsxs)(n.h2,{id:"-known-issues",children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Known Issues"})]}),"\n",(0,i.jsx)(n.h3,{id:"current-limitations",children:(0,i.jsx)(n.strong,{children:"Current Limitations"})}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Large Vector Support"}),": Vectors >10MB may experience increased latency"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"workarounds",children:(0,i.jsx)(n.strong,{children:"Workarounds"})}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Vector Chunking"}),": Split large vectors into smaller segments"]}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"-download--installation",children:["\ud83d\udcbe ",(0,i.jsx)(n.strong,{children:"Download & Installation"})]}),"\n",(0,i.jsx)(n.h3,{id:"container-images",children:(0,i.jsx)(n.strong,{children:"Container Images"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Pull the latest image\ndocker pull ghcr.io/meesho/onfs-api-server:latest\ndocker pull ghcr.io/meesho/onfs-consumer:latest\ndocker pull ghcr.io/meesho/horizon:latest\ndocker pull ghcr.io/meesho/trufflebox-ui:latest\n\n"})}),"\n",(0,i.jsx)(n.h3,{id:"arch-supported",children:(0,i.jsx)(n.strong,{children:"Arch Supported"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.strong,{children:"Linux (amd64)"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.strong,{children:"Linux (arm64)"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.strong,{children:"macOS (Intel)"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.strong,{children:"macOS (Apple Silicon)"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Checkout ",(0,i.jsx)(n.a,{href:"https://github.com/orgs/Meesho/packages?repo_name=BharatMLStack",children:"Packages"})]}),"\n",(0,i.jsx)(n.h3,{id:"source-code",children:(0,i.jsx)(n.strong,{children:"Source Code"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/Meesho/BharatMLStack.git\ncd BharatMLStack/online-feature-store\ngit checkout release/1.0.0\n"})}),"\n",(0,i.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,i.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,i.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\ud83d\udcac ",(0,i.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,i.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,i.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,i.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,i.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,i.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,i.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,i.jsx)("div",{align:"center",children:(0,i.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>o});var s=r(6540);const i={},t=s.createContext(i);function l(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/e66382f6.aaa6c9c6.js b/docs/assets/js/e66382f6.ad26fd04.js similarity index 69% rename from docs/assets/js/e66382f6.aaa6c9c6.js rename to docs/assets/js/e66382f6.ad26fd04.js index b5cedec5..23fcfec6 100644 --- a/docs/assets/js/e66382f6.aaa6c9c6.js +++ b/docs/assets/js/e66382f6.ad26fd04.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1405],{287:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/v1.0.0-onfs-arch-7b3e91a84b2a24a378d13db769995c08.png"},8453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>o});var r=s(6540);const t={},i=r.createContext(t);function l(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),r.createElement(i.Provider,{value:n},e.children)}},9563:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"online-feature-store/v1.0.0/architecture","title":"Architecture","description":"The Online Feature Store (OnFS) is part of BharatMLStack, designed to support real-time ML workloads through low-latency feature retrieval and flexible feature ingestion pipelines. It ensures that features generated offline or online are immediately accessible for inference.","source":"@site/docs/online-feature-store/v1.0.0/architecture.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/architecture","permalink":"/BharatMLStack/online-feature-store/v1.0.0/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/architecture.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Architecture","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"v1.0.0","permalink":"/BharatMLStack/online-feature-store/v1.0.0"},"next":{"title":"Data Formats","permalink":"/BharatMLStack/online-feature-store/v1.0.0/data-formats"}}');var t=s(4848),i=s(8453);const l={title:"Architecture",sidebar_position:1},o="BharatMLStack - Online Feature Store (OnFS)",a={},c=[{value:"\ud83e\udde9 Key Components",id:"-key-components",level:2},{value:"1. <strong>Data Ingestion Paths</strong>",id:"1-data-ingestion-paths",level:3},{value:"a. <strong>Direct Push from Feature Engineering Jobs</strong>",id:"a-direct-push-from-feature-engineering-jobs",level:4},{value:"b. <strong>Push from Offline Feature Store</strong>",id:"b-push-from-offline-feature-store",level:4},{value:"c. <strong>Streaming Push via Apache Flink</strong>",id:"c-streaming-push-via-apache-flink",level:4},{value:"2. <strong>Message Queue: Kafka</strong>",id:"2-message-queue-kafka",level:3},{value:"3. <strong>Core Components</strong>",id:"3-core-components",level:3},{value:"\ud83e\udde0 <strong>Horizon Control Plane</strong>",id:"-horizon-control-plane",level:4},{value:"\ud83d\udd0d <strong>Trufflebox UI</strong>",id:"-trufflebox-ui",level:4},{value:"\u2699\ufe0f <strong>OnFS-Consumers</strong>",id:"\ufe0f-onfs-consumers",level:4},{value:"\ud83d\ude80 <strong>OnFS API Server</strong>",id:"-onfs-api-server",level:4},{value:"4. <strong>Online Databases</strong>",id:"4-online-databases",level:3},{value:"5. <strong>Clients for Serving</strong>",id:"5-clients-for-serving",level:3},{value:"6. <strong>Observability</strong>",id:"6-observability",level:3},{value:"\ud83d\udcbb Supported Environments",id:"-supported-environments",level:2},{value:"\ud83d\udc65 Target Users",id:"-target-users",level:2},{value:"\u2705 Benefits",id:"-benefits",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"bharatmlstack---online-feature-store-onfs",children:"BharatMLStack - Online Feature Store (OnFS)"})}),"\n",(0,t.jsxs)(n.p,{children:["The Online Feature Store (OnFS) is part of ",(0,t.jsx)(n.strong,{children:"BharatMLStack"}),", designed to support real-time ML workloads through low-latency feature retrieval and flexible feature ingestion pipelines. It ensures that features generated offline or online are immediately accessible for inference."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"BharatMLStack's Online-feature-store Architecture",src:s(287).A+"",width:"2174",height:"1208"})}),"\n",(0,t.jsx)(n.h2,{id:"-key-components",children:"\ud83e\udde9 Key Components"}),"\n",(0,t.jsxs)(n.h3,{id:"1-data-ingestion-paths",children:["1. ",(0,t.jsx)(n.strong,{children:"Data Ingestion Paths"})]}),"\n",(0,t.jsxs)(n.h4,{id:"a-direct-push-from-feature-engineering-jobs",children:["a. ",(0,t.jsx)(n.strong,{children:"Direct Push from Feature Engineering Jobs"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Source:"})," Apache Spark"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Client:"})," ",(0,t.jsx)(n.code,{children:"spark_feature_push_client"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Flow:"})," Features are pushed directly to Kafka."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"b-push-from-offline-feature-store",children:["b. ",(0,t.jsx)(n.strong,{children:"Push from Offline Feature Store"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Source:"})," Delta Lake, GCS, or S3"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Flow:"})," Scheduled notebooks (",(0,t.jsx)(n.code,{children:"push_features_to_online-feature-stores.ipynb"}),") push to Kafka using the same ",(0,t.jsx)(n.code,{children:"spark_feature_push_client"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"c-streaming-push-via-apache-flink",children:["c. ",(0,t.jsx)(n.strong,{children:"Streaming Push via Apache Flink"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Source:"})," Flink streaming jobs"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Client:"})," ",(0,t.jsx)(n.code,{children:"custom-producer"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Flow:"})," Real-time features sent to Kafka."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"2-message-queue-kafka",children:["2. ",(0,t.jsx)(n.strong,{children:"Message Queue: Kafka"})]}),"\n",(0,t.jsx)(n.p,{children:"Kafka serves as a decoupled buffer between producers (push clients) and consumers (OnFS ingestion workers), ensuring durability and backpressure handling."}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"3-core-components",children:["3. ",(0,t.jsx)(n.strong,{children:"Core Components"})]}),"\n",(0,t.jsxs)(n.h4,{id:"-horizon-control-plane",children:["\ud83e\udde0 ",(0,t.jsx)(n.strong,{children:"Horizon Control Plane"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Manages config distribution and metadata orchestration."}),"\n",(0,t.jsxs)(n.li,{children:["Stores schemas, feature group mappings, job configurations in ",(0,t.jsx)(n.code,{children:"etcd"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"-trufflebox-ui",children:["\ud83d\udd0d ",(0,t.jsx)(n.strong,{children:"Trufflebox UI"})]}),"\n",(0,t.jsx)(n.p,{children:"Frontend interface for managing the ML Feature Store ecosystem:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Feature Catalog"})," \u2013 Browse, search, and inspect registered features and groups."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Store and Job Registry"})," \u2013 View and manage ingestion jobs, feature store states, and lineage."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Admin Ops"})," \u2013 Approve or reject feature group pushes and schema edits."]}),"\n",(0,t.jsxs)(n.li,{children:["Designed for use by ",(0,t.jsx)(n.strong,{children:"Data Scientists, MLEs"}),", and ",(0,t.jsx)(n.strong,{children:"Platform Admins"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"\ufe0f-onfs-consumers",children:["\u2699\ufe0f ",(0,t.jsx)(n.strong,{children:"OnFS-Consumers"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Kafka consumers that read and validate feature messages."}),"\n",(0,t.jsx)(n.li,{children:"Responsible for persisting features to online databases (Redis, ScyllaDB, DragonflyDB)."}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"-onfs-api-server",children:["\ud83d\ude80 ",(0,t.jsx)(n.strong,{children:"OnFS API Server"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["gRPC server exposing interfaces for:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Real-time feature persistence."}),"\n",(0,t.jsx)(n.li,{children:"Low-latency feature retrieval."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Access controlled and schema-validated via ",(0,t.jsx)(n.code,{children:"etcd"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"4-online-databases",children:["4. ",(0,t.jsx)(n.strong,{children:"Online Databases"})]}),"\n",(0,t.jsx)(n.p,{children:"Stores real-time features for high-performance retrieval:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"DragonflyDB"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"Redis"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"ScyllaDB"})}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"5-clients-for-serving",children:["5. ",(0,t.jsx)(n.strong,{children:"Clients for Serving"})]}),"\n",(0,t.jsx)(n.p,{children:"Applications use client SDKs to fetch features:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Go SDK"}),": ",(0,t.jsx)(n.code,{children:"go-sdk"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Python SDK"}),": ",(0,t.jsx)(n.code,{children:"grpc-feature-client"})]}),"\n",(0,t.jsx)(n.li,{children:"Used in backend inference apps to request features using entity keys."}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"6-observability",children:["6. ",(0,t.jsx)(n.strong,{children:"Observability"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Prometheus"})," \u2013 Metrics collection (e.g., ingest lag, QPS, latency)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Grafana"})," \u2013 Dashboard for platform health, feature access, ingestion success/failure."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"-supported-environments",children:"\ud83d\udcbb Supported Environments"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Kubernetes (K8s)"}),"\n",(0,t.jsx)(n.li,{children:"Google Kubernetes Engine (GKE)"}),"\n",(0,t.jsx)(n.li,{children:"Amazon EKS"}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"-target-users",children:"\ud83d\udc65 Target Users"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"User"}),(0,t.jsx)(n.th,{children:"Role"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Data Scientists"}),(0,t.jsx)(n.td,{children:"Browse features, define jobs, approve/reject changes via Trufflebox UI"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MLEs"}),(0,t.jsx)(n.td,{children:"Develop and push features using Spark/Flink/notebooks"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Infra Admins"}),(0,t.jsx)(n.td,{children:"Manage store lifecycle, metadata, and approvals"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Backend Devs"}),(0,t.jsx)(n.td,{children:"Use SDKs to retrieve features in Go/Python inference services"})]})]})]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"-benefits",children:"\u2705 Benefits"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Unified real-time and offline ingestion."}),"\n",(0,t.jsx)(n.li,{children:"Low-latency inference-ready features."}),"\n",(0,t.jsx)(n.li,{children:"Config-driven orchestration."}),"\n",(0,t.jsx)(n.li,{children:"Built-in approval workflows via Trufflebox."}),"\n",(0,t.jsx)(n.li,{children:"Scalable across thousands of entities and feature groups."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,t.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,t.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,t.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\ud83d\udcac ",(0,t.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,t.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,t.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,t.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,t.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,t.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,t.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,t.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,t.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,t.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)("div",{align:"center",children:(0,t.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,t.jsx)("div",{align:"center",children:(0,t.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1405],{8453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>o});var r=s(6540);const t={},i=r.createContext(t);function l(e){const n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),r.createElement(i.Provider,{value:n},e.children)}},9326:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/v1.0.0-onfs-arch-7b3e91a84b2a24a378d13db769995c08.png"},9563:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"online-feature-store/v1.0.0/architecture","title":"Architecture","description":"The Online Feature Store (OnFS) is part of BharatMLStack, designed to support real-time ML workloads through low-latency feature retrieval and flexible feature ingestion pipelines. It ensures that features generated offline or online are immediately accessible for inference.","source":"@site/docs/online-feature-store/v1.0.0/architecture.md","sourceDirName":"online-feature-store/v1.0.0","slug":"/online-feature-store/v1.0.0/architecture","permalink":"/BharatMLStack/online-feature-store/v1.0.0/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/online-feature-store/v1.0.0/architecture.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Architecture","sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"v1.0.0","permalink":"/BharatMLStack/online-feature-store/v1.0.0"},"next":{"title":"Data Formats","permalink":"/BharatMLStack/online-feature-store/v1.0.0/data-formats"}}');var t=s(4848),i=s(8453);const l={title:"Architecture",sidebar_position:1},o="BharatMLStack - Online Feature Store (OnFS)",a={},c=[{value:"\ud83e\udde9 Key Components",id:"-key-components",level:2},{value:"1. <strong>Data Ingestion Paths</strong>",id:"1-data-ingestion-paths",level:3},{value:"a. <strong>Direct Push from Feature Engineering Jobs</strong>",id:"a-direct-push-from-feature-engineering-jobs",level:4},{value:"b. <strong>Push from Offline Feature Store</strong>",id:"b-push-from-offline-feature-store",level:4},{value:"c. <strong>Streaming Push via Apache Flink</strong>",id:"c-streaming-push-via-apache-flink",level:4},{value:"2. <strong>Message Queue: Kafka</strong>",id:"2-message-queue-kafka",level:3},{value:"3. <strong>Core Components</strong>",id:"3-core-components",level:3},{value:"\ud83e\udde0 <strong>Horizon Control Plane</strong>",id:"-horizon-control-plane",level:4},{value:"\ud83d\udd0d <strong>Trufflebox UI</strong>",id:"-trufflebox-ui",level:4},{value:"\u2699\ufe0f <strong>OnFS-Consumers</strong>",id:"\ufe0f-onfs-consumers",level:4},{value:"\ud83d\ude80 <strong>OnFS API Server</strong>",id:"-onfs-api-server",level:4},{value:"4. <strong>Online Databases</strong>",id:"4-online-databases",level:3},{value:"5. <strong>Clients for Serving</strong>",id:"5-clients-for-serving",level:3},{value:"6. <strong>Observability</strong>",id:"6-observability",level:3},{value:"\ud83d\udcbb Supported Environments",id:"-supported-environments",level:2},{value:"\ud83d\udc65 Target Users",id:"-target-users",level:2},{value:"\u2705 Benefits",id:"-benefits",level:2},{value:"Contributing",id:"contributing",level:2},{value:"Community & Support",id:"community--support",level:2},{value:"License",id:"license",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"bharatmlstack---online-feature-store-onfs",children:"BharatMLStack - Online Feature Store (OnFS)"})}),"\n",(0,t.jsxs)(n.p,{children:["The Online Feature Store (OnFS) is part of ",(0,t.jsx)(n.strong,{children:"BharatMLStack"}),", designed to support real-time ML workloads through low-latency feature retrieval and flexible feature ingestion pipelines. It ensures that features generated offline or online are immediately accessible for inference."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"BharatMLStack's Online-feature-store Architecture",src:s(9326).A+"",width:"2174",height:"1208"})}),"\n",(0,t.jsx)(n.h2,{id:"-key-components",children:"\ud83e\udde9 Key Components"}),"\n",(0,t.jsxs)(n.h3,{id:"1-data-ingestion-paths",children:["1. ",(0,t.jsx)(n.strong,{children:"Data Ingestion Paths"})]}),"\n",(0,t.jsxs)(n.h4,{id:"a-direct-push-from-feature-engineering-jobs",children:["a. ",(0,t.jsx)(n.strong,{children:"Direct Push from Feature Engineering Jobs"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Source:"})," Apache Spark"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Client:"})," ",(0,t.jsx)(n.code,{children:"spark_feature_push_client"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Flow:"})," Features are pushed directly to Kafka."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"b-push-from-offline-feature-store",children:["b. ",(0,t.jsx)(n.strong,{children:"Push from Offline Feature Store"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Source:"})," Delta Lake, GCS, or S3"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Flow:"})," Scheduled notebooks (",(0,t.jsx)(n.code,{children:"push_features_to_online-feature-stores.ipynb"}),") push to Kafka using the same ",(0,t.jsx)(n.code,{children:"spark_feature_push_client"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"c-streaming-push-via-apache-flink",children:["c. ",(0,t.jsx)(n.strong,{children:"Streaming Push via Apache Flink"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Source:"})," Flink streaming jobs"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Client:"})," ",(0,t.jsx)(n.code,{children:"custom-producer"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Flow:"})," Real-time features sent to Kafka."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"2-message-queue-kafka",children:["2. ",(0,t.jsx)(n.strong,{children:"Message Queue: Kafka"})]}),"\n",(0,t.jsx)(n.p,{children:"Kafka serves as a decoupled buffer between producers (push clients) and consumers (OnFS ingestion workers), ensuring durability and backpressure handling."}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"3-core-components",children:["3. ",(0,t.jsx)(n.strong,{children:"Core Components"})]}),"\n",(0,t.jsxs)(n.h4,{id:"-horizon-control-plane",children:["\ud83e\udde0 ",(0,t.jsx)(n.strong,{children:"Horizon Control Plane"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Manages config distribution and metadata orchestration."}),"\n",(0,t.jsxs)(n.li,{children:["Stores schemas, feature group mappings, job configurations in ",(0,t.jsx)(n.code,{children:"etcd"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"-trufflebox-ui",children:["\ud83d\udd0d ",(0,t.jsx)(n.strong,{children:"Trufflebox UI"})]}),"\n",(0,t.jsx)(n.p,{children:"Frontend interface for managing the ML Feature Store ecosystem:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Feature Catalog"})," \u2013 Browse, search, and inspect registered features and groups."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Store and Job Registry"})," \u2013 View and manage ingestion jobs, feature store states, and lineage."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Admin Ops"})," \u2013 Approve or reject feature group pushes and schema edits."]}),"\n",(0,t.jsxs)(n.li,{children:["Designed for use by ",(0,t.jsx)(n.strong,{children:"Data Scientists, MLEs"}),", and ",(0,t.jsx)(n.strong,{children:"Platform Admins"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"\ufe0f-onfs-consumers",children:["\u2699\ufe0f ",(0,t.jsx)(n.strong,{children:"OnFS-Consumers"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Kafka consumers that read and validate feature messages."}),"\n",(0,t.jsx)(n.li,{children:"Responsible for persisting features to online databases (Redis, ScyllaDB, DragonflyDB)."}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"-onfs-api-server",children:["\ud83d\ude80 ",(0,t.jsx)(n.strong,{children:"OnFS API Server"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["gRPC server exposing interfaces for:","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Real-time feature persistence."}),"\n",(0,t.jsx)(n.li,{children:"Low-latency feature retrieval."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Access controlled and schema-validated via ",(0,t.jsx)(n.code,{children:"etcd"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"4-online-databases",children:["4. ",(0,t.jsx)(n.strong,{children:"Online Databases"})]}),"\n",(0,t.jsx)(n.p,{children:"Stores real-time features for high-performance retrieval:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"DragonflyDB"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"Redis"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.strong,{children:"ScyllaDB"})}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"5-clients-for-serving",children:["5. ",(0,t.jsx)(n.strong,{children:"Clients for Serving"})]}),"\n",(0,t.jsx)(n.p,{children:"Applications use client SDKs to fetch features:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Go SDK"}),": ",(0,t.jsx)(n.code,{children:"go-sdk"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Python SDK"}),": ",(0,t.jsx)(n.code,{children:"grpc-feature-client"})]}),"\n",(0,t.jsx)(n.li,{children:"Used in backend inference apps to request features using entity keys."}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsxs)(n.h3,{id:"6-observability",children:["6. ",(0,t.jsx)(n.strong,{children:"Observability"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Prometheus"})," \u2013 Metrics collection (e.g., ingest lag, QPS, latency)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Grafana"})," \u2013 Dashboard for platform health, feature access, ingestion success/failure."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"-supported-environments",children:"\ud83d\udcbb Supported Environments"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Kubernetes (K8s)"}),"\n",(0,t.jsx)(n.li,{children:"Google Kubernetes Engine (GKE)"}),"\n",(0,t.jsx)(n.li,{children:"Amazon EKS"}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"-target-users",children:"\ud83d\udc65 Target Users"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"User"}),(0,t.jsx)(n.th,{children:"Role"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Data Scientists"}),(0,t.jsx)(n.td,{children:"Browse features, define jobs, approve/reject changes via Trufflebox UI"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MLEs"}),(0,t.jsx)(n.td,{children:"Develop and push features using Spark/Flink/notebooks"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Infra Admins"}),(0,t.jsx)(n.td,{children:"Manage store lifecycle, metadata, and approvals"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Backend Devs"}),(0,t.jsx)(n.td,{children:"Use SDKs to retrieve features in Go/Python inference services"})]})]})]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"-benefits",children:"\u2705 Benefits"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Unified real-time and offline ingestion."}),"\n",(0,t.jsx)(n.li,{children:"Low-latency inference-ready features."}),"\n",(0,t.jsx)(n.li,{children:"Config-driven orchestration."}),"\n",(0,t.jsx)(n.li,{children:"Built-in approval workflows via Trufflebox."}),"\n",(0,t.jsx)(n.li,{children:"Scalable across thousands of entities and feature groups."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"contributing",children:"Contributing"}),"\n",(0,t.jsxs)(n.p,{children:["We welcome contributions from the community! Please see our ",(0,t.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/CONTRIBUTING.md",children:"Contributing Guide"})," for details on how to get started."]}),"\n",(0,t.jsx)(n.h2,{id:"community--support",children:"Community & Support"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\ud83d\udcac ",(0,t.jsx)(n.strong,{children:"Discord"}),": Join our ",(0,t.jsx)(n.a,{href:"https://discord.gg/XkT7XsV2AU",children:"community chat"})]}),"\n",(0,t.jsxs)(n.li,{children:["\ud83d\udc1b ",(0,t.jsx)(n.strong,{children:"Issues"}),": Report bugs and request features on ",(0,t.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/issues",children:"GitHub Issues"})]}),"\n",(0,t.jsxs)(n.li,{children:["\ud83d\udce7 ",(0,t.jsx)(n.strong,{children:"Email"}),": Contact us at ",(0,t.jsx)(n.a,{href:"mailto:ml-oss@meesho.com",children:"ml-oss@meesho.com"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"license",children:"License"}),"\n",(0,t.jsxs)(n.p,{children:["BharatMLStack is open-source software licensed under the ",(0,t.jsx)(n.a,{href:"https://github.com/Meesho/BharatMLStack/blob/main/LICENSE.md",children:"BharatMLStack Business Source License 1.1"}),"."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)("div",{align:"center",children:(0,t.jsx)("strong",{children:"Built with \u2764\ufe0f for the ML community from Meesho"})}),"\n",(0,t.jsx)("div",{align:"center",children:(0,t.jsx)("strong",{children:"If you find this useful, \u2b50\ufe0f the repo \u2014 your support means the world to us!"})})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/docs/assets/js/e8202a51.49541ad2.js b/docs/assets/js/e8202a51.49541ad2.js new file mode 100644 index 00000000..03d054d6 --- /dev/null +++ b/docs/assets/js/e8202a51.49541ad2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2771],{1185:(t,e,i)=>{i.r(e),i.d(e,{assets:()=>d,contentTitle:()=>h,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>x});const s=JSON.parse('{"id":"numerix/v1.0.0/benchmarks","title":"Benchmarks","description":"This PoC measures the performance of vector addition in Rust with and without compiler SIMD optimizations. Requests consist of repeated fixed-size vector addition operations processed in parallel by the CPU. These results provide perspective on how much faster SIMD makes vectorized computations, and similar improvements are expected for other vectorized operations in Numerix.","source":"@site/docs/numerix/v1.0.0/benchmarks.md","sourceDirName":"numerix/v1.0.0","slug":"/numerix/v1.0.0/benchmarks","permalink":"/BharatMLStack/numerix/v1.0.0/benchmarks","draft":false,"unlisted":false,"editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/docs/numerix/v1.0.0/benchmarks.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Benchmarks","sidebar_position":2},"sidebar":"tutorialSidebar","previous":{"title":"Architecture","permalink":"/BharatMLStack/numerix/v1.0.0/architecture"},"next":{"title":"Key Functionalities","permalink":"/BharatMLStack/numerix/v1.0.0/functionalities"}}');var r=i(4848),n=i(8453);const l={title:"Benchmarks",sidebar_position:2},h="Benchmarks (PoC)",d={},x=[{value:"System Configuration",id:"system-configuration",level:2},{value:"Vector Addition Performance",id:"vector-addition-performance",level:2},{value:"With SIMD",id:"with-simd",level:3},{value:"Without SIMD",id:"without-simd",level:3},{value:"Observations",id:"observations",level:2}];function c(t){const e={blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"benchmarks-poc",children:"Benchmarks (PoC)"})}),"\n",(0,r.jsxs)(e.p,{children:["This PoC measures the performance of ",(0,r.jsx)(e.strong,{children:"vector addition"})," in Rust ",(0,r.jsx)(e.strong,{children:"with and without compiler SIMD optimizations"}),". Requests consist of repeated fixed-size vector addition operations processed in parallel by the CPU. These results provide perspective on ",(0,r.jsx)(e.strong,{children:"how much faster SIMD makes vectorized computations"}),", and similar improvements are expected for other vectorized operations in Numerix."]}),"\n",(0,r.jsx)(e.h2,{id:"system-configuration",children:"System Configuration"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"Instance Type"}),": c4a-highcpu-16"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"Processor"}),": Google Axion (ARMv9, 64-bit)"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"SIMD Extension"}),": SVE2"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"OS"}),": Linux (Ubuntu 22.04)"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"Rust Version"}),": rustc 1.80.0"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"Target Triple"}),": aarch64-unknown-linux-gnu"]}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"vector-addition-performance",children:"Vector Addition Performance"}),"\n",(0,r.jsx)(e.h3,{id:"with-simd",children:"With SIMD"}),"\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Vector Dim"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"ns per op"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Iterations"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Throughput (GiB/s)"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Total CPU (raw)"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Total CPU (normalized)"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"10"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"0.39626 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"170,057,457,941"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"376.04"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1564%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"97.75%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"50"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"0.6641 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"94,342,709,095"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1121.9"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1590%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"99.38%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1.1522 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"51,705,835,397"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1286.9"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1560%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"97.50%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"500"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"5.0649 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"12,061,753,661"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1471"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1538%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"96.12%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"9.648 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"6,488,848,705"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1544.5"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1570%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"98.12%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"5000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"52.925 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1,169,316,813"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1407.8"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1590%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"99.38%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"10000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"114.68 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"555,779,981"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1299.4"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1592%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"99.50%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"50000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"644.60 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"94,372,153"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1155.9"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1560%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"97.50%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1.4530 \xb5s"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"42,502,201"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1025.5"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1526%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"95.38%"})]})]})]}),"\n",(0,r.jsx)(e.h3,{id:"without-simd",children:"Without SIMD"}),"\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Vector Dim"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"ns per op"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Iterations"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Throughput (GiB/s)"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Total CPU (raw)"}),(0,r.jsx)(e.th,{style:{textAlign:"right"},children:"Total CPU (normalized)"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"10"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"3.196 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1,000,000,000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"25.03"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1313%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"82.06%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"50"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"3.866 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1,000,000,000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"103.46"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1417%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"88.56%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"5.867 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1,000,000,000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"136.35"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1495%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"93.44%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"500"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"19.25 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1,000,000,000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"207.81"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1600%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100.00%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"33.91 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1,000,000,000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"235.92"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1600%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100.00%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"5000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"162.1 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"448,785,386"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"246.71"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1600%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100.00%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"10000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"332.0 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"208,428,151"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"240.94"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1600%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100.00%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"50000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1,740 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"39,247,646"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"229.93"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1600%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100.00%"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100000"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"3,401 ns"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"19,598,293"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"235.24"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"1600%"}),(0,r.jsx)(e.td,{style:{textAlign:"right"},children:"100.00%"})]})]})]}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"Normalization: Total CPU (normalized) = Total CPU (raw) / 16, since 1600% equals full utilization on a 16\u2011core machine."}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"observations",children:"Observations"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"SIMD provides large speedups across all vector sizes"}),": overall throughput improvements range from roughly ",(0,r.jsx)(e.strong,{children:"4\u201315\xd7"})," versus Without SIMD."]}),"\n",(0,r.jsxs)(e.li,{children:["For small vectors (10\u2013100), throughput gains are about ",(0,r.jsx)(e.strong,{children:"9\u201315\xd7"}),", with ns/op reduced proportionally."]}),"\n",(0,r.jsxs)(e.li,{children:["For larger vectors (500\u2013100000), speedups stabilize around ",(0,r.jsx)(e.strong,{children:"~4\u20137\xd7"})," as memory bandwidth pressure increases."]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"CPU saturation"}),": Without SIMD reaches 100% normalized CPU at and beyond 500 elements, whereas With SIMD typically operates at ~95\u201399% normalized CPU yet delivers substantially higher throughput at similar CPU."]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"Per\u2011CPU efficiency"}),": With SIMD, throughput per unit of CPU is much higher, reflecting better vector unit utilization and fewer instructions per element."]}),"\n",(0,r.jsx)(e.li,{children:"Absolute values depend on hardware and load; the relative differential reflects the benefit of compiler SIMD optimizations."}),"\n"]}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u26a0 Note: Absolute numbers depend on CPU frequency, memory locality, and system load. These results are meant\nto show relative SIMD benefits."}),"\n"]})]})}function g(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(c,{...t})}):c(t)}},8453:(t,e,i)=>{i.d(e,{R:()=>l,x:()=>h});var s=i(6540);const r={},n=s.createContext(r);function l(t){const e=s.useContext(n);return s.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function h(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:l(t.components),s.createElement(n.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/f2c141e4.e3b70339.js b/docs/assets/js/f2c141e4.7dc49a6b.js similarity index 68% rename from docs/assets/js/f2c141e4.e3b70339.js rename to docs/assets/js/f2c141e4.7dc49a6b.js index 6ac4e93c..6d7c497b 100644 --- a/docs/assets/js/f2c141e4.e3b70339.js +++ b/docs/assets/js/f2c141e4.7dc49a6b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1909],{161:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>t,toc:()=>d});var t=i(3983),s=i(4848),r=i(8453);const a={slug:"post-one",title:"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)",authors:["adarsha","aditya","bhawani","jigar"],date:new Date("2022-11-15T00:00:00.000Z"),tags:["online-feature-store","interaction-store","mlplatform","meesho"]},o=void 0,l={authorsImageUrls:[void 0,void 0,void 0,void 0]},d=[{value:"The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform",id:"the-genesis-how-a-friday-night-roast-sparked-meeshos-ml-platform",level:2},{value:"The Turning Point: From Batch to Real-Time",id:"the-turning-point-from-batch-to-real-time",level:2},{value:"First Generation Design",id:"first-generation-design",level:2},{value:"1. IOP Framework: A Real-Time DAG Executor",id:"1-iop-framework-a-real-time-dag-executor",level:3},{value:"2. Online Feature Store - 0th Version",id:"2-online-feature-store---0th-version",level:3},{value:"3. Interaction Store - 0th Version",id:"3-interaction-store---0th-version",level:3},{value:"Building the Online Feature Store - 0th Version",id:"building-the-online-feature-store---0th-version",level:2},{value:"Choosing the Right Tech Stack",id:"choosing-the-right-tech-stack",level:3},{value:"Streamlining the Data Flow",id:"streamlining-the-data-flow",level:3},{value:"The Challenges: Data Format and Storage",id:"the-challenges-data-format-and-storage",level:2},{value:"Feature Consistency",id:"feature-consistency",level:3},{value:"TTL Granularity",id:"ttl-granularity",level:3},{value:"Extensibility Across Databases",id:"extensibility-across-databases",level:3},{value:"Overcoming Technical Constraints",id:"overcoming-technical-constraints",level:2},{value:"The Solution: Schema Separation",id:"the-solution-schema-separation",level:2},{value:"Tracking Changes in Feature Groups",id:"tracking-changes-in-feature-groups",level:2},{value:"Common Real-World Scenarios:",id:"common-real-world-scenarios",level:3},{value:"The Solution: Schema Versioning",id:"the-solution-schema-versioning",level:2},{value:"Backward Compatibility",id:"backward-compatibility",level:3},{value:"Partial Availability Handling",id:"partial-availability-handling",level:3},{value:"Safe Writes Without Pipeline Pauses",id:"safe-writes-without-pipeline-pauses",level:3},{value:"Interaction Store - 0th Version",id:"interaction-store---0th-version",level:2},{value:"Event Ingestion",id:"event-ingestion",level:2},{value:"Storage Design",id:"storage-design",level:2},{value:"Why Redis?",id:"why-redis",level:3},{value:"Storage Structure",id:"storage-structure",level:3},{value:"Built-in Guardrails",id:"built-in-guardrails",level:3},{value:"Conclusion: Laying the Foundation for Real-Time ML",id:"conclusion-laying-the-foundation-for-real-time-ml",level:2}];function h(e){const n={a:"a",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"BharatMLStack",src:i(9930).A+"",width:"1472",height:"892"})}),"\n",(0,s.jsx)(n.h2,{id:"the-genesis-how-a-friday-night-roast-sparked-meeshos-ml-platform",children:"The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform"}),"\n",(0,s.jsx)(n.p,{children:"It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting\u2014until one remark hit a little too close to home:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:'"Why are we still crunching data for Monthly Active Users (MAU) when the next day it\u2019s all about Daily Active Users (DAU)?"'})}),"\n",(0,s.jsx)(n.p,{children:"The laughter died down, and the question lingered. When we regrouped on Monday\u2014clear-headed and slightly reflective\u2014we decided to dig into the numbers. What they discovered was quite revealing: a large portion of compute resources wasn\u2019t being put to good use.\nMuch of the system\u2019s effort was spent supporting users who weren\u2019t actively engaging, and even for new users, the experience wasn\u2019t optimized to make a meaningful impact."}),"\n",(0,s.jsxs)(n.p,{children:["At the same time, Meesho had just launched a company-wide initiative to reduce costs\u2014and every team had to contribute. This realization sparked the journey that would eventually lead to the ",(0,s.jsx)(n.strong,{children:"Meesho ML Platform"}),", known today as ",(0,s.jsx)(n.strong,{children:"BharatMLStack"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(3518).A+"",width:"1600",height:"1078"})}),"\n",(0,s.jsx)(n.p,{children:"Before the ML Platform, our recommendation and ranking pipelines followed a batch processing approach:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Data Ingestion"}),": The Data Platform team executed ETL jobs to ingest raw user data\u2014including user profiles, interaction logs, and product impressions\u2014into designated S3 buckets."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 1"}),": Embedding Generation: On the Data Science side, Spark jobs pulled data from multiple S3 sources, cleaned and preprocessed it, and applied matrix factorization to generate user and item embeddings. The processed data and embeddings were then stored back in S3 in a structured format."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 2"}),": Candidate Generation (CG): In this stage, Spark jobs leveraged embeddings and historical interaction data to generate candidate recommendations for users. These candidate lists were subsequently written to S3."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 3"}),": Ranking and Merging \u2013 A final round of processing ranked the generated candidates using ML models, combined different candidate lists, and stored the final ranked recommendations in a caching system."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Serving"}),': A microservice retrieved ranked recommendations from an in-memory data store via exposed APIs, delivering personalized listings across key surfaces such as "For You" and Category Landing Pages (CLP).']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This approach held up well\u2014until Meesho started seeing a significant surge in traffic."}),"\n",(0,s.jsx)(n.h2,{id:"the-turning-point-from-batch-to-real-time",children:"The Turning Point: From Batch to Real-Time"}),"\n",(0,s.jsxs)(n.p,{children:["At this time, the team was iterating on new ",(0,s.jsx)(n.strong,{children:"Ranker models"}),", and real-time inference seemed like the next logical step. But Rankers needed ",(0,s.jsx)(n.strong,{children:"real-time feature retrieval"}),", which meant an ",(0,s.jsx)(n.strong,{children:"online feature store"})," had to be built first."]}),"\n",(0,s.jsxs)(n.p,{children:["Exploring open-source options led to ",(0,s.jsx)(n.strong,{children:"cost vs. performance trade-offs"}),", but Meesho\u2019s surging traffic meant that ",(0,s.jsx)(n.strong,{children:"latency and stability were non-negotiable"}),". After multiple debates and stakeholder discussions, a bold decision was made:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"We would build our own feature store."})}),"\n",(0,s.jsxs)(n.p,{children:["Meanwhile, efforts began to bring ",(0,s.jsx)(n.strong,{children:"Candidate Generators (CGs)"})," to real-time. The challenge? ",(0,s.jsx)(n.strong,{children:"Storing and retrieving user interactions quickly enough"})," to power real-time recommendations."]}),"\n",(0,s.jsxs)(n.p,{children:["As the team dove deeper, a new roadblock emerged:",(0,s.jsx)(n.br,{}),"\n","Our ML jobs were orchestrated using ",(0,s.jsx)(n.strong,{children:"Airflow DAGs"}),", giving data scientists flexibility in experimentation. But transitioning to real-time execution threatened this agility. Every change would now require backend engineering support, ",(0,s.jsx)(n.strong,{children:"slowing down iteration cycles"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["That\u2019s when the idea struck:",(0,s.jsx)(n.br,{}),"\n","We needed a ",(0,s.jsx)(n.strong,{children:"framework for real-time DAG execution"}),"\u2014one that preserved the same flexibility as Airflow but worked for ",(0,s.jsx)(n.strong,{children:"streaming data"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This moment shaped the ",(0,s.jsx)(n.strong,{children:"next phase of our journey"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"first-generation-design",children:"First Generation Design"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(7131).A+"",width:"1600",height:"1006"})}),"\n",(0,s.jsx)(n.h1,{id:"laying-the-groundwork-the-first-gen-ml-platform",children:"Laying the Groundwork: The First-Gen ML Platform"}),"\n",(0,s.jsx)(n.p,{children:"To solve these challenges, the team built three foundational components:"}),"\n",(0,s.jsx)(n.h3,{id:"1-iop-framework-a-real-time-dag-executor",children:"1. IOP Framework: A Real-Time DAG Executor"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Reusable Nodes"}),": Each DAG node (e.g., an invocation to a CG service, a ranker, or a filter) had to be implemented only once. After that, it could be reused across any workflow by referencing it in config."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Config-driven Dynamic Graphs"}),": Execution graphs were defined as adjacency lists stored in ",(0,s.jsx)(n.strong,{children:"ZooKeeper"}),", allowing teams to modify the sequence or structure of operations without touching application code."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Plug-and-play CGs"}),": The Candidate Generator interface was preserved, so a single CG node could call any CG service by passing ",(0,s.jsx)(n.code,{children:"cg_name"})," in the request. This drastically reduced the code surface area and improved maintainability."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Production-Grade DAGs"}),": DAGs were designed to execute in ",(0,s.jsx)(n.strong,{children:"low-latency real-time environments"}),", with support for ",(0,s.jsx)(n.strong,{children:"parallel execution, retries, and branching"}),"."]}),"\n"]}),"\n",(0,s.jsx)("u",{children:(0,s.jsx)(n.a,{href:"https://www.meesho.io/blog/rebuilding-meeshos-ranking-platform",children:"More about IOP DAG"})}),"\n",(0,s.jsx)(n.h3,{id:"2-online-feature-store---0th-version",children:"2. Online Feature Store - 0th Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Used ",(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"})," for low-latency feature serving."]}),"\n",(0,s.jsxs)(n.li,{children:["Maintained feature consistency using ",(0,s.jsx)(n.strong,{children:"Feature Groups"})," with TTL-based expiry."]}),"\n",(0,s.jsxs)(n.li,{children:["A hybrid schema was used: feature keys stored in ",(0,s.jsx)(n.strong,{children:"ZooKeeper"}),", data stored in ",(0,s.jsx)(n.strong,{children:"compact arrays"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"3-interaction-store---0th-version",children:"3. Interaction Store - 0th Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Captured real-time user interactions like clicks, orders, and add-to-cart events."}),"\n",(0,s.jsxs)(n.li,{children:["Stored event data in ",(0,s.jsx)(n.strong,{children:"Redis ZSETs (sorted sets)"})," to enable fast lookups for recommendation engines."]}),"\n",(0,s.jsxs)(n.li,{children:["Provided an API to fetch a user's ",(0,s.jsxs)(n.strong,{children:["last ",(0,s.jsx)(n.em,{children:"k"})," interactions"]})," or ",(0,s.jsx)(n.strong,{children:"interactions within a time window"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["With these components in place, ",(0,s.jsx)(n.strong,{children:"real-time ML at Meesho became a reality"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"This was just the beginning."}),"\n",(0,s.jsx)(n.h2,{id:"building-the-online-feature-store---0th-version",children:"Building the Online Feature Store - 0th Version"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt text",src:i(5728).A+"",width:"1574",height:"562"})}),"\n",(0,s.jsx)(n.h3,{id:"choosing-the-right-tech-stack",children:"Choosing the Right Tech Stack"}),"\n",(0,s.jsxs)(n.p,{children:["We spent considerable time evaluating various databases, caches, and communication protocols for our ",(0,s.jsx)(n.strong,{children:"online feature store"}),". After carefully weighing ",(0,s.jsx)(n.strong,{children:"cost, latency, throughput"}),", and ",(0,s.jsx)(n.strong,{children:"operational stability"}),", we settled on a combination of:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"})," for storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"gRPC + Proto3"})," as our communication layer"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"streamlining-the-data-flow",children:"Streamlining the Data Flow"}),"\n",(0,s.jsx)(n.p,{children:"To keep things simple in the initial version:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature engineering jobs"})," wrote raw outputs to an ",(0,s.jsx)(n.strong,{children:"S3 bucket"})]}),"\n",(0,s.jsxs)(n.li,{children:["A ",(0,s.jsx)(n.strong,{children:"daily feature push job"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Read from S3"}),"\n",(0,s.jsxs)(n.li,{children:["Grouped related features into ",(0,s.jsx)(n.strong,{children:"Feature Groups"})," (ensuring consistency)"]}),"\n",(0,s.jsxs)(n.li,{children:["Pushed them to ",(0,s.jsx)(n.strong,{children:"Kafka"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"For features requiring frequent updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Ad-hoc jobs"})," computed features in higher frequency"]}),"\n",(0,s.jsxs)(n.li,{children:["These jobs pushed to both ",(0,s.jsx)(n.strong,{children:"Kafka"})," and ",(0,s.jsx)(n.strong,{children:"S3"})," (S3 preserved historical data for future model training)"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"the-challenges-data-format-and-storage",children:"The Challenges: Data Format and Storage"}),"\n",(0,s.jsxs)(n.p,{children:["One of the most critical design challenges was how to store feature data ",(0,s.jsx)(n.strong,{children:"efficiently and consistently"}),", especially in databases like ",(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"}),", which come with unique storage constraints."]}),"\n",(0,s.jsx)(n.p,{children:"We had to solve for three key requirements:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"feature-consistency",children:"Feature Consistency"}),"\n",(0,s.jsxs)(n.p,{children:["When a feature group contains features like ",(0,s.jsx)(n.code,{children:"order_count_1h"})," and ",(0,s.jsx)(n.code,{children:"click_count_1h"}),", both must reflect the ",(0,s.jsx)(n.strong,{children:"same time window"}),". Inconsistent updates would lead to ",(0,s.jsx)(n.strong,{children:"unreliable model predictions"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"ttl-granularity",children:"TTL Granularity"}),"\n",(0,s.jsxs)(n.p,{children:["Each feature group required an ",(0,s.jsx)(n.strong,{children:"expiry timestamp"}),", so that ",(0,s.jsx)(n.strong,{children:"all features within it expired together"}),"\u2014preserving consistency during reads."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"extensibility-across-databases",children:"Extensibility Across Databases"}),"\n",(0,s.jsxs)(n.p,{children:["We anticipated that infra needs would evolve. To future-proof our system, the data format was designed to be ",(0,s.jsx)(n.strong,{children:"decoupled from DB-specific layouts"}),", enabling portability to systems like ",(0,s.jsx)(n.strong,{children:"ScyllaDB"}),", ",(0,s.jsx)(n.strong,{children:"DynamoDB"}),", ",(0,s.jsx)(n.strong,{children:"HBase"}),", or ",(0,s.jsx)(n.strong,{children:"BigTable"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"overcoming-technical-constraints",children:"Overcoming Technical Constraints"}),"\n",(0,s.jsx)(n.p,{children:'At the time, we were using Cassandra, which not only imposed a soft limit of 75 columns per row, but also exhibited significant performance degradation as the number of columns increased further, particularly in memory constrained machines. Wide rows caused high memory usage during reads, unpredictable latencies due to heavy deserialization overhead, and inefficiencies during compactions and repairs. This ruled out the naive "one column per feature" approach. We needed a format that was compact, minimized the number of columns, and remained efficient and portable across different storage systems.'}),"\n",(0,s.jsx)(n.h2,{id:"the-solution-schema-separation",children:"The Solution: Schema Separation"}),"\n",(0,s.jsx)(n.p,{children:"We introduced the concept of Feature Groups\u2014logical groupings of features that must remain consistent with one another.\nTo represent these groups efficiently, we adopted a layered storage approach:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Labels (Keys)"})," were stored in ZooKeeper, serving as the schema."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Values"})," were stored as a comma-separated string array in Cassandra or Redis."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Expiry Timestamp and Schema Version"})," were appended using a semi-colon delimiter at the end of the string."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"feature_1_value,feature_2_value,feature_3_value;expiry_ts\n"})}),"\n",(0,s.jsx)(n.p,{children:"This format allowed:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Consistent writes and reads at the group level"}),"\n",(0,s.jsx)(n.li,{children:"Easy parsing of feature values using the schema lookup from ZooKeeper"}),"\n",(0,s.jsx)(n.li,{children:"Efficient storage with minimal DB column usage"}),"\n",(0,s.jsx)(n.li,{children:"Support for per-group TTLs and schema evolution"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"tracking-changes-in-feature-groups",children:"Tracking Changes in Feature Groups"}),"\n",(0,s.jsx)(n.p,{children:"Feature groups don\u2019t stay static. As models evolve, features get added, renamed, or removed. But schema changes often go live before the data is ready\u2014and stopping ingestion just to wait for everything to align isn't feasible."}),"\n",(0,s.jsx)(n.h3,{id:"common-real-world-scenarios",children:"Common Real-World Scenarios:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"A new feature is added to the schema, but ingestion jobs still use the older schema version."}),"\n",(0,s.jsx)(n.li,{children:"Ongoing writes don\u2019t include the newly added feature, and stopping ingestion would break freshness for existing features."}),"\n",(0,s.jsx)(n.li,{children:"During serving, models request a mix of old and new features, depending on rollout stages."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"the-solution-schema-versioning",children:"The Solution: Schema Versioning"}),"\n",(0,s.jsx)(n.p,{children:"We solved this with versioned feature group schemas, which unlocked several capabilities:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"backward-compatibility",children:"Backward Compatibility"}),"\n","Older ingestion jobs can continue writing using older schema versions. During reads, the system uses the schema version embedded in the value to interpret the data correctly."]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"partial-availability-handling",children:"Partial Availability Handling"}),"\n","During inference, if some features in the request aren\u2019t available (due to rollout delays or missing data), the system serves default values, ensuring the inference call doesn\u2019t fail."]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"safe-writes-without-pipeline-pauses",children:"Safe Writes Without Pipeline Pauses"}),"\n","With schema versioning, we no longer had to stop ingestion pipelines for schema updates. Writes using previous versions can continue safely, and downstream consumers evolve independently.\nThis design gave us the flexibility to move fast without breaking things\u2014preserving data quality, enabling experimentation, and ensuring reliability at scale."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(3190).A+"",width:"1600",height:"599"})}),"\n",(0,s.jsx)(n.h2,{id:"interaction-store---0th-version",children:"Interaction Store - 0th Version"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(1012).A+"",width:"1600",height:"518"})}),"\n",(0,s.jsxs)(n.p,{children:["To power real-time Candidate Generators (CGs), we needed fast access to user behavior signals\u2014like what a user recently clicked, ordered, or added to their cart. These interactions form the basis for many real-time recommendations, such as ",(0,s.jsx)(n.strong,{children:"Similar Products"}),", ",(0,s.jsx)(n.strong,{children:"People Also Viewed"}),", or ",(0,s.jsx)(n.strong,{children:"Recently Ordered Again"}),".\nFor the ",(0,s.jsx)(n.strong,{children:"0th version"})," of the Interaction Store, we focused on a design that was ",(0,s.jsx)(n.strong,{children:"simple, fast, and reliable"})," \u2014 optimized for high-throughput ingestion and low-latency lookups."]}),"\n",(0,s.jsx)(n.h2,{id:"event-ingestion",children:"Event Ingestion"}),"\n",(0,s.jsx)(n.p,{children:"We instrumented our backend services to emit key user interaction events to Kafka in real time. These included:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Click"}),"\n",(0,s.jsx)(n.li,{children:"Order"}),"\n",(0,s.jsx)(n.li,{children:"Add to Cart"}),"\n",(0,s.jsx)(n.li,{children:"Wishlist"}),"\n",(0,s.jsx)(n.li,{children:"Share"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Each event carried essential metadata:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"userId \u2014 uniquely identifies the user"}),"\n",(0,s.jsx)(n.li,{children:"productId \u2014 the item being interacted with"}),"\n",(0,s.jsx)(n.li,{children:"timestamp \u2014 the moment the interaction occurred"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This decoupled the interaction logging from storage, allowing ingestion and consumption to scale independently."}),"\n",(0,s.jsx)(n.h2,{id:"storage-design",children:"Storage Design"}),"\n",(0,s.jsx)(n.p,{children:"To store these events, we built Kafka consumers that processed the incoming streams and wrote the data into Redis, using sorted sets (ZSETs) as the primary data structure."}),"\n",(0,s.jsx)(n.h3,{id:"why-redis",children:"Why Redis?"}),"\n",(0,s.jsx)(n.p,{children:"Redis gave us:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Low-latency"})," reads and writes"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Time-ordered data"})," using ZSETs (via score = timestamp)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Native TTL support"}),", if needed in later versions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"In-memory performance"})," \u2014ideal for real-time CGs"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"storage-structure",children:"Storage Structure"}),"\n",(0,s.jsx)(n.p,{children:"Each user\u2019s interactions were stored using a composite key format, uniquely identifying the user and interaction type. This structure allowed efficient organization and quick retrieval of recent activity for recommendation generation:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"userId_eventType \u2192 ZSET[...(pid, ts)...]\n"})}),"\n",(0,s.jsx)(n.p,{children:"Within each ZSET:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.strong,{children:"timestamp"})," served as the score, maintaining temporal order"]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.strong,{children:"productId"})," (optionally with metadata) was the ",(0,s.jsx)(n.strong,{children:"value"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This allowed us to efficiently retrieve the interactions with HTTP-based API server with two query modes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fetch the ",(0,s.jsx)(n.strong,{children:"last k interactions"})," of a specific type for a given user with ",(0,s.jsx)(n.code,{children:"ZREVRANGE(userId_eventType, count)"})]}),"\n",(0,s.jsxs)(n.li,{children:["Retrieve ",(0,s.jsx)(n.strong,{children:"all interactions within a time range"})," (e.g., last 24 hours) with ",(0,s.jsx)(n.code,{children:"ZREVRANGEBYSCORE(userId_eventType, timeRange)"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"built-in-guardrails",children:"Built-in Guardrails"}),"\n",(0,s.jsx)(n.p,{children:"Since Redis was the sole store, we implemented High Availability (HA) to prevent data loss. To optimize memory usage, we also enforced size limits per event type\u2014only storing the last k interactions per user, with older entries getting truncated."}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-laying-the-foundation-for-real-time-ml",children:"Conclusion: Laying the Foundation for Real-Time ML"}),"\n",(0,s.jsxs)(n.p,{children:["In this first phase, we tackled the ",(0,s.jsx)(n.strong,{children:"fundamentals"}),"\u2014shifting from batch-based recommendations to a ",(0,s.jsx)(n.strong,{children:"real-time Recommendation"})," using ML platform that could keep up with Meesho\u2019s growth."]}),"\n",(0,s.jsxs)(n.p,{children:["With the ",(0,s.jsx)(n.strong,{children:"IOP Framework"}),", ",(0,s.jsx)(n.strong,{children:"Online Feature Store"}),", and ",(0,s.jsx)(n.strong,{children:"Interaction Store"}),", we built the core infrastructure to support real-time personalization at scale. These wins have already unlocked:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u2705 Faster, more dynamic recommendations for millions of users."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Better infrastructure efficiency, reducing wasted compute power."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 A flexible, modular system that allows for further experimentation."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["But this is just the beginning. While we've solved key challenges, ",(0,s.jsx)(n.strong,{children:"certain roadblocks remain"})," \u2014from optimizing ",(0,s.jsx)(n.strong,{children:"cost-performance trade-offs"})," to ",(0,s.jsx)(n.strong,{children:"seamlessly evolving schemas"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This foundational work laid the path for a reliable and scalable ",(0,s.jsx)(n.strong,{children:"real-time feature serving layer"}),"."]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1012:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/interaction-store-v0-68167b64c6e462ef2f177f0f86d55bda.png"},3190:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/schema-d699efc400ed0f83bba421c1f55ab211.png"},3518:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/old-batch-arch-bc2cedbc1fed0fc6f08479ba8fe52996.png"},3983:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-one","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-one/index.md","source":"@site/blog/bharatmlstack-history/post-one/index.md","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","description":"BharatMLStack","date":"2022-11-15T00:00:00.000Z","tags":[{"inline":true,"label":"online-feature-store","permalink":"/BharatMLStack/blog/tags/online-feature-store"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"}],"readingTime":10.25,"hasTruncateMarker":false,"authors":[{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null},{"name":"Aditya Kumar","title":"SDE-III @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Bhawani Singh","title":"SDE-IV @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"SDE-IV @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null}],"frontMatter":{"slug":"post-one","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","authors":["adarsha","aditya","bhawani","jigar"],"date":"2022-11-15T00:00:00.000Z","tags":["online-feature-store","interaction-store","mlplatform","meesho"]},"unlisted":false}')},5728:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/online-feature-store-v0-86ec0010947ae24621f39ebd0d1729ca.png"},7131:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/first-gen-arch-7c0b286810aecb7eff42b48f51caee1f.png"},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var t=i(6540);const s={},r=t.createContext(s);function a(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(r.Provider,{value:n},e.children)}},9930:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/bharatmlstack-72e1796337bfa224dee2a0f59ec4e2da.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1909],{161:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>t,toc:()=>d});var t=i(3983),s=i(4848),r=i(8453);const a={slug:"post-one",title:"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)",authors:["adarsha","aditya","bhawani","jigar"],date:new Date("2022-11-15T00:00:00.000Z"),tags:["online-feature-store","interaction-store","mlplatform","meesho"]},o=void 0,l={authorsImageUrls:[void 0,void 0,void 0,void 0]},d=[{value:"The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform",id:"the-genesis-how-a-friday-night-roast-sparked-meeshos-ml-platform",level:2},{value:"The Turning Point: From Batch to Real-Time",id:"the-turning-point-from-batch-to-real-time",level:2},{value:"First Generation Design",id:"first-generation-design",level:2},{value:"1. IOP Framework: A Real-Time DAG Executor",id:"1-iop-framework-a-real-time-dag-executor",level:3},{value:"2. Online Feature Store - 0th Version",id:"2-online-feature-store---0th-version",level:3},{value:"3. Interaction Store - 0th Version",id:"3-interaction-store---0th-version",level:3},{value:"Building the Online Feature Store - 0th Version",id:"building-the-online-feature-store---0th-version",level:2},{value:"Choosing the Right Tech Stack",id:"choosing-the-right-tech-stack",level:3},{value:"Streamlining the Data Flow",id:"streamlining-the-data-flow",level:3},{value:"The Challenges: Data Format and Storage",id:"the-challenges-data-format-and-storage",level:2},{value:"Feature Consistency",id:"feature-consistency",level:3},{value:"TTL Granularity",id:"ttl-granularity",level:3},{value:"Extensibility Across Databases",id:"extensibility-across-databases",level:3},{value:"Overcoming Technical Constraints",id:"overcoming-technical-constraints",level:2},{value:"The Solution: Schema Separation",id:"the-solution-schema-separation",level:2},{value:"Tracking Changes in Feature Groups",id:"tracking-changes-in-feature-groups",level:2},{value:"Common Real-World Scenarios:",id:"common-real-world-scenarios",level:3},{value:"The Solution: Schema Versioning",id:"the-solution-schema-versioning",level:2},{value:"Backward Compatibility",id:"backward-compatibility",level:3},{value:"Partial Availability Handling",id:"partial-availability-handling",level:3},{value:"Safe Writes Without Pipeline Pauses",id:"safe-writes-without-pipeline-pauses",level:3},{value:"Interaction Store - 0th Version",id:"interaction-store---0th-version",level:2},{value:"Event Ingestion",id:"event-ingestion",level:2},{value:"Storage Design",id:"storage-design",level:2},{value:"Why Redis?",id:"why-redis",level:3},{value:"Storage Structure",id:"storage-structure",level:3},{value:"Built-in Guardrails",id:"built-in-guardrails",level:3},{value:"Conclusion: Laying the Foundation for Real-Time ML",id:"conclusion-laying-the-foundation-for-real-time-ml",level:2}];function h(e){const n={a:"a",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"BharatMLStack",src:i(1164).A+"",width:"1396",height:"460"})}),"\n",(0,s.jsx)(n.h2,{id:"the-genesis-how-a-friday-night-roast-sparked-meeshos-ml-platform",children:"The Genesis: How a Friday Night Roast Sparked Meesho\u2019s ML Platform"}),"\n",(0,s.jsx)(n.p,{children:"It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting\u2014until one remark hit a little too close to home:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:'"Why are we still crunching data for Monthly Active Users (MAU) when the next day it\u2019s all about Daily Active Users (DAU)?"'})}),"\n",(0,s.jsx)(n.p,{children:"The laughter died down, and the question lingered. When we regrouped on Monday\u2014clear-headed and slightly reflective\u2014we decided to dig into the numbers. What they discovered was quite revealing: a large portion of compute resources wasn\u2019t being put to good use.\nMuch of the system\u2019s effort was spent supporting users who weren\u2019t actively engaging, and even for new users, the experience wasn\u2019t optimized to make a meaningful impact."}),"\n",(0,s.jsxs)(n.p,{children:["At the same time, Meesho had just launched a company-wide initiative to reduce costs\u2014and every team had to contribute. This realization sparked the journey that would eventually lead to the ",(0,s.jsx)(n.strong,{children:"Meesho ML Platform"}),", known today as ",(0,s.jsx)(n.strong,{children:"BharatMLStack"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(1757).A+"",width:"1600",height:"1078"})}),"\n",(0,s.jsx)(n.p,{children:"Before the ML Platform, our recommendation and ranking pipelines followed a batch processing approach:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Data Ingestion"}),": The Data Platform team executed ETL jobs to ingest raw user data\u2014including user profiles, interaction logs, and product impressions\u2014into designated S3 buckets."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 1"}),": Embedding Generation: On the Data Science side, Spark jobs pulled data from multiple S3 sources, cleaned and preprocessed it, and applied matrix factorization to generate user and item embeddings. The processed data and embeddings were then stored back in S3 in a structured format."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 2"}),": Candidate Generation (CG): In this stage, Spark jobs leveraged embeddings and historical interaction data to generate candidate recommendations for users. These candidate lists were subsequently written to S3."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Layer 3"}),": Ranking and Merging \u2013 A final round of processing ranked the generated candidates using ML models, combined different candidate lists, and stored the final ranked recommendations in a caching system."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Serving"}),': A microservice retrieved ranked recommendations from an in-memory data store via exposed APIs, delivering personalized listings across key surfaces such as "For You" and Category Landing Pages (CLP).']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This approach held up well\u2014until Meesho started seeing a significant surge in traffic."}),"\n",(0,s.jsx)(n.h2,{id:"the-turning-point-from-batch-to-real-time",children:"The Turning Point: From Batch to Real-Time"}),"\n",(0,s.jsxs)(n.p,{children:["At this time, the team was iterating on new ",(0,s.jsx)(n.strong,{children:"Ranker models"}),", and real-time inference seemed like the next logical step. But Rankers needed ",(0,s.jsx)(n.strong,{children:"real-time feature retrieval"}),", which meant an ",(0,s.jsx)(n.strong,{children:"online feature store"})," had to be built first."]}),"\n",(0,s.jsxs)(n.p,{children:["Exploring open-source options led to ",(0,s.jsx)(n.strong,{children:"cost vs. performance trade-offs"}),", but Meesho\u2019s surging traffic meant that ",(0,s.jsx)(n.strong,{children:"latency and stability were non-negotiable"}),". After multiple debates and stakeholder discussions, a bold decision was made:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"We would build our own feature store."})}),"\n",(0,s.jsxs)(n.p,{children:["Meanwhile, efforts began to bring ",(0,s.jsx)(n.strong,{children:"Candidate Generators (CGs)"})," to real-time. The challenge? ",(0,s.jsx)(n.strong,{children:"Storing and retrieving user interactions quickly enough"})," to power real-time recommendations."]}),"\n",(0,s.jsxs)(n.p,{children:["As the team dove deeper, a new roadblock emerged:",(0,s.jsx)(n.br,{}),"\n","Our ML jobs were orchestrated using ",(0,s.jsx)(n.strong,{children:"Airflow DAGs"}),", giving data scientists flexibility in experimentation. But transitioning to real-time execution threatened this agility. Every change would now require backend engineering support, ",(0,s.jsx)(n.strong,{children:"slowing down iteration cycles"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["That\u2019s when the idea struck:",(0,s.jsx)(n.br,{}),"\n","We needed a ",(0,s.jsx)(n.strong,{children:"framework for real-time DAG execution"}),"\u2014one that preserved the same flexibility as Airflow but worked for ",(0,s.jsx)(n.strong,{children:"streaming data"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This moment shaped the ",(0,s.jsx)(n.strong,{children:"next phase of our journey"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"first-generation-design",children:"First Generation Design"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(7848).A+"",width:"1600",height:"1006"})}),"\n",(0,s.jsx)(n.h1,{id:"laying-the-groundwork-the-first-gen-ml-platform",children:"Laying the Groundwork: The First-Gen ML Platform"}),"\n",(0,s.jsx)(n.p,{children:"To solve these challenges, the team built three foundational components:"}),"\n",(0,s.jsx)(n.h3,{id:"1-iop-framework-a-real-time-dag-executor",children:"1. IOP Framework: A Real-Time DAG Executor"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Reusable Nodes"}),": Each DAG node (e.g., an invocation to a CG service, a ranker, or a filter) had to be implemented only once. After that, it could be reused across any workflow by referencing it in config."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Config-driven Dynamic Graphs"}),": Execution graphs were defined as adjacency lists stored in ",(0,s.jsx)(n.strong,{children:"ZooKeeper"}),", allowing teams to modify the sequence or structure of operations without touching application code."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Plug-and-play CGs"}),": The Candidate Generator interface was preserved, so a single CG node could call any CG service by passing ",(0,s.jsx)(n.code,{children:"cg_name"})," in the request. This drastically reduced the code surface area and improved maintainability."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Production-Grade DAGs"}),": DAGs were designed to execute in ",(0,s.jsx)(n.strong,{children:"low-latency real-time environments"}),", with support for ",(0,s.jsx)(n.strong,{children:"parallel execution, retries, and branching"}),"."]}),"\n"]}),"\n",(0,s.jsx)("u",{children:(0,s.jsx)(n.a,{href:"https://www.meesho.io/blog/rebuilding-meeshos-ranking-platform",children:"More about IOP DAG"})}),"\n",(0,s.jsx)(n.h3,{id:"2-online-feature-store---0th-version",children:"2. Online Feature Store - 0th Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Used ",(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"})," for low-latency feature serving."]}),"\n",(0,s.jsxs)(n.li,{children:["Maintained feature consistency using ",(0,s.jsx)(n.strong,{children:"Feature Groups"})," with TTL-based expiry."]}),"\n",(0,s.jsxs)(n.li,{children:["A hybrid schema was used: feature keys stored in ",(0,s.jsx)(n.strong,{children:"ZooKeeper"}),", data stored in ",(0,s.jsx)(n.strong,{children:"compact arrays"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"3-interaction-store---0th-version",children:"3. Interaction Store - 0th Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Captured real-time user interactions like clicks, orders, and add-to-cart events."}),"\n",(0,s.jsxs)(n.li,{children:["Stored event data in ",(0,s.jsx)(n.strong,{children:"Redis ZSETs (sorted sets)"})," to enable fast lookups for recommendation engines."]}),"\n",(0,s.jsxs)(n.li,{children:["Provided an API to fetch a user's ",(0,s.jsxs)(n.strong,{children:["last ",(0,s.jsx)(n.em,{children:"k"})," interactions"]})," or ",(0,s.jsx)(n.strong,{children:"interactions within a time window"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["With these components in place, ",(0,s.jsx)(n.strong,{children:"real-time ML at Meesho became a reality"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"This was just the beginning."}),"\n",(0,s.jsx)(n.h2,{id:"building-the-online-feature-store---0th-version",children:"Building the Online Feature Store - 0th Version"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt text",src:i(5017).A+"",width:"1574",height:"562"})}),"\n",(0,s.jsx)(n.h3,{id:"choosing-the-right-tech-stack",children:"Choosing the Right Tech Stack"}),"\n",(0,s.jsxs)(n.p,{children:["We spent considerable time evaluating various databases, caches, and communication protocols for our ",(0,s.jsx)(n.strong,{children:"online feature store"}),". After carefully weighing ",(0,s.jsx)(n.strong,{children:"cost, latency, throughput"}),", and ",(0,s.jsx)(n.strong,{children:"operational stability"}),", we settled on a combination of:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"})," for storage"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"gRPC + Proto3"})," as our communication layer"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"streamlining-the-data-flow",children:"Streamlining the Data Flow"}),"\n",(0,s.jsx)(n.p,{children:"To keep things simple in the initial version:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature engineering jobs"})," wrote raw outputs to an ",(0,s.jsx)(n.strong,{children:"S3 bucket"})]}),"\n",(0,s.jsxs)(n.li,{children:["A ",(0,s.jsx)(n.strong,{children:"daily feature push job"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Read from S3"}),"\n",(0,s.jsxs)(n.li,{children:["Grouped related features into ",(0,s.jsx)(n.strong,{children:"Feature Groups"})," (ensuring consistency)"]}),"\n",(0,s.jsxs)(n.li,{children:["Pushed them to ",(0,s.jsx)(n.strong,{children:"Kafka"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"For features requiring frequent updates:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Ad-hoc jobs"})," computed features in higher frequency"]}),"\n",(0,s.jsxs)(n.li,{children:["These jobs pushed to both ",(0,s.jsx)(n.strong,{children:"Kafka"})," and ",(0,s.jsx)(n.strong,{children:"S3"})," (S3 preserved historical data for future model training)"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"the-challenges-data-format-and-storage",children:"The Challenges: Data Format and Storage"}),"\n",(0,s.jsxs)(n.p,{children:["One of the most critical design challenges was how to store feature data ",(0,s.jsx)(n.strong,{children:"efficiently and consistently"}),", especially in databases like ",(0,s.jsx)(n.strong,{children:"Cassandra"})," and ",(0,s.jsx)(n.strong,{children:"Redis"}),", which come with unique storage constraints."]}),"\n",(0,s.jsx)(n.p,{children:"We had to solve for three key requirements:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"feature-consistency",children:"Feature Consistency"}),"\n",(0,s.jsxs)(n.p,{children:["When a feature group contains features like ",(0,s.jsx)(n.code,{children:"order_count_1h"})," and ",(0,s.jsx)(n.code,{children:"click_count_1h"}),", both must reflect the ",(0,s.jsx)(n.strong,{children:"same time window"}),". Inconsistent updates would lead to ",(0,s.jsx)(n.strong,{children:"unreliable model predictions"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"ttl-granularity",children:"TTL Granularity"}),"\n",(0,s.jsxs)(n.p,{children:["Each feature group required an ",(0,s.jsx)(n.strong,{children:"expiry timestamp"}),", so that ",(0,s.jsx)(n.strong,{children:"all features within it expired together"}),"\u2014preserving consistency during reads."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"extensibility-across-databases",children:"Extensibility Across Databases"}),"\n",(0,s.jsxs)(n.p,{children:["We anticipated that infra needs would evolve. To future-proof our system, the data format was designed to be ",(0,s.jsx)(n.strong,{children:"decoupled from DB-specific layouts"}),", enabling portability to systems like ",(0,s.jsx)(n.strong,{children:"ScyllaDB"}),", ",(0,s.jsx)(n.strong,{children:"DynamoDB"}),", ",(0,s.jsx)(n.strong,{children:"HBase"}),", or ",(0,s.jsx)(n.strong,{children:"BigTable"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"overcoming-technical-constraints",children:"Overcoming Technical Constraints"}),"\n",(0,s.jsx)(n.p,{children:'At the time, we were using Cassandra, which not only imposed a soft limit of 75 columns per row, but also exhibited significant performance degradation as the number of columns increased further, particularly in memory constrained machines. Wide rows caused high memory usage during reads, unpredictable latencies due to heavy deserialization overhead, and inefficiencies during compactions and repairs. This ruled out the naive "one column per feature" approach. We needed a format that was compact, minimized the number of columns, and remained efficient and portable across different storage systems.'}),"\n",(0,s.jsx)(n.h2,{id:"the-solution-schema-separation",children:"The Solution: Schema Separation"}),"\n",(0,s.jsx)(n.p,{children:"We introduced the concept of Feature Groups\u2014logical groupings of features that must remain consistent with one another.\nTo represent these groups efficiently, we adopted a layered storage approach:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Labels (Keys)"})," were stored in ZooKeeper, serving as the schema."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Feature Values"})," were stored as a comma-separated string array in Cassandra or Redis."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Expiry Timestamp and Schema Version"})," were appended using a semi-colon delimiter at the end of the string."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Example:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"feature_1_value,feature_2_value,feature_3_value;expiry_ts\n"})}),"\n",(0,s.jsx)(n.p,{children:"This format allowed:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Consistent writes and reads at the group level"}),"\n",(0,s.jsx)(n.li,{children:"Easy parsing of feature values using the schema lookup from ZooKeeper"}),"\n",(0,s.jsx)(n.li,{children:"Efficient storage with minimal DB column usage"}),"\n",(0,s.jsx)(n.li,{children:"Support for per-group TTLs and schema evolution"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"tracking-changes-in-feature-groups",children:"Tracking Changes in Feature Groups"}),"\n",(0,s.jsx)(n.p,{children:"Feature groups don\u2019t stay static. As models evolve, features get added, renamed, or removed. But schema changes often go live before the data is ready\u2014and stopping ingestion just to wait for everything to align isn't feasible."}),"\n",(0,s.jsx)(n.h3,{id:"common-real-world-scenarios",children:"Common Real-World Scenarios:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"A new feature is added to the schema, but ingestion jobs still use the older schema version."}),"\n",(0,s.jsx)(n.li,{children:"Ongoing writes don\u2019t include the newly added feature, and stopping ingestion would break freshness for existing features."}),"\n",(0,s.jsx)(n.li,{children:"During serving, models request a mix of old and new features, depending on rollout stages."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"the-solution-schema-versioning",children:"The Solution: Schema Versioning"}),"\n",(0,s.jsx)(n.p,{children:"We solved this with versioned feature group schemas, which unlocked several capabilities:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"backward-compatibility",children:"Backward Compatibility"}),"\n","Older ingestion jobs can continue writing using older schema versions. During reads, the system uses the schema version embedded in the value to interpret the data correctly."]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"partial-availability-handling",children:"Partial Availability Handling"}),"\n","During inference, if some features in the request aren\u2019t available (due to rollout delays or missing data), the system serves default values, ensuring the inference call doesn\u2019t fail."]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.h3,{id:"safe-writes-without-pipeline-pauses",children:"Safe Writes Without Pipeline Pauses"}),"\n","With schema versioning, we no longer had to stop ingestion pipelines for schema updates. Writes using previous versions can continue safely, and downstream consumers evolve independently.\nThis design gave us the flexibility to move fast without breaking things\u2014preserving data quality, enabling experimentation, and ensuring reliability at scale."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(8733).A+"",width:"1600",height:"599"})}),"\n",(0,s.jsx)(n.h2,{id:"interaction-store---0th-version",children:"Interaction Store - 0th Version"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Alt Text",src:i(395).A+"",width:"1600",height:"518"})}),"\n",(0,s.jsxs)(n.p,{children:["To power real-time Candidate Generators (CGs), we needed fast access to user behavior signals\u2014like what a user recently clicked, ordered, or added to their cart. These interactions form the basis for many real-time recommendations, such as ",(0,s.jsx)(n.strong,{children:"Similar Products"}),", ",(0,s.jsx)(n.strong,{children:"People Also Viewed"}),", or ",(0,s.jsx)(n.strong,{children:"Recently Ordered Again"}),".\nFor the ",(0,s.jsx)(n.strong,{children:"0th version"})," of the Interaction Store, we focused on a design that was ",(0,s.jsx)(n.strong,{children:"simple, fast, and reliable"})," \u2014 optimized for high-throughput ingestion and low-latency lookups."]}),"\n",(0,s.jsx)(n.h2,{id:"event-ingestion",children:"Event Ingestion"}),"\n",(0,s.jsx)(n.p,{children:"We instrumented our backend services to emit key user interaction events to Kafka in real time. These included:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Click"}),"\n",(0,s.jsx)(n.li,{children:"Order"}),"\n",(0,s.jsx)(n.li,{children:"Add to Cart"}),"\n",(0,s.jsx)(n.li,{children:"Wishlist"}),"\n",(0,s.jsx)(n.li,{children:"Share"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Each event carried essential metadata:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"userId \u2014 uniquely identifies the user"}),"\n",(0,s.jsx)(n.li,{children:"productId \u2014 the item being interacted with"}),"\n",(0,s.jsx)(n.li,{children:"timestamp \u2014 the moment the interaction occurred"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This decoupled the interaction logging from storage, allowing ingestion and consumption to scale independently."}),"\n",(0,s.jsx)(n.h2,{id:"storage-design",children:"Storage Design"}),"\n",(0,s.jsx)(n.p,{children:"To store these events, we built Kafka consumers that processed the incoming streams and wrote the data into Redis, using sorted sets (ZSETs) as the primary data structure."}),"\n",(0,s.jsx)(n.h3,{id:"why-redis",children:"Why Redis?"}),"\n",(0,s.jsx)(n.p,{children:"Redis gave us:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Low-latency"})," reads and writes"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Time-ordered data"})," using ZSETs (via score = timestamp)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Native TTL support"}),", if needed in later versions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"In-memory performance"})," \u2014ideal for real-time CGs"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"storage-structure",children:"Storage Structure"}),"\n",(0,s.jsx)(n.p,{children:"Each user\u2019s interactions were stored using a composite key format, uniquely identifying the user and interaction type. This structure allowed efficient organization and quick retrieval of recent activity for recommendation generation:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"userId_eventType \u2192 ZSET[...(pid, ts)...]\n"})}),"\n",(0,s.jsx)(n.p,{children:"Within each ZSET:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.strong,{children:"timestamp"})," served as the score, maintaining temporal order"]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.strong,{children:"productId"})," (optionally with metadata) was the ",(0,s.jsx)(n.strong,{children:"value"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This allowed us to efficiently retrieve the interactions with HTTP-based API server with two query modes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fetch the ",(0,s.jsx)(n.strong,{children:"last k interactions"})," of a specific type for a given user with ",(0,s.jsx)(n.code,{children:"ZREVRANGE(userId_eventType, count)"})]}),"\n",(0,s.jsxs)(n.li,{children:["Retrieve ",(0,s.jsx)(n.strong,{children:"all interactions within a time range"})," (e.g., last 24 hours) with ",(0,s.jsx)(n.code,{children:"ZREVRANGEBYSCORE(userId_eventType, timeRange)"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"built-in-guardrails",children:"Built-in Guardrails"}),"\n",(0,s.jsx)(n.p,{children:"Since Redis was the sole store, we implemented High Availability (HA) to prevent data loss. To optimize memory usage, we also enforced size limits per event type\u2014only storing the last k interactions per user, with older entries getting truncated."}),"\n",(0,s.jsx)(n.h2,{id:"conclusion-laying-the-foundation-for-real-time-ml",children:"Conclusion: Laying the Foundation for Real-Time ML"}),"\n",(0,s.jsxs)(n.p,{children:["In this first phase, we tackled the ",(0,s.jsx)(n.strong,{children:"fundamentals"}),"\u2014shifting from batch-based recommendations to a ",(0,s.jsx)(n.strong,{children:"real-time Recommendation"})," using ML platform that could keep up with Meesho\u2019s growth."]}),"\n",(0,s.jsxs)(n.p,{children:["With the ",(0,s.jsx)(n.strong,{children:"IOP Framework"}),", ",(0,s.jsx)(n.strong,{children:"Online Feature Store"}),", and ",(0,s.jsx)(n.strong,{children:"Interaction Store"}),", we built the core infrastructure to support real-time personalization at scale. These wins have already unlocked:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u2705 Faster, more dynamic recommendations for millions of users."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 Better infrastructure efficiency, reducing wasted compute power."}),"\n",(0,s.jsx)(n.li,{children:"\u2705 A flexible, modular system that allows for further experimentation."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["But this is just the beginning. While we've solved key challenges, ",(0,s.jsx)(n.strong,{children:"certain roadblocks remain"})," \u2014from optimizing ",(0,s.jsx)(n.strong,{children:"cost-performance trade-offs"})," to ",(0,s.jsx)(n.strong,{children:"seamlessly evolving schemas"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This foundational work laid the path for a reliable and scalable ",(0,s.jsx)(n.strong,{children:"real-time feature serving layer"}),"."]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},395:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/interaction-store-v0-68167b64c6e462ef2f177f0f86d55bda.png"},1164:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"},1757:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/old-batch-arch-bc2cedbc1fed0fc6f08479ba8fe52996.png"},3983:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-one","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-one/index.md","source":"@site/blog/bharatmlstack-history/post-one/index.md","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","description":"BharatMLStack","date":"2022-11-15T00:00:00.000Z","tags":[{"inline":true,"label":"online-feature-store","permalink":"/BharatMLStack/blog/tags/online-feature-store"},{"inline":true,"label":"interaction-store","permalink":"/BharatMLStack/blog/tags/interaction-store"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"}],"readingTime":10.25,"hasTruncateMarker":false,"authors":[{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null},{"name":"Aditya Kumar","title":"Lead Software Engineer @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Bhawani Singh","title":"Architect @ Meesho","url":"https://github.com/singh-bhawani","imageURL":"https://github.com/singh-bhawani.png","key":"bhawani","page":null},{"name":"Jigar Dave","title":"Lead Software Engineer @ Meesho","url":"https://github.com/jigarpatel26","imageURL":"https://github.com/jigarpatel26.png","key":"jigar","page":null}],"frontMatter":{"slug":"post-one","title":"Building Meesho\u2019s ML Platform: From Chaos to Cutting-Edge (Part 1)","authors":["adarsha","aditya","bhawani","jigar"],"date":"2022-11-15T00:00:00.000Z","tags":["online-feature-store","interaction-store","mlplatform","meesho"]},"unlisted":false,"prevItem":{"title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","permalink":"/BharatMLStack/blog/post-two"}}')},5017:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/online-feature-store-v0-86ec0010947ae24621f39ebd0d1729ca.png"},7848:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/first-gen-arch-7c0b286810aecb7eff42b48f51caee1f.png"},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var t=i(6540);const s={},r=t.createContext(s);function a(e){const n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(r.Provider,{value:n},e.children)}},8733:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/schema-d699efc400ed0f83bba421c1f55ab211.png"}}]); \ No newline at end of file diff --git a/docs/assets/js/f9755c6e.8811662b.js b/docs/assets/js/f9755c6e.8811662b.js new file mode 100644 index 00000000..d17be1e7 --- /dev/null +++ b/docs/assets/js/f9755c6e.8811662b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8315],{5969:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-five","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-five/index.md","source":"@site/blog/bharatmlstack-history/post-five/index.md","title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","description":"BharatMLStack","date":"2025-06-02T00:00:00.000Z","tags":[{"inline":true,"label":"llm","permalink":"/BharatMLStack/blog/tags/llm"},{"inline":true,"label":"vllm","permalink":"/BharatMLStack/blog/tags/vllm"},{"inline":true,"label":"tensorrt-llm","permalink":"/BharatMLStack/blog/tags/tensorrt-llm"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":4.93,"hasTruncateMarker":false,"authors":[{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null}],"frontMatter":{"slug":"post-five","title":"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale","authors":["jaya"],"date":"2025-6-2","tags":["llm","vllm","tensorrt-llm","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"nextItem":{"title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","permalink":"/BharatMLStack/blog/post-three"}}')},8319:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>h,contentTitle:()=>d,default:()=>o,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=i(5969),s=i(4848),l=i(8453);const r={slug:"post-five",title:"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale",authors:["jaya"],date:"2025-6-2",tags:["llm","vllm","tensorrt-llm","mlplatform","meesho","bharatmlstack"]},d=void 0,h={authorsImageUrls:[void 0]},c=[{value:"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale",id:"llm-inference-optimization-techniques-engineering-sub-second-latency-at-scale",level:2},{value:"1. Advanced Memory Management: Paged & Prefix KV Caching",id:"1-advanced-memory-management-paged--prefix-kv-caching",level:2},{value:"Paged KV caching",id:"paged-kv-caching",level:3},{value:"KV cache quantization",id:"kv-cache-quantization",level:3},{value:"Prefix caching (the "voice bot" optimizer)",id:"prefix-caching-the-voice-bot-optimizer",level:3},{value:"2. Aggressive Quantization (INT4 AWQ & FP8)",id:"2-aggressive-quantization-int4-awq--fp8",level:2},{value:"INT4 AWQ (Activation-aware Weight Quantization)",id:"int4-awq-activation-aware-weight-quantization",level:3},{value:"FP8 precision",id:"fp8-precision",level:3},{value:"3. Kernel Fusion & Custom Plugins",id:"3-kernel-fusion--custom-plugins",level:2},{value:"4. Inflight (Continuous) Batching",id:"4-inflight-continuous-batching",level:2},{value:"5. Parallelism Strategies: Scaling Beyond One GPU",id:"5-parallelism-strategies-scaling-beyond-one-gpu",level:2},{value:"6. Speculative Decoding",id:"6-speculative-decoding",level:2},{value:"Few Benchmarks",id:"few-benchmarks",level:2},{value:"Search query rewriting",id:"search-query-rewriting",level:3},{value:"Voice bot query",id:"voice-bot-query",level:3},{value:"Conclusion",id:"conclusion",level:2}];function a(e){const t={h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"BharatMLStack",src:i(9200).A+"",width:"1396",height:"460"})}),"\n",(0,s.jsx)(t.h2,{id:"llm-inference-optimization-techniques-engineering-sub-second-latency-at-scale",children:"LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale"}),"\n",(0,s.jsx)(t.p,{children:"Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack\u2014from memory management to kernel execution."}),"\n",(0,s.jsx)(t.h2,{id:"1-advanced-memory-management-paged--prefix-kv-caching",children:"1. Advanced Memory Management: Paged & Prefix KV Caching"}),"\n",(0,s.jsx)(t.p,{children:"The most significant bottleneck in LLM inference is not always compute, but memory bandwidth\u2014specifically managing the Key-Value (KV) cache."}),"\n",(0,s.jsx)(t.h3,{id:"paged-kv-caching",children:"Paged KV caching"}),"\n",(0,s.jsxs)(t.p,{children:["Standard caching suffers from fragmentation. We use ",(0,s.jsx)(t.strong,{children:"Paged KV caching"}),", which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory."]}),"\n",(0,s.jsx)(t.h3,{id:"kv-cache-quantization",children:"KV cache quantization"}),"\n",(0,s.jsxs)(t.p,{children:["To further maximize available memory, we implement ",(0,s.jsx)(t.strong,{children:"KV cache quantization"})," (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality."]}),"\n",(0,s.jsx)(t.h3,{id:"prefix-caching-the-voice-bot-optimizer",children:'Prefix caching (the "voice bot" optimizer)'}),"\n",(0,s.jsxs)(t.p,{children:['For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable ',(0,s.jsx)(t.strong,{children:"prefix caching"}),"."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Impact"}),": By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces ",(0,s.jsx)(t.strong,{children:"Time To First Token (TTFT)"})," by skipping redundant computation of the system prompt."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"2-aggressive-quantization-int4-awq--fp8",children:"2. Aggressive Quantization (INT4 AWQ & FP8)"}),"\n",(0,s.jsx)(t.p,{children:"Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy."}),"\n",(0,s.jsx)(t.h3,{id:"int4-awq-activation-aware-weight-quantization",children:"INT4 AWQ (Activation-aware Weight Quantization)"}),"\n",(0,s.jsxs)(t.p,{children:["For the Llama 3 family, we use ",(0,s.jsx)(t.strong,{children:"AWQ"})," to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed."]}),"\n",(0,s.jsx)(t.h3,{id:"fp8-precision",children:"FP8 precision"}),"\n",(0,s.jsxs)(t.p,{children:["For NVIDIA Hopper (H100) architectures, we are exploring ",(0,s.jsx)(t.strong,{children:"FP8 quantization"}),", leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Verification"}),": We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving ",(0,s.jsx)(t.strong,{children:">99% similarity"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"3-kernel-fusion--custom-plugins",children:"3. Kernel Fusion & Custom Plugins"}),"\n",(0,s.jsx)(t.p,{children:"To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Flash attention & FMHA"}),": We enable ",(0,s.jsx)(t.strong,{children:"Fused Multi-Head Attention (FMHA)"})," combined with flash attention to reduce memory reads/writes."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"GEMM plugins"}),": We use specialized ",(0,s.jsx)(t.strong,{children:"GEMM"})," plugins to accelerate transformer linear layers."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Removing input padding"}),": Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"4-inflight-continuous-batching",children:"4. Inflight (Continuous) Batching"}),"\n",(0,s.jsx)(t.p,{children:"Traditional static batching waits for all requests in a batch to finish before returning results\u2014so one long response delays everyone else."}),"\n",(0,s.jsxs)(t.p,{children:["We implement ",(0,s.jsx)(t.strong,{children:"inflight batching"}),": as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones."]}),"\n",(0,s.jsx)(t.h2,{id:"5-parallelism-strategies-scaling-beyond-one-gpu",children:"5. Parallelism Strategies: Scaling Beyond One GPU"}),"\n",(0,s.jsx)(t.p,{children:"For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Tensor parallelism (TP)"}),": Split weight matrices across multiple GPUs (e.g., 4\xd7 L4 or 8\xd7 A100). Each GPU computes a shard and outputs are reduced at every layer."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Pipeline parallelism (PP)"}),": Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B)."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"6-speculative-decoding",children:"6. Speculative Decoding"}),"\n",(0,s.jsxs)(t.p,{children:["To reduce inter-token latency (ITL), we explore ",(0,s.jsx)(t.strong,{children:"speculative decoding"}),"."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Mechanism"}),': A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).']}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Verification"}),": The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"few-benchmarks",children:"Few Benchmarks"}),"\n",(0,s.jsx)(t.p,{children:"Below are a couple of representative use cases and performance numbers."}),"\n",(0,s.jsx)(t.h3,{id:"search-query-rewriting",children:"Search query rewriting"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"LLM"}),": Fine-tuned llama-3.2-1B"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Input & output token length"}),": ~10\u201320"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Response type"}),": Non-streaming"]}),"\n"]}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Inference runtime"}),(0,s.jsx)(t.th,{children:"Hardware"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Max requests/sec"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Max p99 latency"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{children:"4 \xd7 L4 GPUs (multi-GPU)"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1000"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"95 ms"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{children:"1 \xd7 A100 40 GB GPU"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1000"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"69 ms"})]})]})]}),"\n",(0,s.jsx)(t.h3,{id:"voice-bot-query",children:"Voice bot query"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"LLM"}),": Llama-3.1-8B"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Input token length"}),": ~1900\u20132000"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Output token length"}),": ~200"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Response type"}),": Streaming"]}),"\n"]}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Inference runtime"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Concurrency"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"p99 TTFT (ms)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"p99 ITL (ms)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Token throughput (tokens/sec)"}),(0,s.jsx)(t.th,{style:{textAlign:"right"},children:"Request throughput (req/sec)"}),(0,s.jsx)(t.th,{children:"Hardware"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"36.27"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"22.78"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"45.66"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"0.23"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"49.81"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"23.21"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"89.37"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"0.45"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"55.33"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"36.62"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"153.39"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"0.78"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"8"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"66.5"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"39.11"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"279.88"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1.47"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"16"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"131.8"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"30.39"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"547.8"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2.77"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"32"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"277.22"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"48.02"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"925.7"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"4.78"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"64"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"498.52"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"71.62"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,164.40"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"6.2"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"128"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"677.31"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"120.37"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,445.18"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"7.69"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"256"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,926.31"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"216.88"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,600.81"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"8.52"}),(0,s.jsx)(t.td,{children:"L4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"21.17"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"9.24"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"130.05"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"0.68"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"25.78"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"9.21"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"264.5"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1.35"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"4"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"28.52"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"10.99"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"437.69"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2.27"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"8"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"34.4"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"12.61"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"760.49"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"3.96"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"16"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"68.03"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"14.32"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"1,343.80"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"7.01"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"32"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"185.96"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"16.82"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"2,287.30"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"11.92"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"64"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"136.87"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"21.17"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"3,625.22"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"18.89"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"128"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"463.78"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"34.15"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"4,456.51"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"23.24"}),(0,s.jsx)(t.td,{children:"A100"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"TensorRT-LLM"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"256"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"890.12"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"59.18"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"5,188.24"}),(0,s.jsx)(t.td,{style:{textAlign:"right"},children:"27.05"}),(0,s.jsx)(t.td,{children:"A100"})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,s.jsx)(t.p,{children:"High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure."}),"\n",(0,s.jsx)(t.p,{children:"These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications."})]})}function o(e={}){const{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>d});var n=i(6540);const s={},l=n.createContext(s);function r(e){const t=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(l.Provider,{value:t},e.children)}},9200:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"}}]); \ No newline at end of file diff --git a/docs/assets/js/f994c8da.90063f83.js b/docs/assets/js/f994c8da.256af20d.js similarity index 75% rename from docs/assets/js/f994c8da.90063f83.js rename to docs/assets/js/f994c8da.256af20d.js index d977a51a..a3f70d59 100644 --- a/docs/assets/js/f994c8da.90063f83.js +++ b/docs/assets/js/f994c8da.256af20d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1999],{38:a=>{a.exports=JSON.parse('{"metadata":{"permalink":"/BharatMLStack/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1999],{38:a=>{a.exports=JSON.parse('{"metadata":{"permalink":"/BharatMLStack/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/fa31f022.968b3373.js b/docs/assets/js/fa31f022.968b3373.js new file mode 100644 index 00000000..fa441b0d --- /dev/null +++ b/docs/assets/js/fa31f022.968b3373.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6062],{6096:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"v1.0.0","description":"Numerix v1.0.0","slug":"/category/v100","permalink":"/BharatMLStack/category/v100","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Python SDK","permalink":"/BharatMLStack/category/python-sdk"},"next":{"title":"GRPC Feature client","permalink":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/fa31f022.c62034f4.js b/docs/assets/js/fa31f022.c62034f4.js deleted file mode 100644 index 7ca34e55..00000000 --- a/docs/assets/js/fa31f022.c62034f4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6062],{6096:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"v1.0.0","description":"Python SDK v1.0.0 documentation for BharatML Stack. Contains API reference, usage guides, and examples for the Python client libraries including gRPC feature client, Spark feature push client, and common utilities.","slug":"/category/v100","permalink":"/BharatMLStack/category/v100","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Python SDK","permalink":"/BharatMLStack/category/python-sdk"},"next":{"title":"GRPC Feature client","permalink":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client"}}}}')}}]); \ No newline at end of file diff --git a/docs/assets/js/fccc4c42.4690f84a.js b/docs/assets/js/fccc4c42.4690f84a.js new file mode 100644 index 00000000..539fe26f --- /dev/null +++ b/docs/assets/js/fccc4c42.4690f84a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2117],{702:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/vss-c482f6eac4c68b3219e4c562a6b717ec.png"},788:e=>{e.exports=JSON.parse('{"permalink":"/BharatMLStack/blog/post-three","editUrl":"https://github.com/Meesho/BharatMLStack/tree/main/docs/blog/bharatmlstack-history/post-three/index.md","source":"@site/blog/bharatmlstack-history/post-three/index.md","title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","description":"BharatMLStack","date":"2024-05-21T00:00:00.000Z","tags":[{"inline":true,"label":"model-inference","permalink":"/BharatMLStack/blog/tags/model-inference"},{"inline":true,"label":"embedding-search","permalink":"/BharatMLStack/blog/tags/embedding-search"},{"inline":true,"label":"mlplatform","permalink":"/BharatMLStack/blog/tags/mlplatform"},{"inline":true,"label":"meesho","permalink":"/BharatMLStack/blog/tags/meesho"},{"inline":true,"label":"bharatmlstack","permalink":"/BharatMLStack/blog/tags/bharatmlstack"}],"readingTime":3.6,"hasTruncateMarker":false,"authors":[{"name":"Aditya Kumar","title":"Lead Software Engineer @ Meesho","url":"https://github.com/Adit2607","imageURL":"https://github.com/Adit2607.png","key":"aditya","page":null},{"name":"Jaya Kumar","title":"Lead ML Engineer @ Meesho","url":"https://github.com/jayakommuru","imageURL":"https://github.com/jayakommuru.png","key":"jaya","page":null},{"name":"Adarsha Das","title":"Senior Architect @ Meesho","url":"https://github.com/a0d00kc","imageURL":"https://github.com/a0d00kc.png","key":"adarsha","page":null}],"frontMatter":{"slug":"post-three","title":"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search","authors":["aditya","jaya","adarsha"],"date":"2024-05-21T00:00:00.000Z","tags":["model-inference","embedding-search","mlplatform","meesho","bharatmlstack"]},"unlisted":false,"prevItem":{"title":"Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving","permalink":"/BharatMLStack/blog/post-three"},"nextItem":{"title":"Building Meesho\u2019s ML Platform: Lessons from the First-Gen System (Part 2)","permalink":"/BharatMLStack/blog/post-two"}}')},2561:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var i=t(788),a=t(4848),r=t(8453);const s={slug:"post-three",title:"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search",authors:["aditya","jaya","adarsha"],date:new Date("2024-05-21T00:00:00.000Z"),tags:["model-inference","embedding-search","mlplatform","meesho","bharatmlstack"]},l=void 0,o={authorsImageUrls:[void 0,void 0,void 0]},d=[{value:"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search",id:"cracking-the-code-scaling-model-inference--real-time-embedding-search",level:2},{value:"Breaking Free from the Scalability Ceiling",id:"breaking-free-from-the-scalability-ceiling",level:2},{value:"The Model Serving Bottleneck\u2014A Wake-Up Call",id:"the-model-serving-bottlenecka-wake-up-call",level:3},{value:"Scaling Triton on GKE",id:"scaling-triton-on-gke",level:3},{value:"Fixing the Cold Start Problem",id:"fixing-the-cold-start-problem",level:3},{value:"Embedding Search: The Last Piece of the Puzzle",id:"embedding-search-the-last-piece-of-the-puzzle",level:2},{value:"Choosing the Right Vector Database",id:"choosing-the-right-vector-database",level:3},{value:"Embedding Freshness & Real-Time Updates",id:"embedding-freshness--real-time-updates",level:3},{value:"Final Takeaways: Scaling Smartly for Real-Time ML",id:"final-takeaways-scaling-smartly-for-real-time-ml",level:2}];function c(e){const n={h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{alt:"BharatMLStack",src:t(6e3).A+"",width:"1396",height:"460"})}),"\n",(0,a.jsx)(n.h2,{id:"cracking-the-code-scaling-model-inference--real-time-embedding-search",children:"Cracking the Code: Scaling Model Inference & Real-Time Embedding Search"}),"\n",(0,a.jsx)(n.p,{children:"By mid-2023, we had transformed our ML stack\u2014building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\ud83d\udd39 Scaling model inference without hitting infrastructure roadblocks"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\udd39 Moving embedding search from batch to real-time for candidate generation"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Here\u2019s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system."}),"\n",(0,a.jsx)(n.h2,{id:"breaking-free-from-the-scalability-ceiling",children:"Breaking Free from the Scalability Ceiling"}),"\n",(0,a.jsx)(n.h3,{id:"the-model-serving-bottlenecka-wake-up-call",children:"The Model Serving Bottleneck\u2014A Wake-Up Call"}),"\n",(0,a.jsx)(n.p,{children:"July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue\u2014scaling our model-serving infrastructure was taking 10\u201315 minutes. In real-time ML, that\u2019s an eternity.\nIn one of our war rooms, we ran a quick experiment:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine."}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Fired requests and compared the outputs with our existing cloud-hosted setup."}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 The results matched\u2014perfectly."}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:'That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn\'t allocate enough compute resources in time. Luckily, they did\u2014but the seed was planted.\nThen in October, just two weeks before MBS, we got an alarming response from our infrastructure team:\n"Node availability may be an issue."\nWith no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?'}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\u2705 p99 latency dropped from 90\u2013100ms to 30\u201340ms"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 Triton handled significantly higher throughput on fewer resources"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 No model changes were needed"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"MBS ran without a hitch, proving that self-hosted inference was the way forward."}),"\n",(0,a.jsx)(n.h3,{id:"scaling-triton-on-gke",children:"Scaling Triton on GKE"}),"\n",(0,a.jsx)(n.p,{children:"This left us with two choices:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"1\ufe0f\u20e3 Port models to a managed cloud inference service, investing time in learning a new deployment stack"}),"\n",(0,a.jsx)(n.li,{children:"2\ufe0f\u20e3 Scale our existing Triton setup on GKE, optimizing for cost and performance"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"We went with Option 2\u2014and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations."}),"\n",(0,a.jsx)(n.h3,{id:"fixing-the-cold-start-problem",children:"Fixing the Cold Start Problem"}),"\n",(0,a.jsx)(n.p,{children:"As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7\u20139 minutes to spin up."}),"\n",(0,a.jsx)(n.p,{children:"After profiling, we found the culprits:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Triton\u2019s base image\u2014a massive 5GB"}),"\n",(0,a.jsx)(n.li,{children:"Model binaries\u2014often 1GB+"}),"\n",(0,a.jsx)(n.li,{children:"Startup delay\u2014mostly due to downloading and initializing these assets"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother."}),"\n",(0,a.jsx)(n.h2,{id:"embedding-search-the-last-piece-of-the-puzzle",children:"Embedding Search: The Last Piece of the Puzzle"}),"\n",(0,a.jsx)(n.p,{children:"By mid-2023, most of our ML stack had gone real-time\u2014except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system."}),"\n",(0,a.jsx)(n.h3,{id:"choosing-the-right-vector-database",children:"Choosing the Right Vector Database"}),"\n",(0,a.jsx)(n.p,{children:"We benchmarked three production-ready vector DBs across key parameters:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Milvus"}),"\n",(0,a.jsx)(n.li,{children:"Qdrant"}),"\n",(0,a.jsx)(n.li,{children:"Weaviate"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"After extensive POCs, Qdrant stood out for its:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\u2705 Blazing-fast search latency on high-dimensional vectors"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 Efficient memory usage, crucial for in-memory workloads"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 Support for upserts and soft deletes, vital for Ads use cases"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 gRPC + REST APIs, making integration seamless"}),"\n",(0,a.jsx)(n.li,{children:"\u2705 Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search\u2014a perfect fit for our needs."}),"\n",(0,a.jsx)(n.h3,{id:"embedding-freshness--real-time-updates",children:"Embedding Freshness & Real-Time Updates"}),"\n",(0,a.jsx)(n.p,{children:"To ensure embeddings stayed up to date, we built a dual ingestion pipeline:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\ud83d\udccc Daily Refresh: A bulk pipeline updated embeddings overnight"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\udccc Real-Time Updates: Ads events triggered immediate upserts/deletes"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:'This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.'}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{alt:"Skye",src:t(702).A+"",width:"1260",height:"644"})}),"\n",(0,a.jsx)(n.h2,{id:"final-takeaways-scaling-smartly-for-real-time-ml",children:"Final Takeaways: Scaling Smartly for Real-Time ML"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Building a custom Triton image reduced cold starts, improving responsiveness"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Qdrant-based embedding search enabled real-time personalization at scale"}),"\n",(0,a.jsx)(n.li,{children:"\ud83d\ude80 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"By early 2024, Meesho\u2019s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead."})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},6e3:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/bms-7399e8796d2cd24617c432518ce3f312.png"},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>l});var i=t(6540);const a={},r=i.createContext(a);function s(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/docs/assets/js/main.3e15e71d.js b/docs/assets/js/main.3e15e71d.js new file mode 100644 index 00000000..1a92bb08 --- /dev/null +++ b/docs/assets/js/main.3e15e71d.js @@ -0,0 +1,2 @@ +/*! For license information please see main.3e15e71d.js.LICENSE.txt */ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8792],{115: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,c,u;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(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;for(u=e.entries();!(s=u.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(u=e.entries();!(s=u.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=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!==s--;)if(!Object.prototype.hasOwnProperty.call(i,c[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!==s--;)if(("_owner"!==c[s]&&"__v"!==c[s]&&"__o"!==c[s]||!e.$$typeof)&&!o(e[c[s]],i[c[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}}},119:(e,t,n)=>{"use strict";n.r(t)},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540);const a=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){if(t.cause)return[t,...e(t.cause)];return[t]}},311:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,l],u=0;(s=new Error(t.replace(/%s/g,function(){return c[u++]}))).name="Invariant Violation"}throw s.framesToPop=1,s}}},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},440:(e,t,n)=>{"use strict";t.rA=t.Ks=t.LU=void 0;const r=n(1635);t.LU="__blog-post-container";var a=n(2983);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(a).default}});var o=n(2566);var i=n(253);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>G});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),s=n(311),c=n.n(s),u=n(2833),d=n.n(u);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)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map(function(e){return g[e]}),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce(function(e,t){return e[k[t]]=t,e},{}),x=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},_=function(e){var t=x(e,g.TITLE),n=x(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,function(){return t});var r=x(e,"defaultTitle");return t||r||void 0},E=function(e){return x(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)},{})},A=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},[])},L=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 c=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][c]&&(a[n][c]=!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()},T=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},j=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce(function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e},{priority:[],default:[]}):{default:e}},M=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},N=[g.NOSCRIPT,g.SCRIPT,g.STYLE],O=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},"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce(function(t,n){return t[k[n]||n]=e[n],t},t)},B=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=k[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=D(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=j(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return B(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+'="'+O(r[t],n)+'"';return e?e+" "+a:a},""),o=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")},"")}(e,t,n)}}}},I=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,c=e.titleAttributes,u=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=P(e.metaTags,v),o=P(t,b),i=P(n,y);return{priorityMethods:{toComponent:function(){return[].concat(B(g.META,a.priority),B(g.LINK,o.priority),B(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,u=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,u,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:c},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=I({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,G=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);G.canUseDOM=H,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var V=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}},W=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],c=t[s]||"";n.getAttribute(s)!==c&&n.setAttribute(s,c),-1===a.indexOf(s)&&a.push(s);var u=o.indexOf(s);-1!==u&&o.splice(u,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(","))}},Q=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,c=e.styleTags,u=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),W(g.TITLE,t)}(u,d);var f={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,c)},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)},K=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:A(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:x(e,"defer"),encode:x(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:L(g.LINK,["rel","href"],e),metaTags:L(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:L(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:L(g.SCRIPT,["src","innerHTML"],e),styleTags:L(g.STYLE,["cssText"],e),title:_(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:T(e,"prioritizeSeoTags")});G.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame(function(){Q(t,function(){K=null})}):(Q(t),K=null)):I&&(a=I(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:q.isRequired},Y.displayName="HelmetDispatcher";var X=["children"],Z=["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()(M(this.props,"helmetData"),M(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 c()(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."),c()(!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[S[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,Z),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"},609:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>c});var r=n(6540),a=n(9532),o=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s({children:e,name:t,items:n}){const a=(0,r.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,o.jsx)(l.Provider,{value:a,children:e})}function c(){const e=(0,r.useContext)(l);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},679:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>c});n(6540);const r=JSON.parse('{"N":"localStorage","M":""}'),a=r.N;function o({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}function i(e=a){if("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,l||(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),l=!0),null}var t}let l=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){const n=`${e}${r.M}`;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}}(n);const a=i(t?.persistence);return null===a?s:{get:()=>{try{return a.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=a.getItem(n);a.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:a})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=a.getItem(n);a.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:a})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===a&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},961:(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(6221)},1043:(e,t,n)=>{"use strict";n.r(t)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(4164),a=n(1312),o=n(6342),i=n(8774),l=n(3427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(4848);function u({as:e,id:t,...n}){const u=(0,l.A)(),{navbar:{hideOnScroll:d}}=(0,o.p)();if("h1"===e||!t)return(0,c.jsx)(e,{...n,id:void 0});u.collectAnchor(t);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,c.jsxs)(e,{...n,className:(0,r.A)("anchor",d?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,n.className),id:t,children:[n.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${t}`,"aria-label":f,title:f,children:"\u200b"})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(6540),a=n(4164),o=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function c({className:e,children:t}){const n=(0,o.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{const o=t({theme:n,className:(0,a.A)(e,l.themedComponent,l[`themedComponent--${n}`])});return(0,s.jsx)(r.Fragment,{children:o},n)})})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(c,{className:n,children:({theme:e,className:n})=>(0,s.jsx)("img",{src:t[e],alt:r,className:n,...a})})}},1247:(e,t,n)=>{"use strict";var r=n(9982),a=n(6540),o=n(961);function i(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function c(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(i(188))}function d(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e;for(e=e.child;null!==e;){if(null!==(t=d(e)))return t;e=e.sibling}return null}var f=Object.assign,p=Symbol.for("react.element"),h=Symbol.for("react.transitional.element"),m=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),y=Symbol.for("react.profiler"),v=Symbol.for("react.provider"),w=Symbol.for("react.consumer"),k=Symbol.for("react.context"),S=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),C=Symbol.for("react.lazy");Symbol.for("react.scope");var A=Symbol.for("react.activity");Symbol.for("react.legacy_hidden"),Symbol.for("react.tracing_marker");var L=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var T=Symbol.iterator;function j(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=T&&e[T]||e["@@iterator"])?e:null}var P=Symbol.for("react.client.reference");function M(e){if(null==e)return null;if("function"==typeof e)return e.$$typeof===P?null:e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case g:return"Fragment";case y:return"Profiler";case b:return"StrictMode";case x:return"Suspense";case _:return"SuspenseList";case A:return"Activity"}if("object"==typeof e)switch(e.$$typeof){case m:return"Portal";case k:return(e.displayName||"Context")+".Provider";case w:return(e._context.displayName||"Context")+".Consumer";case S:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case E:return null!==(t=e.displayName||null)?t:M(e.type)||"Memo";case C:t=e._payload,e=e._init;try{return M(e(t))}catch(n){}}return null}var N=Array.isArray,O=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D={pending:!1,data:null,method:null,action:null},B=[],F=-1;function I(e){return{current:e}}function z(e){0>F||(e.current=B[F],B[F]=null,F--)}function $(e,t){F++,B[F]=e.current,e.current=t}var U=I(null),q=I(null),H=I(null),G=I(null);function V(e,t){switch($(H,t),$(q,e),$(U,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?ad(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=od(t=ad(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}z(U),$(U,e)}function W(){z(U),z(q),z(H)}function Q(e){null!==e.memoizedState&&$(G,e);var t=U.current,n=od(t,e.type);t!==n&&($(q,e),$(U,n))}function K(e){q.current===e&&(z(U),z(q)),G.current===e&&(z(G),Qd._currentValue=D)}var Y=Object.prototype.hasOwnProperty,X=r.unstable_scheduleCallback,Z=r.unstable_cancelCallback,J=r.unstable_shouldYield,ee=r.unstable_requestPaint,te=r.unstable_now,ne=r.unstable_getCurrentPriorityLevel,re=r.unstable_ImmediatePriority,ae=r.unstable_UserBlockingPriority,oe=r.unstable_NormalPriority,ie=r.unstable_LowPriority,le=r.unstable_IdlePriority,se=r.log,ce=r.unstable_setDisableYieldValue,ue=null,de=null;function fe(e){if("function"==typeof se&&ce(e),de&&"function"==typeof de.setStrictMode)try{de.setStrictMode(ue,e)}catch(t){}}var pe=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(he(e)/me|0)|0},he=Math.log,me=Math.LN2;var ge=256,be=4194304;function ye(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ve(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=134217727&r;return 0!==l?0!==(r=l&~o)?a=ye(r):0!==(i&=l)?a=ye(i):n||0!==(n=l&~e)&&(a=ye(n)):0!==(l=r&~o)?a=ye(l):0!==i?a=ye(i):n||0!==(n=r&~e)&&(a=ye(n)),0===a?0:0!==t&&t!==a&&0===(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&4194048&n)?t:a}function we(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function ke(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Se(){var e=ge;return!(4194048&(ge<<=1))&&(ge=256),e}function xe(){var e=be;return!(62914560&(be<<=1))&&(be=4194304),e}function _e(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ee(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ce(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-pe(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|4194090&n}function Ae(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-pe(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}function Le(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Te(e){return 2<(e&=-e)?8<e?134217727&e?32:268435456:8:2}function je(){var e=R.p;return 0!==e?e:void 0===(e=window.event)?32:uf(e.type)}var Pe=Math.random().toString(36).slice(2),Me="__reactFiber$"+Pe,Ne="__reactProps$"+Pe,Oe="__reactContainer$"+Pe,Re="__reactEvents$"+Pe,De="__reactListeners$"+Pe,Be="__reactHandles$"+Pe,Fe="__reactResources$"+Pe,Ie="__reactMarker$"+Pe;function ze(e){delete e[Me],delete e[Ne],delete e[Re],delete e[De],delete e[Be]}function $e(e){var t=e[Me];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Oe]||n[Me]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=vd(e);null!==e;){if(n=e[Me])return n;e=vd(e)}return t}n=(e=n).parentNode}return null}function Ue(e){if(e=e[Me]||e[Oe]){var t=e.tag;if(5===t||6===t||13===t||26===t||27===t||3===t)return e}return null}function qe(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(i(33))}function He(e){var t=e[Fe];return t||(t=e[Fe]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function Ge(e){e[Ie]=!0}var Ve=new Set,We={};function Qe(e,t){Ke(e,t),Ke(e+"Capture",t)}function Ke(e,t){for(We[e]=t,e=0;e<t.length;e++)Ve.add(t[e])}var Ye,Xe,Ze=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Je={},et={};function tt(e,t,n){if(a=t,Y.call(et,a)||!Y.call(Je,a)&&(Ze.test(a)?et[a]=!0:(Je[a]=!0,0)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":return void e.removeAttribute(t);case"boolean":var r=t.toLowerCase().slice(0,5);if("data-"!==r&&"aria-"!==r)return void e.removeAttribute(t)}e.setAttribute(t,""+n)}var a}function nt(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(t)}e.setAttribute(t,""+n)}}function rt(e,t,n,r){if(null===r)e.removeAttribute(n);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(n)}e.setAttributeNS(t,n,""+r)}}function at(e){if(void 0===Ye)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Ye=t&&t[1]||"",Xe=-1<n.stack.indexOf("\n at")?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+Ye+e+Xe}var ot=!1;function it(e,t){if(!e||ot)return"";ot=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(a){var r=a}Reflect.construct(e,[],n)}else{try{n.call()}catch(o){r=o}e.call(n.prototype)}}else{try{throw Error()}catch(i){r=i}(n=e())&&"function"==typeof n.catch&&n.catch(function(){})}}catch(l){if(l&&r&&"string"==typeof l.stack)return[l.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var a=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");a&&a.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var o=r.DetermineComponentFrameRoot(),i=o[0],l=o[1];if(i&&l){var s=i.split("\n"),c=l.split("\n");for(a=r=0;r<s.length&&!s[r].includes("DetermineComponentFrameRoot");)r++;for(;a<c.length&&!c[a].includes("DetermineComponentFrameRoot");)a++;if(r===s.length||a===c.length)for(r=s.length-1,a=c.length-1;1<=r&&0<=a&&s[r]!==c[a];)a--;for(;1<=r&&0<=a;r--,a--)if(s[r]!==c[a]){if(1!==r||1!==a)do{if(r--,0>--a||s[r]!==c[a]){var u="\n"+s[r].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}}while(1<=r&&0<=a);break}}}finally{ot=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?at(n):""}function lt(e){switch(e.tag){case 26:case 27:case 5:return at(e.type);case 16:return at("Lazy");case 13:return at("Suspense");case 19:return at("SuspenseList");case 0:case 15:return it(e.type,!1);case 11:return it(e.type.render,!1);case 1:return it(e.type,!0);case 31:return at("Activity");default:return""}}function st(e){try{var t="";do{t+=lt(e),e=e.return}while(e);return t}catch(n){return"\nError generating stack: "+n.message+"\n"+n.stack}}function ct(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function ut(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function dt(e){e._valueTracker||(e._valueTracker=function(e){var t=ut(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 ft(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ut(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function pt(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}}var ht=/[\n"\\]/g;function mt(e){return e.replace(ht,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function gt(e,t,n,r,a,o,i,l){e.name="",null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i?e.type=i:e.removeAttribute("type"),null!=t?"number"===i?(0===t&&""===e.value||e.value!=t)&&(e.value=""+ct(t)):e.value!==""+ct(t)&&(e.value=""+ct(t)):"submit"!==i&&"reset"!==i||e.removeAttribute("value"),null!=t?yt(e,i,ct(t)):null!=n?yt(e,i,ct(n)):null!=r&&e.removeAttribute("value"),null==a&&null!=o&&(e.defaultChecked=!!o),null!=a&&(e.checked=a&&"function"!=typeof a&&"symbol"!=typeof a),null!=l&&"function"!=typeof l&&"symbol"!=typeof l&&"boolean"!=typeof l?e.name=""+ct(l):e.removeAttribute("name")}function bt(e,t,n,r,a,o,i,l){if(null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.type=o),null!=t||null!=n){if(("submit"===o||"reset"===o)&&null==t)return;n=null!=n?""+ct(n):"",t=null!=t?""+ct(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r="function"!=typeof(r=null!=r?r:a)&&"symbol"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i&&(e.name=i)}function yt(e,t,n){"number"===t&&pt(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function vt(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=""+ct(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 wt(e,t,n){null==t||((t=""+ct(t))!==e.value&&(e.value=t),null!=n)?e.defaultValue=null!=n?""+ct(n):"":e.defaultValue!==t&&(e.defaultValue=t)}function kt(e,t,n,r){if(null==t){if(null!=r){if(null!=n)throw Error(i(92));if(N(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}null==n&&(n=""),t=n}n=ct(t),e.defaultValue=n,(r=e.textContent)===n&&""!==r&&null!==r&&(e.value=r)}function St(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 xt=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function _t(e,t,n){var r=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?r?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":r?e.setProperty(t,n):"number"!=typeof n||0===n||xt.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Et(e,t,n){if(null!=t&&"object"!=typeof t)throw Error(i(62));if(e=e.style,null!=n){for(var r in n)!n.hasOwnProperty(r)||null!=t&&t.hasOwnProperty(r)||(0===r.indexOf("--")?e.setProperty(r,""):"float"===r?e.cssFloat="":e[r]="");for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&_t(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&_t(e,o,t[o])}function Ct(e){if(-1===e.indexOf("-"))return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var At=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Lt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Tt(e){return Lt.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}var jt=null;function Pt(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Mt=null,Nt=null;function Ot(e){var t=Ue(e);if(t&&(e=t.stateNode)){var n=e[Ne]||null;e:switch(e=t.stateNode,t.type){case"input":if(gt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+mt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[Ne]||null;if(!a)throw Error(i(90));gt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)(r=n[t]).form===e.form&&ft(r)}break e;case"textarea":wt(e,n.value,n.defaultValue);break e;case"select":null!=(t=n.value)&&vt(e,!!n.multiple,t,!1)}}}var Rt=!1;function Dt(e,t,n){if(Rt)return e(t,n);Rt=!0;try{return e(t)}finally{if(Rt=!1,(null!==Mt||null!==Nt)&&($c(),Mt&&(t=Mt,e=Nt,Nt=Mt=null,Ot(t),e)))for(t=0;t<e.length;t++)Ot(e[t])}}function Bt(e,t){var n=e.stateNode;if(null===n)return null;var r=n[Ne]||null;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 Ft=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),It=!1;if(Ft)try{var zt={};Object.defineProperty(zt,"passive",{get:function(){It=!0}}),window.addEventListener("test",zt,zt),window.removeEventListener("test",zt,zt)}catch(Of){It=!1}var $t=null,Ut=null,qt=null;function Ht(){if(qt)return qt;var e,t,n=Ut,r=n.length,a="value"in $t?$t.value:$t.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 qt=a.slice(e,1<t?1-t:void 0)}function Gt(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 Vt(){return!0}function Wt(){return!1}function Qt(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)?Vt:Wt,this.isPropagationStopped=Wt,this}return f(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=Vt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Vt)},persist:function(){},isPersistent:Vt}),t}var Kt,Yt,Xt,Zt={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Jt=Qt(Zt),en=f({},Zt,{view:0,detail:0}),tn=Qt(en),nn=f({},en,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:hn,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!==Xt&&(Xt&&"mousemove"===e.type?(Kt=e.screenX-Xt.screenX,Yt=e.screenY-Xt.screenY):Yt=Kt=0,Xt=e),Kt)},movementY:function(e){return"movementY"in e?e.movementY:Yt}}),rn=Qt(nn),an=Qt(f({},nn,{dataTransfer:0})),on=Qt(f({},en,{relatedTarget:0})),ln=Qt(f({},Zt,{animationName:0,elapsedTime:0,pseudoElement:0})),sn=Qt(f({},Zt,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),cn=Qt(f({},Zt,{data:0})),un={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},dn={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"},fn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function pn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=fn[e])&&!!t[e]}function hn(){return pn}var mn=Qt(f({},en,{key:function(e){if(e.key){var t=un[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=Gt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?dn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:hn,charCode:function(e){return"keypress"===e.type?Gt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Gt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),gn=Qt(f({},nn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),bn=Qt(f({},en,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:hn})),yn=Qt(f({},Zt,{propertyName:0,elapsedTime:0,pseudoElement:0})),vn=Qt(f({},nn,{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})),wn=Qt(f({},Zt,{newState:0,oldState:0})),kn=[9,13,27,32],Sn=Ft&&"CompositionEvent"in window,xn=null;Ft&&"documentMode"in document&&(xn=document.documentMode);var _n=Ft&&"TextEvent"in window&&!xn,En=Ft&&(!Sn||xn&&8<xn&&11>=xn),Cn=String.fromCharCode(32),An=!1;function Ln(e,t){switch(e){case"keyup":return-1!==kn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Tn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var jn=!1;var Pn={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 Mn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Pn[e.type]:"textarea"===t}function Nn(e,t,n,r){Mt?Nt?Nt.push(r):Nt=[r]:Mt=r,0<(t=Hu(t,"onChange")).length&&(n=new Jt("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var On=null,Rn=null;function Dn(e){Du(e,0)}function Bn(e){if(ft(qe(e)))return e}function Fn(e,t){if("change"===e)return t}var In=!1;if(Ft){var zn;if(Ft){var $n="oninput"in document;if(!$n){var Un=document.createElement("div");Un.setAttribute("oninput","return;"),$n="function"==typeof Un.oninput}zn=$n}else zn=!1;In=zn&&(!document.documentMode||9<document.documentMode)}function qn(){On&&(On.detachEvent("onpropertychange",Hn),Rn=On=null)}function Hn(e){if("value"===e.propertyName&&Bn(Rn)){var t=[];Nn(t,Rn,e,Pt(e)),Dt(Dn,t)}}function Gn(e,t,n){"focusin"===e?(qn(),Rn=n,(On=t).attachEvent("onpropertychange",Hn)):"focusout"===e&&qn()}function Vn(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Bn(Rn)}function Wn(e,t){if("click"===e)return Bn(t)}function Qn(e,t){if("input"===e||"change"===e)return Bn(t)}var Kn="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function Yn(e,t){if(Kn(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!Y.call(t,a)||!Kn(e[a],t[a]))return!1}return!0}function Xn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Zn(e,t){var n,r=Xn(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=Xn(r)}}function Jn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?Jn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function er(e){for(var t=pt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=pt((e=t.contentWindow).document)}return t}function tr(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 nr=Ft&&"documentMode"in document&&11>=document.documentMode,rr=null,ar=null,or=null,ir=!1;function lr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;ir||null==rr||rr!==pt(r)||("selectionStart"in(r=rr)&&tr(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},or&&Yn(or,r)||(or=r,0<(r=Hu(ar,"onSelect")).length&&(t=new Jt("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=rr)))}function sr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var cr={animationend:sr("Animation","AnimationEnd"),animationiteration:sr("Animation","AnimationIteration"),animationstart:sr("Animation","AnimationStart"),transitionrun:sr("Transition","TransitionRun"),transitionstart:sr("Transition","TransitionStart"),transitioncancel:sr("Transition","TransitionCancel"),transitionend:sr("Transition","TransitionEnd")},ur={},dr={};function fr(e){if(ur[e])return ur[e];if(!cr[e])return e;var t,n=cr[e];for(t in n)if(n.hasOwnProperty(t)&&t in dr)return ur[e]=n[t];return e}Ft&&(dr=document.createElement("div").style,"AnimationEvent"in window||(delete cr.animationend.animation,delete cr.animationiteration.animation,delete cr.animationstart.animation),"TransitionEvent"in window||delete cr.transitionend.transition);var pr=fr("animationend"),hr=fr("animationiteration"),mr=fr("animationstart"),gr=fr("transitionrun"),br=fr("transitionstart"),yr=fr("transitioncancel"),vr=fr("transitionend"),wr=new Map,kr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Sr(e,t){wr.set(e,t),Qe(t,[e])}kr.push("scrollEnd");var xr=new WeakMap;function _r(e,t){if("object"==typeof e&&null!==e){var n=xr.get(e);return void 0!==n?n:(t={value:e,source:t,stack:st(t)},xr.set(e,t),t)}return{value:e,source:t,stack:st(t)}}var Er=[],Cr=0,Ar=0;function Lr(){for(var e=Cr,t=Ar=Cr=0;t<e;){var n=Er[t];Er[t++]=null;var r=Er[t];Er[t++]=null;var a=Er[t];Er[t++]=null;var o=Er[t];if(Er[t++]=null,null!==r&&null!==a){var i=r.pending;null===i?a.next=a:(a.next=i.next,i.next=a),r.pending=a}0!==o&&Mr(n,a,o)}}function Tr(e,t,n,r){Er[Cr++]=e,Er[Cr++]=t,Er[Cr++]=n,Er[Cr++]=r,Ar|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function jr(e,t,n,r){return Tr(e,t,n,r),Nr(e)}function Pr(e,t){return Tr(e,null,null,t),Nr(e)}function Mr(e,t,n){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n);for(var a=!1,o=e.return;null!==o;)o.childLanes|=n,null!==(r=o.alternate)&&(r.childLanes|=n),22===o.tag&&(null===(e=o.stateNode)||1&e._visibility||(a=!0)),e=o,o=o.return;return 3===e.tag?(o=e.stateNode,a&&null!==t&&(a=31-pe(n),null===(r=(e=o.hiddenUpdates)[a])?e[a]=[t]:r.push(t),t.lane=536870912|n),o):null}function Nr(e){if(50<Mc)throw Mc=0,Nc=null,Error(i(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var Or={};function Rr(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dr(e,t,n,r){return new Rr(e,t,n,r)}function Br(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Fr(e,t){var n=e.alternate;return null===n?((n=Dr(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=65011712&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Ir(e,t){e.flags&=65011714;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function zr(e,t,n,r,a,o){var l=0;if(r=e,"function"==typeof e)Br(e)&&(l=1);else if("string"==typeof e)l=function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof t.precedence||"string"!=typeof t.href||""===t.href)break;return!0;case"link":if("string"!=typeof t.rel||"string"!=typeof t.href||""===t.href||t.onLoad||t.onError)break;return"stylesheet"!==t.rel||(e=t.disabled,"string"==typeof t.precedence&&null==e);case"script":if(t.async&&"function"!=typeof t.async&&"symbol"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&"string"==typeof t.src)return!0}return!1}(e,n,U.current)?26:"html"===e||"head"===e||"body"===e?27:5;else e:switch(e){case A:return(e=Dr(31,n,t,a)).elementType=A,e.lanes=o,e;case g:return $r(n.children,a,o,t);case b:l=8,a|=24;break;case y:return(e=Dr(12,n,t,2|a)).elementType=y,e.lanes=o,e;case x:return(e=Dr(13,n,t,a)).elementType=x,e.lanes=o,e;case _:return(e=Dr(19,n,t,a)).elementType=_,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case v:case k:l=10;break e;case w:l=9;break e;case S:l=11;break e;case E:l=14;break e;case C:l=16,r=null;break e}l=29,n=Error(i(130,null===e?"null":typeof e,"")),r=null}return(t=Dr(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function $r(e,t,n,r){return(e=Dr(7,e,r,t)).lanes=n,e}function Ur(e,t,n){return(e=Dr(6,e,null,t)).lanes=n,e}function qr(e,t,n){return(t=Dr(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Hr=[],Gr=0,Vr=null,Wr=0,Qr=[],Kr=0,Yr=null,Xr=1,Zr="";function Jr(e,t){Hr[Gr++]=Wr,Hr[Gr++]=Vr,Vr=e,Wr=t}function ea(e,t,n){Qr[Kr++]=Xr,Qr[Kr++]=Zr,Qr[Kr++]=Yr,Yr=e;var r=Xr;e=Zr;var a=32-pe(r)-1;r&=~(1<<a),n+=1;var o=32-pe(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Xr=1<<32-pe(t)+a|n<<a|r,Zr=o+e}else Xr=1<<o|n<<a|r,Zr=e}function ta(e){null!==e.return&&(Jr(e,1),ea(e,1,0))}function na(e){for(;e===Vr;)Vr=Hr[--Gr],Hr[Gr]=null,Wr=Hr[--Gr],Hr[Gr]=null;for(;e===Yr;)Yr=Qr[--Kr],Qr[Kr]=null,Zr=Qr[--Kr],Qr[Kr]=null,Xr=Qr[--Kr],Qr[Kr]=null}var ra=null,aa=null,oa=!1,ia=null,la=!1,sa=Error(i(519));function ca(e){throw ma(_r(Error(i(418,"")),e)),sa}function ua(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[Me]=e,t[Ne]=r,n){case"dialog":Bu("cancel",t),Bu("close",t);break;case"iframe":case"object":case"embed":Bu("load",t);break;case"video":case"audio":for(n=0;n<Ou.length;n++)Bu(Ou[n],t);break;case"source":Bu("error",t);break;case"img":case"image":case"link":Bu("error",t),Bu("load",t);break;case"details":Bu("toggle",t);break;case"input":Bu("invalid",t),bt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0),dt(t);break;case"select":Bu("invalid",t);break;case"textarea":Bu("invalid",t),kt(t,r.value,r.defaultValue,r.children),dt(t)}"string"!=typeof(n=r.children)&&"number"!=typeof n&&"bigint"!=typeof n||t.textContent===""+n||!0===r.suppressHydrationWarning||Yu(t.textContent,n)?(null!=r.popover&&(Bu("beforetoggle",t),Bu("toggle",t)),null!=r.onScroll&&Bu("scroll",t),null!=r.onScrollEnd&&Bu("scrollend",t),null!=r.onClick&&(t.onclick=Xu),t=!0):t=!1,t||ca(e)}function da(e){for(ra=e.return;ra;)switch(ra.tag){case 5:case 13:return void(la=!1);case 27:case 3:return void(la=!0);default:ra=ra.return}}function fa(e){if(e!==ra)return!1;if(!oa)return da(e),oa=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t=!("form"!==(t=e.type)&&"button"!==t)||id(e.type,e.memoizedProps)),t=!t),t&&aa&&ca(e),da(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,n=0;e;){if(8===e.nodeType)if("/$"===(t=e.data)){if(0===n){aa=bd(e.nextSibling);break e}n--}else"$"!==t&&"$!"!==t&&"$?"!==t||n++;e=e.nextSibling}aa=null}}else 27===n?(n=aa,pd(e.type)?(e=yd,yd=null,aa=e):aa=n):aa=ra?bd(e.stateNode.nextSibling):null;return!0}function pa(){aa=ra=null,oa=!1}function ha(){var e=ia;return null!==e&&(null===vc?vc=e:vc.push.apply(vc,e),ia=null),e}function ma(e){null===ia?ia=[e]:ia.push(e)}var ga=I(null),ba=null,ya=null;function va(e,t,n){$(ga,t._currentValue),t._currentValue=n}function wa(e){e._currentValue=ga.current,z(ga)}function ka(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Sa(e,t,n,r){var a=e.child;for(null!==a&&(a.return=e);null!==a;){var o=a.dependencies;if(null!==o){var l=a.child;o=o.firstContext;e:for(;null!==o;){var s=o;o=a;for(var c=0;c<t.length;c++)if(s.context===t[c]){o.lanes|=n,null!==(s=o.alternate)&&(s.lanes|=n),ka(o.return,n,e),r||(l=null);break e}o=s.next}}else if(18===a.tag){if(null===(l=a.return))throw Error(i(341));l.lanes|=n,null!==(o=l.alternate)&&(o.lanes|=n),ka(l,n,e),l=null}else l=a.child;if(null!==l)l.return=a;else for(l=a;null!==l;){if(l===e){l=null;break}if(null!==(a=l.sibling)){a.return=l.return,l=a;break}l=l.return}a=l}}function xa(e,t,n,r){e=null;for(var a=t,o=!1;null!==a;){if(!o)if(524288&a.flags)o=!0;else if(262144&a.flags)break;if(10===a.tag){var l=a.alternate;if(null===l)throw Error(i(387));if(null!==(l=l.memoizedProps)){var s=a.type;Kn(a.pendingProps.value,l.value)||(null!==e?e.push(s):e=[s])}}else if(a===G.current){if(null===(l=a.alternate))throw Error(i(387));l.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(null!==e?e.push(Qd):e=[Qd])}a=a.return}null!==e&&Sa(t,e,n,r),t.flags|=262144}function _a(e){for(e=e.firstContext;null!==e;){if(!Kn(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Ea(e){ba=e,ya=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function Ca(e){return La(ba,e)}function Aa(e,t){return null===ba&&Ea(e),La(e,t)}function La(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===ya){if(null===e)throw Error(i(308));ya=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else ya=ya.next=t;return n}var Ta="undefined"!=typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ja=r.unstable_scheduleCallback,Pa=r.unstable_NormalPriority,Ma={$$typeof:k,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Na(){return{controller:new Ta,data:new Map,refCount:0}}function Oa(e){e.refCount--,0===e.refCount&&ja(Pa,function(){e.controller.abort()})}var Ra=null,Da=0,Ba=0,Fa=null;function Ia(){if(0===--Da&&null!==Ra){null!==Fa&&(Fa.status="fulfilled");var e=Ra;Ra=null,Ba=0,Fa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var za=O.S;O.S=function(e,t){"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e,t){if(null===Ra){var n=Ra=[];Da=0,Ba=Tu(),Fa={status:"pending",value:void 0,then:function(e){n.push(e)}}}Da++,t.then(Ia,Ia)}(0,t),null!==za&&za(e,t)};var $a=I(null);function Ua(){var e=$a.current;return null!==e?e:rc.pooledCache}function qa(e,t){$($a,null===t?$a.current:t.pool)}function Ha(){var e=Ua();return null===e?null:{parent:Ma._currentValue,pool:e}}var Ga=Error(i(460)),Va=Error(i(474)),Wa=Error(i(542)),Qa={then:function(){}};function Ka(e){return"fulfilled"===(e=e.status)||"rejected"===e}function Ya(){}function Xa(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(Ya,Ya),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw eo(e=t.reason),e;default:if("string"==typeof t.status)t.then(Ya,Ya);else{if(null!==(e=rc)&&100<e.shellSuspendCounter)throw Error(i(482));(e=t).status="pending",e.then(function(e){if("pending"===t.status){var n=t;n.status="fulfilled",n.value=e}},function(e){if("pending"===t.status){var n=t;n.status="rejected",n.reason=e}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw eo(e=t.reason),e}throw Za=t,Ga}}var Za=null;function Ja(){if(null===Za)throw Error(i(459));var e=Za;return Za=null,e}function eo(e){if(e===Ga||e===Wa)throw Error(i(483))}var to=!1;function no(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ro(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ao(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function oo(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&nc){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=Nr(e),Mr(e,null,n),t}return Tr(e,r,t,n),Nr(e)}function io(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194048&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Ae(e,n)}}function lo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var so=!1;function co(){if(so){if(null!==Fa)throw Fa}}function uo(e,t,n,r){so=!1;var a=e.updateQueue;to=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,c=s.next;s.next=null,null===i?o=c:i.next=c,i=s;var u=e.alternate;null!==u&&((l=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===l?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(i=0,u=c=s=null,l=o;;){var p=-536870913&l.lane,h=p!==l.lane;if(h?(oc&p)===p:(r&p)===p){0!==p&&p===Ba&&(so=!0),null!==u&&(u=u.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var m=e,g=l;p=t;var b=n;switch(g.tag){case 1:if("function"==typeof(m=g.payload)){d=m.call(b,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=g.payload)?m.call(b,d,p):m))break e;d=f({},d,p);break e;case 2:to=!0}}null!==(p=l.callback)&&(e.flags|=64,h&&(e.flags|=8192),null===(h=a.callbacks)?a.callbacks=[p]:h.push(p))}else h={lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===u?(c=u=h,s=d):u=u.next=h,i|=p;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(h=l).next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}null===u&&(s=d),a.baseState=s,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null===o&&(a.shared.lanes=0),pc|=i,e.lanes=i,e.memoizedState=d}}function fo(e,t){if("function"!=typeof e)throw Error(i(191,e));e.call(t)}function po(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)fo(n[e],t)}var ho=I(null),mo=I(0);function go(e,t){$(mo,e=dc),$(ho,t),dc=e|t.baseLanes}function bo(){$(mo,dc),$(ho,ho.current)}function yo(){dc=mo.current,z(ho),z(mo)}var vo=0,wo=null,ko=null,So=null,xo=!1,_o=!1,Eo=!1,Co=0,Ao=0,Lo=null,To=0;function jo(){throw Error(i(321))}function Po(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Kn(e[n],t[n]))return!1;return!0}function Mo(e,t,n,r,a,o){return vo=o,wo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,O.H=null===e||null===e.memoizedState?Vi:Wi,Eo=!1,o=n(r,a),Eo=!1,_o&&(o=Oo(t,n,r,a)),No(e),o}function No(e){O.H=Gi;var t=null!==ko&&null!==ko.next;if(vo=0,So=ko=wo=null,xo=!1,Ao=0,Lo=null,t)throw Error(i(300));null===e||Al||null!==(e=e.dependencies)&&_a(e)&&(Al=!0)}function Oo(e,t,n,r){wo=e;var a=0;do{if(_o&&(Lo=null),Ao=0,_o=!1,25<=a)throw Error(i(301));if(a+=1,So=ko=null,null!=e.updateQueue){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,null!=o.memoCache&&(o.memoCache.index=0)}O.H=Qi,o=t(n,r)}while(_o);return o}function Ro(){var e=O.H,t=e.useState()[0];return t="function"==typeof t.then?$o(t):t,e=e.useState()[0],(null!==ko?ko.memoizedState:null)!==e&&(wo.flags|=1024),t}function Do(){var e=0!==Co;return Co=0,e}function Bo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Fo(e){if(xo){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}xo=!1}vo=0,So=ko=wo=null,_o=!1,Ao=Co=0,Lo=null}function Io(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===So?wo.memoizedState=So=e:So=So.next=e,So}function zo(){if(null===ko){var e=wo.alternate;e=null!==e?e.memoizedState:null}else e=ko.next;var t=null===So?wo.memoizedState:So.next;if(null!==t)So=t,ko=e;else{if(null===e){if(null===wo.alternate)throw Error(i(467));throw Error(i(310))}e={memoizedState:(ko=e).memoizedState,baseState:ko.baseState,baseQueue:ko.baseQueue,queue:ko.queue,next:null},null===So?wo.memoizedState=So=e:So=So.next=e}return So}function $o(e){var t=Ao;return Ao+=1,null===Lo&&(Lo=[]),e=Xa(Lo,e,t),t=wo,null===(null===So?t.memoizedState:So.next)&&(t=t.alternate,O.H=null===t||null===t.memoizedState?Vi:Wi),e}function Uo(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return $o(e);if(e.$$typeof===k)return Ca(e)}throw Error(i(438,String(e)))}function qo(e){var t=null,n=wo.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var r=wo.alternate;null!==r&&(null!==(r=r.updateQueue)&&(null!=(r=r.memoCache)&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(null==t&&(t={data:[],index:0}),null===n&&(n={lastEffect:null,events:null,stores:null,memoCache:null},wo.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=L;return t.index++,n}function Ho(e,t){return"function"==typeof t?t(e):t}function Go(e){return Vo(zo(),ko,e)}function Vo(e,t,n){var r=e.queue;if(null===r)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,null===a)e.memoizedState=o;else{var s=l=null,c=null,u=t=a.next,d=!1;do{var f=-536870913&u.lane;if(f!==u.lane?(oc&f)===f:(vo&f)===f){var p=u.revertLane;if(0===p)null!==c&&(c=c.next={lane:0,revertLane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===Ba&&(d=!0);else{if((vo&p)===p){u=u.next,p===Ba&&(d=!0);continue}f={lane:0,revertLane:u.revertLane,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=f,l=o):c=c.next=f,wo.lanes|=p,pc|=p}f=u.action,Eo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=p,l=o):c=c.next=p,wo.lanes|=f,pc|=f;u=u.next}while(null!==u&&u!==t);if(null===c?l=o:c.next=s,!Kn(o,e.memoizedState)&&(Al=!0,d&&null!==(n=Fa)))throw n;e.memoizedState=o,e.baseState=l,e.baseQueue=c,r.lastRenderedState=o}return null===a&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Wo(e){var t=zo(),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);Kn(o,t.memoizedState)||(Al=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Qo(e,t,n){var r=wo,a=zo(),o=oa;if(o){if(void 0===n)throw Error(i(407));n=n()}else n=t();var l=!Kn((ko||a).memoizedState,n);if(l&&(a.memoizedState=n,Al=!0),a=a.queue,bi(2048,8,Xo.bind(null,r,a,e),[e]),a.getSnapshot!==t||l||null!==So&&1&So.memoizedState.tag){if(r.flags|=2048,hi(9,{destroy:void 0,resource:void 0},Yo.bind(null,r,a,n,t),null),null===rc)throw Error(i(349));o||124&vo||Ko(r,t,n)}return n}function Ko(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=wo.updateQueue)?(t={lastEffect:null,events:null,stores:null,memoCache:null},wo.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Yo(e,t,n,r){t.value=n,t.getSnapshot=r,Zo(t)&&Jo(e)}function Xo(e,t,n){return n(function(){Zo(t)&&Jo(e)})}function Zo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Kn(e,n)}catch(r){return!0}}function Jo(e){var t=Pr(e,2);null!==t&&Dc(t,e,2)}function ei(e){var t=Io();if("function"==typeof e){var n=e;if(e=n(),Eo){fe(!0);try{n()}finally{fe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ho,lastRenderedState:e},t}function ti(e,t,n,r){return e.baseState=n,Vo(e,ko,"function"==typeof r?r:Ho)}function ni(e,t,n,r,a){if(Ui(e))throw Error(i(485));if(null!==(e=t.action)){var o={payload:a,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};null!==O.T?n(!0):o.isTransition=!1,r(o),null===(n=t.pending)?(o.next=t.pending=o,ri(t,o)):(o.next=n.next,t.pending=n.next=o)}}function ri(e,t){var n=t.action,r=t.payload,a=e.state;if(t.isTransition){var o=O.T,i={};O.T=i;try{var l=n(a,r),s=O.S;null!==s&&s(i,l),ai(e,t,l)}catch(c){ii(e,t,c)}finally{O.T=o}}else try{ai(e,t,o=n(a,r))}catch(u){ii(e,t,u)}}function ai(e,t,n){null!==n&&"object"==typeof n&&"function"==typeof n.then?n.then(function(n){oi(e,t,n)},function(n){return ii(e,t,n)}):oi(e,t,n)}function oi(e,t,n){t.status="fulfilled",t.value=n,li(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,ri(e,n)))}function ii(e,t,n){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do{t.status="rejected",t.reason=n,li(t),t=t.next}while(t!==r)}e.action=null}function li(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function si(e,t){return t}function ci(e,t){if(oa){var n=rc.formState;if(null!==n){e:{var r=wo;if(oa){if(aa){t:{for(var a=aa,o=la;8!==a.nodeType;){if(!o){a=null;break t}if(null===(a=bd(a.nextSibling))){a=null;break t}}a="F!"===(o=a.data)||"F"===o?a:null}if(a){aa=bd(a.nextSibling),r="F!"===a.data;break e}}ca(r)}r=!1}r&&(t=n[0])}}return(n=Io()).memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:si,lastRenderedState:t},n.queue=r,n=Ii.bind(null,wo,r),r.dispatch=n,r=ei(!1),o=$i.bind(null,wo,!1,r.queue),a={state:t,dispatch:null,action:e,pending:null},(r=Io()).queue=a,n=ni.bind(null,wo,a,o,n),a.dispatch=n,r.memoizedState=e,[t,n,!1]}function ui(e){return di(zo(),ko,e)}function di(e,t,n){if(t=Vo(e,t,si)[0],e=Go(Ho)[0],"object"==typeof t&&null!==t&&"function"==typeof t.then)try{var r=$o(t)}catch(i){if(i===Ga)throw Wa;throw i}else r=t;var a=(t=zo()).queue,o=a.dispatch;return n!==t.memoizedState&&(wo.flags|=2048,hi(9,{destroy:void 0,resource:void 0},fi.bind(null,a,n),null)),[r,o,e]}function fi(e,t){e.action=t}function pi(e){var t=zo(),n=ko;if(null!==n)return di(t,n,e);zo(),t=t.memoizedState;var r=(n=zo()).queue.dispatch;return n.memoizedState=e,[t,r,!1]}function hi(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},null===(t=wo.updateQueue)&&(t={lastEffect:null,events:null,stores:null,memoCache:null},wo.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function mi(){return zo().memoizedState}function gi(e,t,n,r){var a=Io();r=void 0===r?null:r,wo.flags|=e,a.memoizedState=hi(1|t,{destroy:void 0,resource:void 0},n,r)}function bi(e,t,n,r){var a=zo();r=void 0===r?null:r;var o=a.memoizedState.inst;null!==ko&&null!==r&&Po(r,ko.memoizedState.deps)?a.memoizedState=hi(t,o,n,r):(wo.flags|=e,a.memoizedState=hi(1|t,o,n,r))}function yi(e,t){gi(8390656,8,e,t)}function vi(e,t){bi(2048,8,e,t)}function wi(e,t){return bi(4,2,e,t)}function ki(e,t){return bi(4,4,e,t)}function Si(e,t){if("function"==typeof t){e=e();var n=t(e);return function(){"function"==typeof n?n():t(null)}}if(null!=t)return e=e(),t.current=e,function(){t.current=null}}function xi(e,t,n){n=null!=n?n.concat([e]):null,bi(4,4,Si.bind(null,t,e),n)}function _i(){}function Ei(e,t){var n=zo();t=void 0===t?null:t;var r=n.memoizedState;return null!==t&&Po(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ci(e,t){var n=zo();t=void 0===t?null:t;var r=n.memoizedState;if(null!==t&&Po(t,r[1]))return r[0];if(r=e(),Eo){fe(!0);try{e()}finally{fe(!1)}}return n.memoizedState=[r,t],r}function Ai(e,t,n){return void 0===n||1073741824&vo?e.memoizedState=t:(e.memoizedState=n,e=Rc(),wo.lanes|=e,pc|=e,n)}function Li(e,t,n,r){return Kn(n,t)?n:null!==ho.current?(e=Ai(e,n,r),Kn(e,t)||(Al=!0),e):42&vo?(e=Rc(),wo.lanes|=e,pc|=e,t):(Al=!0,e.memoizedState=n)}function Ti(e,t,n,r,a){var o=R.p;R.p=0!==o&&8>o?o:8;var i,l,s,c=O.T,u={};O.T=u,$i(e,!1,t,n);try{var d=a(),f=O.S;if(null!==f&&f(u,d),null!==d&&"object"==typeof d&&"function"==typeof d.then)zi(e,t,(i=r,l=[],s={status:"pending",value:null,reason:null,then:function(e){l.push(e)}},d.then(function(){s.status="fulfilled",s.value=i;for(var e=0;e<l.length;e++)(0,l[e])(i)},function(e){for(s.status="rejected",s.reason=e,e=0;e<l.length;e++)(0,l[e])(void 0)}),s),Oc());else zi(e,t,r,Oc())}catch(p){zi(e,t,{then:function(){},status:"rejected",reason:p},Oc())}finally{R.p=o,O.T=c}}function ji(){}function Pi(e,t,n,r){if(5!==e.tag)throw Error(i(476));var a=Mi(e).queue;Ti(e,a,t,D,null===n?ji:function(){return Ni(e),n(r)})}function Mi(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:D,baseState:D,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ho,lastRenderedState:D},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ho,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function Ni(e){zi(e,Mi(e).next.queue,{},Oc())}function Oi(){return Ca(Qd)}function Ri(){return zo().memoizedState}function Di(){return zo().memoizedState}function Bi(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=Oc(),r=oo(t,e=ao(n),n);return null!==r&&(Dc(r,t,n),io(r,t,n)),t={cache:Na()},void(e.payload=t)}t=t.return}}function Fi(e,t,n){var r=Oc();n={lane:r,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null},Ui(e)?qi(t,n):null!==(n=jr(e,t,n,r))&&(Dc(n,e,r),Hi(n,t,r))}function Ii(e,t,n){zi(e,t,n,Oc())}function zi(e,t,n,r){var a={lane:r,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ui(e))qi(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,Kn(l,i))return Tr(e,t,a,0),null===rc&&Lr(),!1}catch(s){}if(null!==(n=jr(e,t,a,r)))return Dc(n,e,r),Hi(n,t,r),!0}return!1}function $i(e,t,n,r){if(r={lane:2,revertLane:Tu(),action:r,hasEagerState:!1,eagerState:null,next:null},Ui(e)){if(t)throw Error(i(479))}else null!==(t=jr(e,n,r,2))&&Dc(t,e,2)}function Ui(e){var t=e.alternate;return e===wo||null!==t&&t===wo}function qi(e,t){_o=xo=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Hi(e,t,n){if(4194048&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Ae(e,n)}}var Gi={readContext:Ca,use:Uo,useCallback:jo,useContext:jo,useEffect:jo,useImperativeHandle:jo,useLayoutEffect:jo,useInsertionEffect:jo,useMemo:jo,useReducer:jo,useRef:jo,useState:jo,useDebugValue:jo,useDeferredValue:jo,useTransition:jo,useSyncExternalStore:jo,useId:jo,useHostTransitionStatus:jo,useFormState:jo,useActionState:jo,useOptimistic:jo,useMemoCache:jo,useCacheRefresh:jo},Vi={readContext:Ca,use:Uo,useCallback:function(e,t){return Io().memoizedState=[e,void 0===t?null:t],e},useContext:Ca,useEffect:yi,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,gi(4194308,4,Si.bind(null,t,e),n)},useLayoutEffect:function(e,t){return gi(4194308,4,e,t)},useInsertionEffect:function(e,t){gi(4,2,e,t)},useMemo:function(e,t){var n=Io();t=void 0===t?null:t;var r=e();if(Eo){fe(!0);try{e()}finally{fe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Io();if(void 0!==n){var a=n(t);if(Eo){fe(!0);try{n(t)}finally{fe(!1)}}}else a=t;return r.memoizedState=r.baseState=a,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},r.queue=e,e=e.dispatch=Fi.bind(null,wo,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Io().memoizedState=e},useState:function(e){var t=(e=ei(e)).queue,n=Ii.bind(null,wo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:_i,useDeferredValue:function(e,t){return Ai(Io(),e,t)},useTransition:function(){var e=ei(!1);return e=Ti.bind(null,wo,e.queue,!0,!1),Io().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=wo,a=Io();if(oa){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===rc)throw Error(i(349));124&oc||Ko(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,yi(Xo.bind(null,r,o,e),[e]),r.flags|=2048,hi(9,{destroy:void 0,resource:void 0},Yo.bind(null,r,o,n,t),null),n},useId:function(){var e=Io(),t=rc.identifierPrefix;if(oa){var n=Zr;t="\xab"+t+"R"+(n=(Xr&~(1<<32-pe(Xr)-1)).toString(32)+n),0<(n=Co++)&&(t+="H"+n.toString(32)),t+="\xbb"}else t="\xab"+t+"r"+(n=To++).toString(32)+"\xbb";return e.memoizedState=t},useHostTransitionStatus:Oi,useFormState:ci,useActionState:ci,useOptimistic:function(e){var t=Io();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=$i.bind(null,wo,!0,n),n.dispatch=t,[e,t]},useMemoCache:qo,useCacheRefresh:function(){return Io().memoizedState=Bi.bind(null,wo)}},Wi={readContext:Ca,use:Uo,useCallback:Ei,useContext:Ca,useEffect:vi,useImperativeHandle:xi,useInsertionEffect:wi,useLayoutEffect:ki,useMemo:Ci,useReducer:Go,useRef:mi,useState:function(){return Go(Ho)},useDebugValue:_i,useDeferredValue:function(e,t){return Li(zo(),ko.memoizedState,e,t)},useTransition:function(){var e=Go(Ho)[0],t=zo().memoizedState;return["boolean"==typeof e?e:$o(e),t]},useSyncExternalStore:Qo,useId:Ri,useHostTransitionStatus:Oi,useFormState:ui,useActionState:ui,useOptimistic:function(e,t){return ti(zo(),0,e,t)},useMemoCache:qo,useCacheRefresh:Di},Qi={readContext:Ca,use:Uo,useCallback:Ei,useContext:Ca,useEffect:vi,useImperativeHandle:xi,useInsertionEffect:wi,useLayoutEffect:ki,useMemo:Ci,useReducer:Wo,useRef:mi,useState:function(){return Wo(Ho)},useDebugValue:_i,useDeferredValue:function(e,t){var n=zo();return null===ko?Ai(n,e,t):Li(n,ko.memoizedState,e,t)},useTransition:function(){var e=Wo(Ho)[0],t=zo().memoizedState;return["boolean"==typeof e?e:$o(e),t]},useSyncExternalStore:Qo,useId:Ri,useHostTransitionStatus:Oi,useFormState:pi,useActionState:pi,useOptimistic:function(e,t){var n=zo();return null!==ko?ti(n,0,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:qo,useCacheRefresh:Di},Ki=null,Yi=0;function Xi(e){var t=Yi;return Yi+=1,null===Ki&&(Ki=[]),Xa(Ki,e,t)}function Zi(e,t){t=t.props.ref,e.ref=void 0!==t?t:null}function Ji(e,t){if(t.$$typeof===p)throw Error(i(525));throw e=Object.prototype.toString.call(t),Error(i(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function el(e){return(0,e._init)(e._payload)}function tl(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;null!==e;)null!==e.key?t.set(e.key,e):t.set(e.index,e),e=e.sibling;return t}function a(e,t){return(e=Fr(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|=67108866,n):r:(t.flags|=67108866,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=67108866),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ur(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var o=n.type;return o===g?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===C&&el(o)===t.type)?(Zi(t=a(t,n.props),n),t.return=e,t):(Zi(t=zr(n.type,n.key,n.props,null,e.mode,r),n),t.return=e,t)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=qr(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=$r(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t||"bigint"==typeof t)return(t=Ur(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case h:return Zi(n=zr(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case m:return(t=qr(t,e.mode,n)).return=e,t;case C:return f(e,t=(0,t._init)(t._payload),n)}if(N(t)||j(t))return(t=$r(t,e.mode,n,null)).return=e,t;if("function"==typeof t.then)return f(e,Xi(t),n);if(t.$$typeof===k)return f(e,Aa(e,t),n);Ji(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case h:return n.key===a?c(e,t,n,r):null;case m:return n.key===a?u(e,t,n,r):null;case C:return p(e,t,n=(a=n._init)(n._payload),r)}if(N(n)||j(n))return null!==a?null:d(e,t,n,r,null);if("function"==typeof n.then)return p(e,t,Xi(n),r);if(n.$$typeof===k)return p(e,t,Aa(e,n),r);Ji(e,n)}return null}function b(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r||"bigint"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case h:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case m:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case C:return b(e,t,n,r=(0,r._init)(r._payload),a)}if(N(r)||j(r))return d(t,e=e.get(n)||null,r,a,null);if("function"==typeof r.then)return b(e,t,n,Xi(r),a);if(r.$$typeof===k)return b(e,t,n,Aa(t,r),a);Ji(t,r)}return null}function y(s,c,u,d){if("object"==typeof u&&null!==u&&u.type===g&&null===u.key&&(u=u.props.children),"object"==typeof u&&null!==u){switch(u.$$typeof){case h:e:{for(var v=u.key;null!==c;){if(c.key===v){if((v=u.type)===g){if(7===c.tag){n(s,c.sibling),(d=a(c,u.props.children)).return=s,s=d;break e}}else if(c.elementType===v||"object"==typeof v&&null!==v&&v.$$typeof===C&&el(v)===c.type){n(s,c.sibling),Zi(d=a(c,u.props),u),d.return=s,s=d;break e}n(s,c);break}t(s,c),c=c.sibling}u.type===g?((d=$r(u.props.children,s.mode,d,u.key)).return=s,s=d):(Zi(d=zr(u.type,u.key,u.props,null,s.mode,d),u),d.return=s,s=d)}return l(s);case m:e:{for(v=u.key;null!==c;){if(c.key===v){if(4===c.tag&&c.stateNode.containerInfo===u.containerInfo&&c.stateNode.implementation===u.implementation){n(s,c.sibling),(d=a(c,u.children||[])).return=s,s=d;break e}n(s,c);break}t(s,c),c=c.sibling}(d=qr(u,s.mode,d)).return=s,s=d}return l(s);case C:return y(s,c,u=(v=u._init)(u._payload),d)}if(N(u))return function(a,i,l,s){for(var c=null,u=null,d=i,h=i=0,m=null;null!==d&&h<l.length;h++){d.index>h?(m=d,d=null):m=d.sibling;var g=p(a,d,l[h],s);if(null===g){null===d&&(d=m);break}e&&d&&null===g.alternate&&t(a,d),i=o(g,i,h),null===u?c=g:u.sibling=g,u=g,d=m}if(h===l.length)return n(a,d),oa&&Jr(a,h),c;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===u?c=d:u.sibling=d,u=d);return oa&&Jr(a,h),c}for(d=r(d);h<l.length;h++)null!==(m=b(d,a,h,l[h],s))&&(e&&null!==m.alternate&&d.delete(null===m.key?h:m.key),i=o(m,i,h),null===u?c=m:u.sibling=m,u=m);return e&&d.forEach(function(e){return t(a,e)}),oa&&Jr(a,h),c}(s,c,u,d);if(j(u)){if("function"!=typeof(v=j(u)))throw Error(i(150));return function(a,l,s,c){if(null==s)throw Error(i(151));for(var u=null,d=null,h=l,m=l=0,g=null,y=s.next();null!==h&&!y.done;m++,y=s.next()){h.index>m?(g=h,h=null):g=h.sibling;var v=p(a,h,y.value,c);if(null===v){null===h&&(h=g);break}e&&h&&null===v.alternate&&t(a,h),l=o(v,l,m),null===d?u=v:d.sibling=v,d=v,h=g}if(y.done)return n(a,h),oa&&Jr(a,m),u;if(null===h){for(;!y.done;m++,y=s.next())null!==(y=f(a,y.value,c))&&(l=o(y,l,m),null===d?u=y:d.sibling=y,d=y);return oa&&Jr(a,m),u}for(h=r(h);!y.done;m++,y=s.next())null!==(y=b(h,a,m,y.value,c))&&(e&&null!==y.alternate&&h.delete(null===y.key?m:y.key),l=o(y,l,m),null===d?u=y:d.sibling=y,d=y);return e&&h.forEach(function(e){return t(a,e)}),oa&&Jr(a,m),u}(s,c,u=v.call(u),d)}if("function"==typeof u.then)return y(s,c,Xi(u),d);if(u.$$typeof===k)return y(s,c,Aa(s,u),d);Ji(s,u)}return"string"==typeof u&&""!==u||"number"==typeof u||"bigint"==typeof u?(u=""+u,null!==c&&6===c.tag?(n(s,c.sibling),(d=a(c,u)).return=s,s=d):(n(s,c),(d=Ur(u,s.mode,d)).return=s,s=d),l(s)):n(s,c)}return function(e,t,n,r){try{Yi=0;var a=y(e,t,n,r);return Ki=null,a}catch(i){if(i===Ga||i===Wa)throw i;var o=Dr(29,i,null,e.mode);return o.lanes=r,o.return=e,o}}}var nl=tl(!0),rl=tl(!1),al=I(null),ol=null;function il(e){var t=e.alternate;$(ul,1&ul.current),$(al,e),null===ol&&(null===t||null!==ho.current||null!==t.memoizedState)&&(ol=e)}function ll(e){if(22===e.tag){if($(ul,ul.current),$(al,e),null===ol){var t=e.alternate;null!==t&&null!==t.memoizedState&&(ol=e)}}else sl()}function sl(){$(ul,ul.current),$(al,al.current)}function cl(e){z(al),ol===e&&(ol=null),z(ul)}var ul=I(0);function dl(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||gd(n)))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function fl(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:f({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var pl={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Oc(),a=ao(r);a.payload=t,null!=n&&(a.callback=n),null!==(t=oo(e,a,r))&&(Dc(t,e,r),io(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Oc(),a=ao(r);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=oo(e,a,r))&&(Dc(t,e,r),io(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Oc(),r=ao(n);r.tag=2,null!=t&&(r.callback=t),null!==(t=oo(e,r,n))&&(Dc(t,e,n),io(t,e,n))}};function hl(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!Yn(n,r)||!Yn(a,o))}function ml(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&&pl.enqueueReplaceState(t,t.state,null)}function gl(e,t){var n=t;if("ref"in t)for(var r in n={},t)"ref"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var a in n===t&&(n=f({},n)),e)void 0===n[a]&&(n[a]=e[a]);return n}var bl="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function yl(e){bl(e)}function vl(e){console.error(e)}function wl(e){bl(e)}function kl(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(n){setTimeout(function(){throw n})}}function Sl(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(r){setTimeout(function(){throw r})}}function xl(e,t,n){return(n=ao(n)).tag=3,n.payload={element:null},n.callback=function(){kl(e,t)},n}function _l(e){return(e=ao(e)).tag=3,e}function El(e,t,n,r){var a=n.type.getDerivedStateFromError;if("function"==typeof a){var o=r.value;e.payload=function(){return a(o)},e.callback=function(){Sl(t,n,r)}}var i=n.stateNode;null!==i&&"function"==typeof i.componentDidCatch&&(e.callback=function(){Sl(t,n,r),"function"!=typeof a&&(null===_c?_c=new Set([this]):_c.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var Cl=Error(i(461)),Al=!1;function Ll(e,t,n,r){t.child=null===e?rl(t,null,n,r):nl(t,e.child,n,r)}function Tl(e,t,n,r,a){n=n.render;var o=t.ref;if("ref"in r){var i={};for(var l in r)"ref"!==l&&(i[l]=r[l])}else i=r;return Ea(t),r=Mo(e,t,n,i,o,a),l=Do(),null===e||Al?(oa&&l&&ta(t),t.flags|=1,Ll(e,t,r,a),t.child):(Bo(e,t,a),Kl(e,t,a))}function jl(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Br(o)||void 0!==o.defaultProps||null!==n.compare?((e=zr(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Pl(e,t,o,r,a))}if(o=e.child,!Yl(e,a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:Yn)(i,r)&&e.ref===t.ref)return Kl(e,t,a)}return t.flags|=1,(e=Fr(o,r)).ref=t.ref,e.return=t,t.child=e}function Pl(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(Yn(o,r)&&e.ref===t.ref){if(Al=!1,t.pendingProps=r=o,!Yl(e,a))return t.lanes=e.lanes,Kl(e,t,a);131072&e.flags&&(Al=!0)}}return Rl(e,t,n,r,a)}function Ml(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode){if(128&t.flags){if(r=null!==o?o.baseLanes|n:n,null!==e){for(a=t.child=e.child,o=0;null!==a;)o=o|a.lanes|a.childLanes,a=a.sibling;t.childLanes=o&~r}else t.childLanes=0,t.child=null;return Nl(e,t,r,n)}if(!(536870912&n))return t.lanes=t.childLanes=536870912,Nl(e,t,null!==o?o.baseLanes|n:n,n);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&qa(0,null!==o?o.cachePool:null),null!==o?go(t,o):bo(),ll(t)}else null!==o?(qa(0,o.cachePool),go(t,o),sl(),t.memoizedState=null):(null!==e&&qa(0,null),bo(),sl());return Ll(e,t,a,n),t.child}function Nl(e,t,n,r){var a=Ua();return a=null===a?null:{parent:Ma._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},null!==e&&qa(0,null),bo(),ll(t),null!==e&&xa(e,t,r,!0),null}function Ol(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!=typeof n&&"object"!=typeof n)throw Error(i(284));null!==e&&e.ref===n||(t.flags|=4194816)}}function Rl(e,t,n,r,a){return Ea(t),n=Mo(e,t,n,r,void 0,a),r=Do(),null===e||Al?(oa&&r&&ta(t),t.flags|=1,Ll(e,t,n,a),t.child):(Bo(e,t,a),Kl(e,t,a))}function Dl(e,t,n,r,a,o){return Ea(t),t.updateQueue=null,n=Oo(t,r,n,a),No(e),r=Do(),null===e||Al?(oa&&r&&ta(t),t.flags|=1,Ll(e,t,n,o),t.child):(Bo(e,t,o),Kl(e,t,o))}function Bl(e,t,n,r,a){if(Ea(t),null===t.stateNode){var o=Or,i=n.contextType;"object"==typeof i&&null!==i&&(o=Ca(i)),o=new n(r,o),t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,o.updater=pl,t.stateNode=o,o._reactInternals=t,(o=t.stateNode).props=r,o.state=t.memoizedState,o.refs={},no(t),i=n.contextType,o.context="object"==typeof i&&null!==i?Ca(i):Or,o.state=t.memoizedState,"function"==typeof(i=n.getDerivedStateFromProps)&&(fl(t,n,i,r),o.state=t.memoizedState),"function"==typeof n.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(i=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),i!==o.state&&pl.enqueueReplaceState(o,o.state,null),uo(t,r,o,a),co(),o.state=t.memoizedState),"function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){o=t.stateNode;var l=t.memoizedProps,s=gl(n,l);o.props=s;var c=o.context,u=n.contextType;i=Or,"object"==typeof u&&null!==u&&(i=Ca(u));var d=n.getDerivedStateFromProps;u="function"==typeof d||"function"==typeof o.getSnapshotBeforeUpdate,l=t.pendingProps!==l,u||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(l||c!==i)&&ml(t,o,r,i),to=!1;var f=t.memoizedState;o.state=f,uo(t,r,o,a),co(),c=t.memoizedState,l||f!==c||to?("function"==typeof d&&(fl(t,n,d,r),c=t.memoizedState),(s=to||hl(t,n,s,r,f,c,i))?(u||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.flags|=4194308)):("function"==typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),o.props=r,o.state=c,o.context=i,r=s):("function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,ro(e,t),u=gl(n,i=t.memoizedProps),o.props=u,d=t.pendingProps,f=o.context,c=n.contextType,s=Or,"object"==typeof c&&null!==c&&(s=Ca(c)),(c="function"==typeof(l=n.getDerivedStateFromProps)||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(i!==d||f!==s)&&ml(t,o,r,s),to=!1,f=t.memoizedState,o.state=f,uo(t,r,o,a),co();var p=t.memoizedState;i!==d||f!==p||to||null!==e&&null!==e.dependencies&&_a(e.dependencies)?("function"==typeof l&&(fl(t,n,l,r),p=t.memoizedState),(u=to||hl(t,n,u,r,f,p,s)||null!==e&&null!==e.dependencies&&_a(e.dependencies))?(c||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,p,s),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,p,s)),"function"==typeof o.componentDidUpdate&&(t.flags|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),o.props=r,o.state=p,o.context=s,r=u):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return o=r,Ol(e,t),r=!!(128&t.flags),o||r?(o=t.stateNode,n=r&&"function"!=typeof n.getDerivedStateFromError?null:o.render(),t.flags|=1,null!==e&&r?(t.child=nl(t,e.child,null,a),t.child=nl(t,null,n,a)):Ll(e,t,n,a),t.memoizedState=o.state,e=t.child):e=Kl(e,t,a),e}function Fl(e,t,n,r){return pa(),t.flags|=256,Ll(e,t,n,r),t.child}var Il={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function zl(e){return{baseLanes:e,cachePool:Ha()}}function $l(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=gc),e}function Ul(e,t,n){var r,a=t.pendingProps,o=!1,l=!!(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&!!(2&ul.current)),r&&(o=!0,t.flags&=-129),r=!!(32&t.flags),t.flags&=-33,null===e){if(oa){if(o?il(t):sl(),oa){var s,c=aa;if(s=c){e:{for(s=c,c=la;8!==s.nodeType;){if(!c){c=null;break e}if(null===(s=bd(s.nextSibling))){c=null;break e}}c=s}null!==c?(t.memoizedState={dehydrated:c,treeContext:null!==Yr?{id:Xr,overflow:Zr}:null,retryLane:536870912,hydrationErrors:null},(s=Dr(18,null,null,0)).stateNode=c,s.return=t,t.child=s,ra=t,aa=null,s=!0):s=!1}s||ca(t)}if(null!==(c=t.memoizedState)&&null!==(c=c.dehydrated))return gd(c)?t.lanes=32:t.lanes=536870912,null;cl(t)}return c=a.children,a=a.fallback,o?(sl(),c=Hl({mode:"hidden",children:c},o=t.mode),a=$r(a,o,n,null),c.return=t,a.return=t,c.sibling=a,t.child=c,(o=t.child).memoizedState=zl(n),o.childLanes=$l(e,r,n),t.memoizedState=Il,a):(il(t),ql(t,c))}if(null!==(s=e.memoizedState)&&null!==(c=s.dehydrated)){if(l)256&t.flags?(il(t),t.flags&=-257,t=Gl(e,t,n)):null!==t.memoizedState?(sl(),t.child=e.child,t.flags|=128,t=null):(sl(),o=a.fallback,c=t.mode,a=Hl({mode:"visible",children:a.children},c),(o=$r(o,c,n,null)).flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,nl(t,e.child,null,n),(a=t.child).memoizedState=zl(n),a.childLanes=$l(e,r,n),t.memoizedState=Il,t=o);else if(il(t),gd(c)){if(r=c.nextSibling&&c.nextSibling.dataset)var u=r.dgst;r=u,(a=Error(i(419))).stack="",a.digest=r,ma({value:a,source:null,stack:null}),t=Gl(e,t,n)}else if(Al||xa(e,t,n,!1),r=0!==(n&e.childLanes),Al||r){if(null!==(r=rc)&&(0!==(a=0!==((a=42&(a=n&-n)?1:Le(a))&(r.suspendedLanes|n))?0:a)&&a!==s.retryLane))throw s.retryLane=a,Pr(e,a),Dc(r,e,a),Cl;"$?"===c.data||Wc(),t=Gl(e,t,n)}else"$?"===c.data?(t.flags|=192,t.child=e.child,t=null):(e=s.treeContext,aa=bd(c.nextSibling),ra=t,oa=!0,ia=null,la=!1,null!==e&&(Qr[Kr++]=Xr,Qr[Kr++]=Zr,Qr[Kr++]=Yr,Xr=e.id,Zr=e.overflow,Yr=t),(t=ql(t,a.children)).flags|=4096);return t}return o?(sl(),o=a.fallback,c=t.mode,u=(s=e.child).sibling,(a=Fr(s,{mode:"hidden",children:a.children})).subtreeFlags=65011712&s.subtreeFlags,null!==u?o=Fr(u,o):(o=$r(o,c,n,null)).flags|=2,o.return=t,a.return=t,a.sibling=o,t.child=a,a=o,o=t.child,null===(c=e.child.memoizedState)?c=zl(n):(null!==(s=c.cachePool)?(u=Ma._currentValue,s=s.parent!==u?{parent:u,pool:u}:s):s=Ha(),c={baseLanes:c.baseLanes|n,cachePool:s}),o.memoizedState=c,o.childLanes=$l(e,r,n),t.memoizedState=Il,a):(il(t),e=(n=e.child).sibling,(n=Fr(n,{mode:"visible",children:a.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function ql(e,t){return(t=Hl({mode:"visible",children:t},e.mode)).return=e,e.child=t}function Hl(e,t){return(e=Dr(22,e,null,t)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function Gl(e,t,n){return nl(t,e.child,null,n),(e=ql(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Vl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),ka(e.return,t,n)}function Wl(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ql(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Ll(e,t,r.children,n),2&(r=ul.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Vl(e,n,t);else if(19===e.tag)Vl(e,n,t);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}switch($(ul,r),a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===dl(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Wl(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===dl(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Wl(t,!0,n,null,o);break;case"together":Wl(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Kl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),pc|=t.lanes,0===(n&t.childLanes)){if(null===e)return null;if(xa(e,t,n,!1),0===(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Fr(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Fr(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Yl(e,t){return 0!==(e.lanes&t)||!(null===(e=e.dependencies)||!_a(e))}function Xl(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)Al=!0;else{if(!(Yl(e,n)||128&t.flags))return Al=!1,function(e,t,n){switch(t.tag){case 3:V(t,t.stateNode.containerInfo),va(0,Ma,e.memoizedState.cache),pa();break;case 27:case 5:Q(t);break;case 4:V(t,t.stateNode.containerInfo);break;case 10:va(0,t.type,t.memoizedProps.value);break;case 13:var r=t.memoizedState;if(null!==r)return null!==r.dehydrated?(il(t),t.flags|=128,null):0!==(n&t.child.childLanes)?Ul(e,t,n):(il(t),null!==(e=Kl(e,t,n))?e.sibling:null);il(t);break;case 19:var a=!!(128&e.flags);if((r=0!==(n&t.childLanes))||(xa(e,t,n,!1),r=0!==(n&t.childLanes)),a){if(r)return Ql(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),$(ul,ul.current),r)break;return null;case 22:case 23:return t.lanes=0,Ml(e,t,n);case 24:va(0,Ma,e.memoizedState.cache)}return Kl(e,t,n)}(e,t,n);Al=!!(131072&e.flags)}else Al=!1,oa&&1048576&t.flags&&ea(t,Wr,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var r=t.elementType,a=r._init;if(r=a(r._payload),t.type=r,"function"!=typeof r){if(null!=r){if((a=r.$$typeof)===S){t.tag=11,t=Tl(null,t,r,e,n);break e}if(a===E){t.tag=14,t=jl(null,t,r,e,n);break e}}throw t=M(r)||r,Error(i(306,t,""))}Br(r)?(e=gl(r,e),t.tag=1,t=Bl(null,t,r,e,n)):(t.tag=0,t=Rl(null,t,r,e,n))}return t;case 0:return Rl(e,t,t.type,t.pendingProps,n);case 1:return Bl(e,t,r=t.type,a=gl(r,t.pendingProps),n);case 3:e:{if(V(t,t.stateNode.containerInfo),null===e)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,ro(e,t),uo(t,r,null,n);var l=t.memoizedState;if(r=l.cache,va(0,Ma,r),r!==o.cache&&Sa(t,[Ma],n,!0),co(),r=l.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:l.cache},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=Fl(e,t,r,n);break e}if(r!==a){ma(a=_r(Error(i(424)),t)),t=Fl(e,t,r,n);break e}if(9===(e=t.stateNode.containerInfo).nodeType)e=e.body;else e="HTML"===e.nodeName?e.ownerDocument.body:e;for(aa=bd(e.firstChild),ra=t,oa=!0,ia=null,la=!0,n=rl(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(pa(),r===a){t=Kl(e,t,n);break e}Ll(e,t,r,n)}t=t.child}return t;case 26:return Ol(e,t),null===e?(n=Ld(t.type,null,t.pendingProps,null))?t.memoizedState=n:oa||(n=t.type,e=t.pendingProps,(r=rd(H.current).createElement(n))[Me]=t,r[Ne]=e,ed(r,n,e),Ge(r),t.stateNode=r):t.memoizedState=Ld(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Q(t),null===e&&oa&&(r=t.stateNode=wd(t.type,t.pendingProps,H.current),ra=t,la=!0,a=aa,pd(t.type)?(yd=a,aa=bd(r.firstChild)):aa=a),Ll(e,t,t.pendingProps.children,n),Ol(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&oa&&((a=r=aa)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){var a=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[Ie])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(o=e.getAttribute("rel"))&&e.hasAttribute("data-precedence"))break;if(o!==a.rel||e.getAttribute("href")!==(null==a.href||""===a.href?null:a.href)||e.getAttribute("crossorigin")!==(null==a.crossOrigin?null:a.crossOrigin)||e.getAttribute("title")!==(null==a.title?null:a.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((o=e.getAttribute("src"))!==(null==a.src?null:a.src)||e.getAttribute("type")!==(null==a.type?null:a.type)||e.getAttribute("crossorigin")!==(null==a.crossOrigin?null:a.crossOrigin))&&o&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var o=null==a.name?null:""+a.name;if("hidden"===a.type&&e.getAttribute("name")===o)return e}if(null===(e=bd(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,la))?(t.stateNode=r,ra=t,aa=bd(r.firstChild),la=!1,a=!0):a=!1),a||ca(t)),Q(t),a=t.type,o=t.pendingProps,l=null!==e?e.memoizedProps:null,r=o.children,id(a,o)?r=null:null!==l&&id(a,l)&&(t.flags|=32),null!==t.memoizedState&&(a=Mo(e,t,Ro,null,null,n),Qd._currentValue=a),Ol(e,t),Ll(e,t,r,n),t.child;case 6:return null===e&&oa&&((e=n=aa)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;){if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n)return null;if(null===(e=bd(e.nextSibling)))return null}return e}(n,t.pendingProps,la))?(t.stateNode=n,ra=t,aa=null,e=!0):e=!1),e||ca(t)),null;case 13:return Ul(e,t,n);case 4:return V(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=nl(t,null,r,n):Ll(e,t,r,n),t.child;case 11:return Tl(e,t,t.type,t.pendingProps,n);case 7:return Ll(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ll(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,va(0,t.type,r.value),Ll(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,Ea(t),r=r(a=Ca(a)),t.flags|=1,Ll(e,t,r,n),t.child;case 14:return jl(e,t,t.type,t.pendingProps,n);case 15:return Pl(e,t,t.type,t.pendingProps,n);case 19:return Ql(e,t,n);case 31:return r=t.pendingProps,n=t.mode,r={mode:r.mode,children:r.children},null===e?((n=Hl(r,n)).ref=t.ref,t.child=n,n.return=t,t=n):((n=Fr(e.child,r)).ref=t.ref,t.child=n,n.return=t,t=n),t;case 22:return Ml(e,t,n);case 24:return Ea(t),r=Ca(Ma),null===e?(null===(a=Ua())&&(a=rc,o=Na(),a.pooledCache=o,o.refCount++,null!==o&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},no(t),va(0,Ma,a)):(0!==(e.lanes&n)&&(ro(e,t),uo(t,null,null,n),co()),a=e.memoizedState,o=t.memoizedState,a.parent!==r?(a={parent:r,cache:r},t.memoizedState=a,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=a),va(0,Ma,r)):(r=o.cache,va(0,Ma,r),r!==a.cache&&Sa(t,[Ma],n,!0))),Ll(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Zl(e){e.flags|=4}function Jl(e,t){if("stylesheet"!==t.type||4&t.state.loading)e.flags&=-16777217;else if(e.flags|=16777216,!$d(t)){if(null!==(t=al.current)&&((4194048&oc)===oc?null!==ol:(62914560&oc)!==oc&&!(536870912&oc)||t!==ol))throw Za=Qa,Va;e.flags|=8192}}function es(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?xe():536870912,e.lanes|=t,bc|=t)}function ts(e,t){if(!oa)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 ns(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=65011712&a.subtreeFlags,r|=65011712&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function rs(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return ns(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),wa(Ma),W(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||(fa(t)?Zl(t):null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,ha())),ns(t),null;case 26:return n=t.memoizedState,null===e?(Zl(t),null!==n?(ns(t),Jl(t,n)):(ns(t),t.flags&=-16777217)):n?n!==e.memoizedState?(Zl(t),ns(t),Jl(t,n)):(ns(t),t.flags&=-16777217):(e.memoizedProps!==r&&Zl(t),ns(t),t.flags&=-16777217),null;case 27:K(t),n=H.current;var a=t.type;if(null!==e&&null!=t.stateNode)e.memoizedProps!==r&&Zl(t);else{if(!r){if(null===t.stateNode)throw Error(i(166));return ns(t),null}e=U.current,fa(t)?ua(t):(e=wd(a,r,n),t.stateNode=e,Zl(t))}return ns(t),null;case 5:if(K(t),n=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&Zl(t);else{if(!r){if(null===t.stateNode)throw Error(i(166));return ns(t),null}if(e=U.current,fa(t))ua(t);else{switch(a=rd(H.current),e){case 1:e=a.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:e=a.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":e=a.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":e=a.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":(e=a.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild);break;case"select":e="string"==typeof r.is?a.createElement("select",{is:r.is}):a.createElement("select"),r.multiple?e.multiple=!0:r.size&&(e.size=r.size);break;default:e="string"==typeof r.is?a.createElement(n,{is:r.is}):a.createElement(n)}}e[Me]=t,e[Ne]=r;e:for(a=t.child;null!==a;){if(5===a.tag||6===a.tag)e.appendChild(a.stateNode);else if(4!==a.tag&&27!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break e;for(;null===a.sibling;){if(null===a.return||a.return===t)break e;a=a.return}a.sibling.return=a.return,a=a.sibling}t.stateNode=e;e:switch(ed(e,n,r),n){case"button":case"input":case"select":case"textarea":e=!!r.autoFocus;break e;case"img":e=!0;break e;default:e=!1}e&&Zl(t)}}return ns(t),t.flags&=-16777217,null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&Zl(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));if(e=H.current,fa(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=ra))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Me]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||Yu(e.nodeValue,n)))||ca(t)}else(e=rd(e).createTextNode(r))[Me]=t,t.stateNode=e}return ns(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=fa(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(i(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(i(317));a[Me]=t}else pa(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;ns(t),a=!1}else a=ha(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return 256&t.flags?(cl(t),t):(cl(t),null)}if(cl(t),128&t.flags)return t.lanes=n,t;if(n=null!==r,e=null!==e&&null!==e.memoizedState,n){a=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool);var o=null;null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)}return n!==e&&n&&(t.child.flags|=8192),es(t,t.updateQueue),ns(t),null;case 4:return W(),null===e&&zu(t.stateNode.containerInfo),ns(t),null;case 10:return wa(t.type),ns(t),null;case 19:if(z(ul),null===(a=t.memoizedState))return ns(t),null;if(r=!!(128&t.flags),null===(o=a.rendering))if(r)ts(a,!1);else{if(0!==fc||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(o=dl(e))){for(t.flags|=128,ts(a,!1),e=o.updateQueue,t.updateQueue=e,es(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Ir(n,e),n=n.sibling;return $(ul,1&ul.current|2),t.child}e=e.sibling}null!==a.tail&&te()>Sc&&(t.flags|=128,r=!0,ts(a,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=dl(o))){if(t.flags|=128,r=!0,e=e.updateQueue,t.updateQueue=e,es(t,e),ts(a,!0),null===a.tail&&"hidden"===a.tailMode&&!o.alternate&&!oa)return ns(t),null}else 2*te()-a.renderingStartTime>Sc&&536870912!==n&&(t.flags|=128,r=!0,ts(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=a.last)?e.sibling=o:t.child=o,a.last=o)}return null!==a.tail?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=te(),t.sibling=null,e=ul.current,$(ul,r?1&e|2:1&e),t):(ns(t),null);case 22:case 23:return cl(t),yo(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?!!(536870912&n)&&!(128&t.flags)&&(ns(t),6&t.subtreeFlags&&(t.flags|=8192)):ns(t),null!==(n=t.updateQueue)&&es(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&z($a),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),wa(Ma),ns(t),null;case 25:case 30:return null}throw Error(i(156,t.tag))}function as(e,t){switch(na(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return wa(Ma),W(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return K(t),null;case 13:if(cl(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));pa()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return z(ul),null;case 4:return W(),null;case 10:return wa(t.type),null;case 22:case 23:return cl(t),yo(),null!==e&&z($a),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return wa(Ma),null;default:return null}}function os(e,t){switch(na(t),t.tag){case 3:wa(Ma),W();break;case 26:case 27:case 5:K(t);break;case 4:W();break;case 13:cl(t);break;case 19:z(ul);break;case 10:wa(t.type);break;case 22:case 23:cl(t),yo(),null!==e&&z($a);break;case 24:wa(Ma)}}function is(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var a=r.next;n=a;do{if((n.tag&e)===e){r=void 0;var o=n.create,i=n.inst;r=o(),i.destroy=r}n=n.next}while(n!==a)}}catch(l){uu(t,t.return,l)}}function ls(e,t,n){try{var r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var o=a.next;r=o;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,a=t;var s=n,c=l;try{c()}catch(u){uu(a,s,u)}}}r=r.next}while(r!==o)}}catch(u){uu(t,t.return,u)}}function ss(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{po(t,n)}catch(r){uu(e,e.return,r)}}}function cs(e,t,n){n.props=gl(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(r){uu(e,t,r)}}function us(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof n?e.refCleanup=n(r):n.current=r}}catch(a){uu(e,t,a)}}function ds(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"==typeof r)try{r()}catch(a){uu(e,t,a)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(o){uu(e,t,o)}else n.current=null}function fs(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break e;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(a){uu(e,e.return,a)}}function ps(e,t,n){try{var r=e.stateNode;!function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,o=null,l=null,s=null,c=null,u=null,d=null;for(h in n){var f=n[h];if(n.hasOwnProperty(h)&&null!=f)switch(h){case"checked":case"value":break;case"defaultValue":c=f;default:r.hasOwnProperty(h)||Zu(e,t,h,null,r,f)}}for(var p in r){var h=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=h||null!=f))switch(p){case"type":o=h;break;case"name":a=h;break;case"checked":u=h;break;case"defaultChecked":d=h;break;case"value":l=h;break;case"defaultValue":s=h;break;case"children":case"dangerouslySetInnerHTML":if(null!=h)throw Error(i(137,t));break;default:h!==f&&Zu(e,t,p,h,r,f)}}return void gt(e,l,s,c,u,d,o,a);case"select":for(o in h=l=s=p=null,n)if(c=n[o],n.hasOwnProperty(o)&&null!=c)switch(o){case"value":break;case"multiple":h=c;default:r.hasOwnProperty(o)||Zu(e,t,o,null,r,c)}for(a in r)if(o=r[a],c=n[a],r.hasOwnProperty(a)&&(null!=o||null!=c))switch(a){case"value":p=o;break;case"defaultValue":s=o;break;case"multiple":l=o;default:o!==c&&Zu(e,t,a,o,r,c)}return t=s,n=l,r=h,void(null!=p?vt(e,!!n,p,!1):!!r!=!!n&&(null!=t?vt(e,!!n,t,!0):vt(e,!!n,n?[]:"",!1)));case"textarea":for(s in h=p=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:Zu(e,t,s,null,r,a)}for(l in r)if(a=r[l],o=n[l],r.hasOwnProperty(l)&&(null!=a||null!=o))switch(l){case"value":p=a;break;case"defaultValue":h=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(i(91));break;default:a!==o&&Zu(e,t,l,a,r,o)}return void wt(e,p,h);case"option":for(var m in n)if(p=n[m],n.hasOwnProperty(m)&&null!=p&&!r.hasOwnProperty(m))if("selected"===m)e.selected=!1;else Zu(e,t,m,null,r,p);for(c in r)if(p=r[c],h=n[c],r.hasOwnProperty(c)&&p!==h&&(null!=p||null!=h))if("selected"===c)e.selected=p&&"function"!=typeof p&&"symbol"!=typeof p;else Zu(e,t,c,p,r,h);return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&Zu(e,t,g,null,r,p);for(u in r)if(p=r[u],h=n[u],r.hasOwnProperty(u)&&p!==h&&(null!=p||null!=h))switch(u){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(i(137,t));break;default:Zu(e,t,u,p,r,h)}return;default:if(Ct(t)){for(var b in n)p=n[b],n.hasOwnProperty(b)&&void 0!==p&&!r.hasOwnProperty(b)&&Ju(e,t,b,void 0,r,p);for(d in r)p=r[d],h=n[d],!r.hasOwnProperty(d)||p===h||void 0===p&&void 0===h||Ju(e,t,d,p,r,h);return}}for(var y in n)p=n[y],n.hasOwnProperty(y)&&null!=p&&!r.hasOwnProperty(y)&&Zu(e,t,y,null,r,p);for(f in r)p=r[f],h=n[f],!r.hasOwnProperty(f)||p===h||null==p&&null==h||Zu(e,t,f,p,r,h)}(r,e.type,n,t),r[Ne]=t}catch(a){uu(e,e.return,a)}}function hs(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&pd(e.type)||4===e.tag}function ms(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||hs(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&pd(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function gs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Xu));else if(4!==r&&(27===r&&pd(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(gs(e,t,n),e=e.sibling;null!==e;)gs(e,t,n),e=e.sibling}function bs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&pd(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(bs(e,t,n),e=e.sibling;null!==e;)bs(e,t,n),e=e.sibling}function ys(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);ed(t,r,n),t[Me]=e,t[Ne]=n}catch(o){uu(e,e.return,o)}}var vs=!1,ws=!1,ks=!1,Ss="function"==typeof WeakSet?WeakSet:Set,xs=null;function _s(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Bs(e,n),4&r&&is(5,n);break;case 1:if(Bs(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(i){uu(n,n.return,i)}else{var a=gl(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(a,t,e.__reactInternalSnapshotBeforeUpdate)}catch(l){uu(n,n.return,l)}}64&r&&ss(n),512&r&&us(n,n.return);break;case 3:if(Bs(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{po(e,t)}catch(i){uu(n,n.return,i)}}break;case 27:null===t&&4&r&&ys(n);case 26:case 5:Bs(e,n),null===t&&4&r&&fs(n),512&r&&us(n,n.return);break;case 12:Bs(e,n);break;case 13:Bs(e,n),4&r&&js(e,n),64&r&&(null!==(e=n.memoizedState)&&(null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$?"!==e.data||"complete"===n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=hu.bind(null,n))));break;case 22:if(!(r=null!==n.memoizedState||vs)){t=null!==t&&null!==t.memoizedState||ws,a=vs;var o=ws;vs=r,(ws=t)&&!o?Is(e,n,!!(8772&n.subtreeFlags)):Bs(e,n),vs=a,ws=o}break;case 30:break;default:Bs(e,n)}}function Es(e){var t=e.alternate;null!==t&&(e.alternate=null,Es(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&ze(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Cs=null,As=!1;function Ls(e,t,n){for(n=n.child;null!==n;)Ts(e,t,n),n=n.sibling}function Ts(e,t,n){if(de&&"function"==typeof de.onCommitFiberUnmount)try{de.onCommitFiberUnmount(ue,n)}catch(o){}switch(n.tag){case 26:ws||ds(n,t),Ls(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:ws||ds(n,t);var r=Cs,a=As;pd(n.type)&&(Cs=n.stateNode,As=!1),Ls(e,t,n),kd(n.stateNode),Cs=r,As=a;break;case 5:ws||ds(n,t);case 6:if(r=Cs,a=As,Cs=null,Ls(e,t,n),As=a,null!==(Cs=r))if(As)try{(9===Cs.nodeType?Cs.body:"HTML"===Cs.nodeName?Cs.ownerDocument.body:Cs).removeChild(n.stateNode)}catch(i){uu(n,t,i)}else try{Cs.removeChild(n.stateNode)}catch(i){uu(n,t,i)}break;case 18:null!==Cs&&(As?(hd(9===(e=Cs).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),Lf(e)):hd(Cs,n.stateNode));break;case 4:r=Cs,a=As,Cs=n.stateNode.containerInfo,As=!0,Ls(e,t,n),Cs=r,As=a;break;case 0:case 11:case 14:case 15:ws||ls(2,n,t),ws||ls(4,n,t),Ls(e,t,n);break;case 1:ws||(ds(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount&&cs(n,t,r)),Ls(e,t,n);break;case 21:Ls(e,t,n);break;case 22:ws=(r=ws)||null!==n.memoizedState,Ls(e,t,n),ws=r;break;default:Ls(e,t,n)}}function js(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&(null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))))try{Lf(e)}catch(n){uu(t,t.return,n)}}function Ps(e,t){var n=function(e){switch(e.tag){case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new Ss),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Ss),t;default:throw Error(i(435,e.tag))}}(e);t.forEach(function(t){var r=mu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))})}function Ms(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r],o=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 27:if(pd(s.type)){Cs=s.stateNode,As=!1;break e}break;case 5:Cs=s.stateNode,As=!1;break e;case 3:case 4:Cs=s.stateNode.containerInfo,As=!0;break e}s=s.return}if(null===Cs)throw Error(i(160));Ts(o,l,a),Cs=null,As=!1,null!==(o=a.alternate)&&(o.return=null),a.return=null}if(13878&t.subtreeFlags)for(t=t.child;null!==t;)Os(t,e),t=t.sibling}var Ns=null;function Os(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Ms(t,e),Rs(e),4&r&&(ls(3,e,e.return),is(3,e),ls(5,e,e.return));break;case 1:Ms(t,e),Rs(e),512&r&&(ws||null===n||ds(n,n.return)),64&r&&vs&&(null!==(e=e.updateQueue)&&(null!==(r=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?r:n.concat(r))));break;case 26:var a=Ns;if(Ms(t,e),Rs(e),512&r&&(ws||null===n||ds(n,n.return)),4&r){var o=null!==n?n.memoizedState:null;if(r=e.memoizedState,null===n)if(null===r)if(null===e.stateNode){e:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;t:switch(r){case"title":(!(o=a.getElementsByTagName("title")[0])||o[Ie]||o[Me]||"http://www.w3.org/2000/svg"===o.namespaceURI||o.hasAttribute("itemprop"))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector("head > title"))),ed(o,r,n),o[Me]=e,Ge(o),r=o;break e;case"link":var l=Id("link","href",a).get(r+(n.href||""));if(l)for(var s=0;s<l.length;s++)if((o=l[s]).getAttribute("href")===(null==n.href||""===n.href?null:n.href)&&o.getAttribute("rel")===(null==n.rel?null:n.rel)&&o.getAttribute("title")===(null==n.title?null:n.title)&&o.getAttribute("crossorigin")===(null==n.crossOrigin?null:n.crossOrigin)){l.splice(s,1);break t}ed(o=a.createElement(r),r,n),a.head.appendChild(o);break;case"meta":if(l=Id("meta","content",a).get(r+(n.content||"")))for(s=0;s<l.length;s++)if((o=l[s]).getAttribute("content")===(null==n.content?null:""+n.content)&&o.getAttribute("name")===(null==n.name?null:n.name)&&o.getAttribute("property")===(null==n.property?null:n.property)&&o.getAttribute("http-equiv")===(null==n.httpEquiv?null:n.httpEquiv)&&o.getAttribute("charset")===(null==n.charSet?null:n.charSet)){l.splice(s,1);break t}ed(o=a.createElement(r),r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[Me]=e,Ge(o),r=o}e.stateNode=r}else zd(a,e.type,e.stateNode);else e.stateNode=Od(a,r,e.memoizedProps);else o!==r?(null===o?null!==n.stateNode&&(n=n.stateNode).parentNode.removeChild(n):o.count--,null===r?zd(a,e.type,e.stateNode):Od(a,r,e.memoizedProps)):null===r&&null!==e.stateNode&&ps(e,e.memoizedProps,n.memoizedProps)}break;case 27:Ms(t,e),Rs(e),512&r&&(ws||null===n||ds(n,n.return)),null!==n&&4&r&&ps(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Ms(t,e),Rs(e),512&r&&(ws||null===n||ds(n,n.return)),32&e.flags){a=e.stateNode;try{St(a,"")}catch(h){uu(e,e.return,h)}}4&r&&null!=e.stateNode&&ps(e,a=e.memoizedProps,null!==n?n.memoizedProps:a),1024&r&&(ks=!0);break;case 6:if(Ms(t,e),Rs(e),4&r){if(null===e.stateNode)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(h){uu(e,e.return,h)}}break;case 3:if(Fd=null,a=Ns,Ns=_d(t.containerInfo),Ms(t,e),Ns=a,Rs(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Lf(t.containerInfo)}catch(h){uu(e,e.return,h)}ks&&(ks=!1,Ds(e));break;case 4:r=Ns,Ns=_d(e.stateNode.containerInfo),Ms(t,e),Rs(e),Ns=r;break;case 12:default:Ms(t,e),Rs(e);break;case 13:Ms(t,e),Rs(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==n&&null!==n.memoizedState)&&(kc=te()),4&r&&(null!==(r=e.updateQueue)&&(e.updateQueue=null,Ps(e,r)));break;case 22:a=null!==e.memoizedState;var c=null!==n&&null!==n.memoizedState,u=vs,d=ws;if(vs=u||a,ws=d||c,Ms(t,e),ws=d,vs=u,Rs(e),8192&r)e:for(t=e.stateNode,t._visibility=a?-2&t._visibility:1|t._visibility,a&&(null===n||c||vs||ws||Fs(e)),n=null,t=e;;){if(5===t.tag||26===t.tag){if(null===n){c=n=t;try{if(o=c.stateNode,a)"function"==typeof(l=o.style).setProperty?l.setProperty("display","none","important"):l.display="none";else{s=c.stateNode;var f=c.memoizedProps.style,p=null!=f&&f.hasOwnProperty("display")?f.display:null;s.style.display=null==p||"boolean"==typeof p?"":(""+p).trim()}}catch(h){uu(c,c.return,h)}}}else if(6===t.tag){if(null===n){c=t;try{c.stateNode.nodeValue=a?"":c.memoizedProps}catch(h){uu(c,c.return,h)}}}else if((22!==t.tag&&23!==t.tag||null===t.memoizedState||t===e)&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;null===t.sibling;){if(null===t.return||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}4&r&&(null!==(r=e.updateQueue)&&(null!==(n=r.retryQueue)&&(r.retryQueue=null,Ps(e,n))));break;case 19:Ms(t,e),Rs(e),4&r&&(null!==(r=e.updateQueue)&&(e.updateQueue=null,Ps(e,r)));case 30:case 21:}}function Rs(e){var t=e.flags;if(2&t){try{for(var n,r=e.return;null!==r;){if(hs(r)){n=r;break}r=r.return}if(null==n)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;bs(e,ms(e),a);break;case 5:var o=n.stateNode;32&n.flags&&(St(o,""),n.flags&=-33),bs(e,ms(e),o);break;case 3:case 4:var l=n.stateNode.containerInfo;gs(e,ms(e),l);break;default:throw Error(i(161))}}catch(s){uu(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function Ds(e){if(1024&e.subtreeFlags)for(e=e.child;null!==e;){var t=e;Ds(t),5===t.tag&&1024&t.flags&&t.stateNode.reset(),e=e.sibling}}function Bs(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)_s(e,t.alternate,t),t=t.sibling}function Fs(e){for(e=e.child;null!==e;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:ls(4,t,t.return),Fs(t);break;case 1:ds(t,t.return);var n=t.stateNode;"function"==typeof n.componentWillUnmount&&cs(t,t.return,n),Fs(t);break;case 27:kd(t.stateNode);case 26:case 5:ds(t,t.return),Fs(t);break;case 22:null===t.memoizedState&&Fs(t);break;default:Fs(t)}e=e.sibling}}function Is(e,t,n){for(n=n&&!!(8772&t.subtreeFlags),t=t.child;null!==t;){var r=t.alternate,a=e,o=t,i=o.flags;switch(o.tag){case 0:case 11:case 15:Is(a,o,n),is(4,o);break;case 1:if(Is(a,o,n),"function"==typeof(a=(r=o).stateNode).componentDidMount)try{a.componentDidMount()}catch(c){uu(r,r.return,c)}if(null!==(a=(r=o).updateQueue)){var l=r.stateNode;try{var s=a.shared.hiddenCallbacks;if(null!==s)for(a.shared.hiddenCallbacks=null,a=0;a<s.length;a++)fo(s[a],l)}catch(c){uu(r,r.return,c)}}n&&64&i&&ss(o),us(o,o.return);break;case 27:ys(o);case 26:case 5:Is(a,o,n),n&&null===r&&4&i&&fs(o),us(o,o.return);break;case 12:Is(a,o,n);break;case 13:Is(a,o,n),n&&4&i&&js(a,o);break;case 22:null===o.memoizedState&&Is(a,o,n),us(o,o.return);break;case 30:break;default:Is(a,o,n)}t=t.sibling}}function zs(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&Oa(n))}function $s(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&Oa(e))}function Us(e,t,n,r){if(10256&t.subtreeFlags)for(t=t.child;null!==t;)qs(e,t,n,r),t=t.sibling}function qs(e,t,n,r){var a=t.flags;switch(t.tag){case 0:case 11:case 15:Us(e,t,n,r),2048&a&&is(9,t);break;case 1:case 13:default:Us(e,t,n,r);break;case 3:Us(e,t,n,r),2048&a&&(e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&Oa(e)));break;case 12:if(2048&a){Us(e,t,n,r),e=t.stateNode;try{var o=t.memoizedProps,i=o.id,l=o.onPostCommit;"function"==typeof l&&l(i,null===t.alternate?"mount":"update",e.passiveEffectDuration,-0)}catch(s){uu(t,t.return,s)}}else Us(e,t,n,r);break;case 23:break;case 22:o=t.stateNode,i=t.alternate,null!==t.memoizedState?2&o._visibility?Us(e,t,n,r):Gs(e,t):2&o._visibility?Us(e,t,n,r):(o._visibility|=2,Hs(e,t,n,r,!!(10256&t.subtreeFlags))),2048&a&&zs(i,t);break;case 24:Us(e,t,n,r),2048&a&&$s(t.alternate,t)}}function Hs(e,t,n,r,a){for(a=a&&!!(10256&t.subtreeFlags),t=t.child;null!==t;){var o=e,i=t,l=n,s=r,c=i.flags;switch(i.tag){case 0:case 11:case 15:Hs(o,i,l,s,a),is(8,i);break;case 23:break;case 22:var u=i.stateNode;null!==i.memoizedState?2&u._visibility?Hs(o,i,l,s,a):Gs(o,i):(u._visibility|=2,Hs(o,i,l,s,a)),a&&2048&c&&zs(i.alternate,i);break;case 24:Hs(o,i,l,s,a),a&&2048&c&&$s(i.alternate,i);break;default:Hs(o,i,l,s,a)}t=t.sibling}}function Gs(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=e,r=t,a=r.flags;switch(r.tag){case 22:Gs(n,r),2048&a&&zs(r.alternate,r);break;case 24:Gs(n,r),2048&a&&$s(r.alternate,r);break;default:Gs(n,r)}t=t.sibling}}var Vs=8192;function Ws(e){if(e.subtreeFlags&Vs)for(e=e.child;null!==e;)Qs(e),e=e.sibling}function Qs(e){switch(e.tag){case 26:Ws(e),e.flags&Vs&&null!==e.memoizedState&&function(e,t,n){if(null===Ud)throw Error(i(475));var r=Ud;if(!("stylesheet"!==t.type||"string"==typeof n.media&&!1===matchMedia(n.media).matches||4&t.state.loading)){if(null===t.instance){var a=Td(n.href),o=e.querySelector(jd(a));if(o)return null!==(e=o._p)&&"object"==typeof e&&"function"==typeof e.then&&(r.count++,r=Hd.bind(r),e.then(r,r)),t.state.loading|=4,t.instance=o,void Ge(o);o=e.ownerDocument||e,n=Pd(n),(a=Sd.get(a))&&Dd(n,a),Ge(o=o.createElement("link"));var l=o;l._p=new Promise(function(e,t){l.onload=e,l.onerror=t}),ed(o,"link",n),t.instance=o}null===r.stylesheets&&(r.stylesheets=new Map),r.stylesheets.set(t,e),(e=t.state.preload)&&!(3&t.state.loading)&&(r.count++,t=Hd.bind(r),e.addEventListener("load",t),e.addEventListener("error",t))}}(Ns,e.memoizedState,e.memoizedProps);break;case 5:default:Ws(e);break;case 3:case 4:var t=Ns;Ns=_d(e.stateNode.containerInfo),Ws(e),Ns=t;break;case 22:null===e.memoizedState&&(null!==(t=e.alternate)&&null!==t.memoizedState?(t=Vs,Vs=16777216,Ws(e),Vs=t):Ws(e))}}function Ks(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do{t=e.sibling,e.sibling=null,e=t}while(null!==e)}}function Ys(e){var t=e.deletions;if(16&e.flags){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];xs=r,Js(r,e)}Ks(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)Xs(e),e=e.sibling}function Xs(e){switch(e.tag){case 0:case 11:case 15:Ys(e),2048&e.flags&&ls(9,e,e.return);break;case 3:case 12:default:Ys(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,Zs(e)):Ys(e)}}function Zs(e){var t=e.deletions;if(16&e.flags){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];xs=r,Js(r,e)}Ks(e)}for(e=e.child;null!==e;){switch((t=e).tag){case 0:case 11:case 15:ls(8,t,t.return),Zs(t);break;case 22:2&(n=t.stateNode)._visibility&&(n._visibility&=-3,Zs(t));break;default:Zs(t)}e=e.sibling}}function Js(e,t){for(;null!==xs;){var n=xs;switch(n.tag){case 0:case 11:case 15:ls(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var r=n.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:Oa(n.memoizedState.cache)}if(null!==(r=n.child))r.return=n,xs=r;else e:for(n=e;null!==xs;){var a=(r=xs).sibling,o=r.return;if(Es(r),r===n){xs=null;break e}if(null!==a){a.return=o,xs=a;break e}xs=o}}}var ec={getCacheForType:function(e){var t=Ca(Ma),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n}},tc="function"==typeof WeakMap?WeakMap:Map,nc=0,rc=null,ac=null,oc=0,ic=0,lc=null,sc=!1,cc=!1,uc=!1,dc=0,fc=0,pc=0,hc=0,mc=0,gc=0,bc=0,yc=null,vc=null,wc=!1,kc=0,Sc=1/0,xc=null,_c=null,Ec=0,Cc=null,Ac=null,Lc=0,Tc=0,jc=null,Pc=null,Mc=0,Nc=null;function Oc(){if(2&nc&&0!==oc)return oc&-oc;if(null!==O.T){return 0!==Ba?Ba:Tu()}return je()}function Rc(){0===gc&&(gc=536870912&oc&&!oa?536870912:Se());var e=al.current;return null!==e&&(e.flags|=32),gc}function Dc(e,t,n){(e!==rc||2!==ic&&9!==ic)&&null===e.cancelPendingCommit||(qc(e,0),zc(e,oc,gc,!1)),Ee(e,n),2&nc&&e===rc||(e===rc&&(!(2&nc)&&(hc|=n),4===fc&&zc(e,oc,gc,!1)),Su(e))}function Bc(e,t,n){if(6&nc)throw Error(i(327));for(var r=!n&&!(124&t)&&0===(t&e.expiredLanes)||we(e,t),a=r?function(e,t){var n=nc;nc|=2;var r=Gc(),a=Vc();rc!==e||oc!==t?(xc=null,Sc=te()+500,qc(e,t)):cc=we(e,t);e:for(;;)try{if(0!==ic&&null!==ac){t=ac;var o=lc;t:switch(ic){case 1:ic=0,lc=null,Jc(e,t,o,1);break;case 2:case 9:if(Ka(o)){ic=0,lc=null,Zc(t);break}t=function(){2!==ic&&9!==ic||rc!==e||(ic=7),Su(e)},o.then(t,t);break e;case 3:ic=7;break e;case 4:ic=5;break e;case 7:Ka(o)?(ic=0,lc=null,Zc(t)):(ic=0,lc=null,Jc(e,t,o,7));break;case 5:var l=null;switch(ac.tag){case 26:l=ac.memoizedState;case 5:case 27:var s=ac;if(!l||$d(l)){ic=0,lc=null;var c=s.sibling;if(null!==c)ac=c;else{var u=s.return;null!==u?(ac=u,eu(u)):ac=null}break t}}ic=0,lc=null,Jc(e,t,o,5);break;case 6:ic=0,lc=null,Jc(e,t,o,6);break;case 8:Uc(),fc=6;break e;default:throw Error(i(462))}}Yc();break}catch(d){Hc(e,d)}return ya=ba=null,O.H=r,O.A=a,nc=n,null!==ac?0:(rc=null,oc=0,Lr(),fc)}(e,t):Qc(e,t,!0),o=r;;){if(0===a){cc&&!r&&zc(e,t,0,!1);break}if(n=e.current.alternate,!o||Ic(n)){if(2===a){if(o=t,e.errorRecoveryDisabledLanes&o)var l=0;else l=0!==(l=-536870913&e.pendingLanes)?l:536870912&l?536870912:0;if(0!==l){t=l;e:{var s=e;a=yc;var c=s.current.memoizedState.isDehydrated;if(c&&(qc(s,l).flags|=256),2!==(l=Qc(s,l,!1))){if(uc&&!c){s.errorRecoveryDisabledLanes|=o,hc|=o,a=4;break e}o=vc,vc=a,null!==o&&(null===vc?vc=o:vc.push.apply(vc,o))}a=l}if(o=!1,2!==a)continue}}if(1===a){qc(e,0),zc(e,t,0,!0);break}e:{switch(r=e,o=a){case 0:case 1:throw Error(i(345));case 4:if((4194048&t)!==t)break;case 6:zc(r,t,gc,!sc);break e;case 2:vc=null;break;case 3:case 5:break;default:throw Error(i(329))}if((62914560&t)===t&&10<(a=kc+300-te())){if(zc(r,t,gc,!sc),0!==ve(r,0,!0))break e;r.timeoutHandle=sd(Fc.bind(null,r,n,vc,xc,wc,t,gc,hc,bc,sc,o,2,-0,0),a)}else Fc(r,n,vc,xc,wc,t,gc,hc,bc,sc,o,0,-0,0)}break}a=Qc(e,t,!1),o=!1}Su(e)}function Fc(e,t,n,r,a,o,l,s,c,u,d,f,p,h){if(e.timeoutHandle=-1,(8192&(f=t.subtreeFlags)||!(16785408&~f))&&(Ud={stylesheets:null,count:0,unsuspend:qd},Qs(t),null!==(f=function(){if(null===Ud)throw Error(i(475));var e=Ud;return e.stylesheets&&0===e.count&&Vd(e,e.stylesheets),0<e.count?function(t){var n=setTimeout(function(){if(e.stylesheets&&Vd(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4);return e.unsuspend=t,function(){e.unsuspend=null,clearTimeout(n)}}:null}())))return e.cancelPendingCommit=f(nu.bind(null,e,t,o,n,r,a,l,s,c,d,1,p,h)),void zc(e,o,l,!u);nu(e,t,o,n,r,a,l,s,c)}function Ic(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&(null!==(n=t.updateQueue)&&null!==(n=n.stores)))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!Kn(o(),a))return!1}catch(i){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function zc(e,t,n,r){t&=~mc,t&=~hc,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var a=t;0<a;){var o=31-pe(a),i=1<<o;r[o]=-1,a&=~i}0!==n&&Ce(e,n,t)}function $c(){return!!(6&nc)||(xu(0,!1),!1)}function Uc(){if(null!==ac){if(0===ic)var e=ac.return;else ya=ba=null,Fo(e=ac),Ki=null,Yi=0,e=ac;for(;null!==e;)os(e.alternate,e),e=e.return;ac=null}}function qc(e,t){var n=e.timeoutHandle;-1!==n&&(e.timeoutHandle=-1,cd(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),Uc(),rc=e,ac=n=Fr(e.current,null),oc=t,ic=0,lc=null,sc=!1,cc=we(e,t),uc=!1,bc=gc=mc=hc=pc=fc=0,vc=yc=null,wc=!1,8&t&&(t|=32&t);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=t;0<r;){var a=31-pe(r),o=1<<a;t|=e[a],r&=~o}return dc=t,Lr(),n}function Hc(e,t){wo=null,O.H=Gi,t===Ga||t===Wa?(t=Ja(),ic=3):t===Va?(t=Ja(),ic=4):ic=t===Cl?8:null!==t&&"object"==typeof t&&"function"==typeof t.then?6:1,lc=t,null===ac&&(fc=1,kl(e,_r(t,e.current)))}function Gc(){var e=O.H;return O.H=Gi,null===e?Gi:e}function Vc(){var e=O.A;return O.A=ec,e}function Wc(){fc=4,sc||(4194048&oc)!==oc&&null!==al.current||(cc=!0),!(134217727&pc)&&!(134217727&hc)||null===rc||zc(rc,oc,gc,!1)}function Qc(e,t,n){var r=nc;nc|=2;var a=Gc(),o=Vc();rc===e&&oc===t||(xc=null,qc(e,t)),t=!1;var i=fc;e:for(;;)try{if(0!==ic&&null!==ac){var l=ac,s=lc;switch(ic){case 8:Uc(),i=6;break e;case 3:case 2:case 9:case 6:null===al.current&&(t=!0);var c=ic;if(ic=0,lc=null,Jc(e,l,s,c),n&&cc){i=0;break e}break;default:c=ic,ic=0,lc=null,Jc(e,l,s,c)}}Kc(),i=fc;break}catch(u){Hc(e,u)}return t&&e.shellSuspendCounter++,ya=ba=null,nc=r,O.H=a,O.A=o,null===ac&&(rc=null,oc=0,Lr()),i}function Kc(){for(;null!==ac;)Xc(ac)}function Yc(){for(;null!==ac&&!J();)Xc(ac)}function Xc(e){var t=Xl(e.alternate,e,dc);e.memoizedProps=e.pendingProps,null===t?eu(e):ac=t}function Zc(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Dl(n,t,t.pendingProps,t.type,void 0,oc);break;case 11:t=Dl(n,t,t.pendingProps,t.type.render,t.ref,oc);break;case 5:Fo(t);default:os(n,t),t=Xl(n,t=ac=Ir(t,dc),dc)}e.memoizedProps=e.pendingProps,null===t?eu(e):ac=t}function Jc(e,t,n,r){ya=ba=null,Fo(t),Ki=null,Yi=0;var a=t.return;try{if(function(e,t,n,r,a){if(n.flags|=32768,null!==r&&"object"==typeof r&&"function"==typeof r.then){if(null!==(t=n.alternate)&&xa(t,n,a,!0),null!==(n=al.current)){switch(n.tag){case 13:return null===ol?Wc():null===n.alternate&&0===fc&&(fc=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Qa?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=new Set([r]):t.add(r),du(e,r,a)),!1;case 22:return n.flags|=65536,r===Qa?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=new Set([r]):n.add(r),du(e,r,a)),!1}throw Error(i(435,n.tag))}return du(e,r,a),Wc(),!1}if(oa)return null!==(t=al.current)?(!(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==sa&&ma(_r(e=Error(i(422),{cause:r}),n))):(r!==sa&&ma(_r(t=Error(i(423),{cause:r}),n)),(e=e.current.alternate).flags|=65536,a&=-a,e.lanes|=a,r=_r(r,n),lo(e,a=xl(e.stateNode,r,a)),4!==fc&&(fc=2)),!1;var o=Error(i(520),{cause:r});if(o=_r(o,n),null===yc?yc=[o]:yc.push(o),4!==fc&&(fc=2),null===t)return!0;r=_r(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,lo(n,e=xl(n.stateNode,r,e)),!1;case 1:if(t=n.type,o=n.stateNode,!(128&n.flags||"function"!=typeof t.getDerivedStateFromError&&(null===o||"function"!=typeof o.componentDidCatch||null!==_c&&_c.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,El(a=_l(a),e,n,r),lo(n,a),!1}n=n.return}while(null!==n);return!1}(e,a,t,n,oc))return fc=1,kl(e,_r(n,e.current)),void(ac=null)}catch(o){if(null!==a)throw ac=a,o;return fc=1,kl(e,_r(n,e.current)),void(ac=null)}32768&t.flags?(oa||1===r?e=!0:cc||536870912&oc?e=!1:(sc=e=!0,(2===r||9===r||3===r||6===r)&&(null!==(r=al.current)&&13===r.tag&&(r.flags|=16384))),tu(t,e)):eu(t)}function eu(e){var t=e;do{if(32768&t.flags)return void tu(t,sc);e=t.return;var n=rs(t.alternate,t,dc);if(null!==n)return void(ac=n);if(null!==(t=t.sibling))return void(ac=t);ac=t=e}while(null!==t);0===fc&&(fc=5)}function tu(e,t){do{var n=as(e.alternate,e);if(null!==n)return n.flags&=32767,void(ac=n);if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling))return void(ac=e);ac=e=n}while(null!==e);fc=6,ac=null}function nu(e,t,n,r,a,o,l,s,c){e.cancelPendingCommit=null;do{lu()}while(0!==Ec);if(6&nc)throw Error(i(327));if(null!==t){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,function(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,c=e.hiddenUpdates;for(n=i&~n;0<n;){var u=31-pe(n),d=1<<u;l[u]=0,s[u]=-1;var f=c[u];if(null!==f)for(c[u]=null,u=0;u<f.length;u++){var p=f[u];null!==p&&(p.lane&=-536870913)}n&=~d}0!==r&&Ce(e,r,0),0!==o&&0===a&&0!==e.tag&&(e.suspendedLanes|=o&~(i&~t))}(e,n,o|=Ar,l,s,c),e===rc&&(ac=rc=null,oc=0),Ac=t,Cc=e,Lc=n,Tc=o,jc=a,Pc=r,10256&t.subtreeFlags||10256&t.flags?(e.callbackNode=null,e.callbackPriority=0,X(oe,function(){return su(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(13878&t.flags),13878&t.subtreeFlags||r){r=O.T,O.T=null,a=R.p,R.p=2,l=nc,nc|=4;try{!function(e,t){if(e=e.containerInfo,td=nf,tr(e=er(e))){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch(g){n=null;break e}var l=0,s=-1,c=-1,u=0,d=0,f=e,p=null;t:for(;;){for(var h;f!==n||0!==a&&3!==f.nodeType||(s=l+a),f!==o||0!==r&&3!==f.nodeType||(c=l+r),3===f.nodeType&&(l+=f.nodeValue.length),null!==(h=f.firstChild);)p=f,f=h;for(;;){if(f===e)break t;if(p===n&&++u===a&&(s=l),p===o&&++d===r&&(c=l),null!==(h=f.nextSibling))break;p=(f=p).parentNode}f=h}n=-1===s||-1===c?null:{start:s,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(nd={focusedElem:e,selectionRange:n},nf=!1,xs=t;null!==xs;)if(e=(t=xs).child,1024&t.subtreeFlags&&null!==e)e.return=t,xs=e;else for(;null!==xs;){switch(o=(t=xs).alternate,e=t.flags,t.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(1024&e&&null!==o){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var m=gl(n.type,a,(n.elementType,n.type));e=r.getSnapshotBeforeUpdate(m,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(b){uu(n,n.return,b)}}break;case 3:if(1024&e)if(9===(n=(e=t.stateNode.containerInfo).nodeType))md(e);else if(1===n)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":md(e);break;default:e.textContent=""}break;default:if(1024&e)throw Error(i(163))}if(null!==(e=t.sibling)){e.return=t.return,xs=e;break}xs=t.return}}(e,t)}finally{nc=l,R.p=a,O.T=r}}Ec=1,ru(),au(),ou()}}function ru(){if(1===Ec){Ec=0;var e=Cc,t=Ac,n=!!(13878&t.flags);if(13878&t.subtreeFlags||n){n=O.T,O.T=null;var r=R.p;R.p=2;var a=nc;nc|=4;try{Os(t,e);var o=nd,i=er(e.containerInfo),l=o.focusedElem,s=o.selectionRange;if(i!==l&&l&&l.ownerDocument&&Jn(l.ownerDocument.documentElement,l)){if(null!==s&&tr(l)){var c=s.start,u=s.end;if(void 0===u&&(u=c),"selectionStart"in l)l.selectionStart=c,l.selectionEnd=Math.min(u,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),h=l.textContent.length,m=Math.min(s.start,h),g=void 0===s.end?m:Math.min(s.end,h);!p.extend&&m>g&&(i=g,g=m,m=i);var b=Zn(l,m),y=Zn(l,g);if(b&&y&&(1!==p.rangeCount||p.anchorNode!==b.node||p.anchorOffset!==b.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var v=d.createRange();v.setStart(b.node,b.offset),p.removeAllRanges(),m>g?(p.addRange(v),p.extend(y.node,y.offset)):(v.setEnd(y.node,y.offset),p.addRange(v))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var w=d[l];w.element.scrollLeft=w.left,w.element.scrollTop=w.top}}nf=!!td,nd=td=null}finally{nc=a,R.p=r,O.T=n}}e.current=t,Ec=2}}function au(){if(2===Ec){Ec=0;var e=Cc,t=Ac,n=!!(8772&t.flags);if(8772&t.subtreeFlags||n){n=O.T,O.T=null;var r=R.p;R.p=2;var a=nc;nc|=4;try{_s(e,t.alternate,t)}finally{nc=a,R.p=r,O.T=n}}Ec=3}}function ou(){if(4===Ec||3===Ec){Ec=0,ee();var e=Cc,t=Ac,n=Lc,r=Pc;10256&t.subtreeFlags||10256&t.flags?Ec=5:(Ec=0,Ac=Cc=null,iu(e,e.pendingLanes));var a=e.pendingLanes;if(0===a&&(_c=null),Te(n),t=t.stateNode,de&&"function"==typeof de.onCommitFiberRoot)try{de.onCommitFiberRoot(ue,t,void 0,!(128&~t.current.flags))}catch(s){}if(null!==r){t=O.T,a=R.p,R.p=2,O.T=null;try{for(var o=e.onRecoverableError,i=0;i<r.length;i++){var l=r[i];o(l.value,{componentStack:l.stack})}}finally{O.T=t,R.p=a}}3&Lc&&lu(),Su(e),a=e.pendingLanes,4194090&n&&42&a?e===Nc?Mc++:(Mc=0,Nc=e):Mc=0,xu(0,!1)}}function iu(e,t){0===(e.pooledCacheLanes&=t)&&(null!=(t=e.pooledCache)&&(e.pooledCache=null,Oa(t)))}function lu(e){return ru(),au(),ou(),su()}function su(){if(5!==Ec)return!1;var e=Cc,t=Tc;Tc=0;var n=Te(Lc),r=O.T,a=R.p;try{R.p=32>n?32:n,O.T=null,n=jc,jc=null;var o=Cc,l=Lc;if(Ec=0,Ac=Cc=null,Lc=0,6&nc)throw Error(i(331));var s=nc;if(nc|=4,Xs(o.current),qs(o,o.current,l,n),nc=s,xu(0,!1),de&&"function"==typeof de.onPostCommitFiberRoot)try{de.onPostCommitFiberRoot(ue,o)}catch(c){}return!0}finally{R.p=a,O.T=r,iu(e,t)}}function cu(e,t,n){t=_r(n,t),null!==(e=oo(e,t=xl(e.stateNode,t,2),2))&&(Ee(e,2),Su(e))}function uu(e,t,n){if(3===e.tag)cu(e,e,n);else for(;null!==t;){if(3===t.tag){cu(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===_c||!_c.has(r))){e=_r(n,e),null!==(r=oo(t,n=_l(2),2))&&(El(n,r,t,e),Ee(r,2),Su(r));break}}t=t.return}}function du(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new tc;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(uc=!0,a.add(n),e=fu.bind(null,e,t,n),t.then(e,e))}function fu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,rc===e&&(oc&n)===n&&(4===fc||3===fc&&(62914560&oc)===oc&&300>te()-kc?!(2&nc)&&qc(e,0):mc|=n,bc===oc&&(bc=0)),Su(e)}function pu(e,t){0===t&&(t=xe()),null!==(e=Pr(e,t))&&(Ee(e,t),Su(e))}function hu(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),pu(e,n)}function mu(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),pu(e,n)}var gu=null,bu=null,yu=!1,vu=!1,wu=!1,ku=0;function Su(e){e!==bu&&null===e.next&&(null===bu?gu=bu=e:bu=bu.next=e),vu=!0,yu||(yu=!0,dd(function(){6&nc?X(re,_u):Eu()}))}function xu(e,t){if(!wu&&vu){wu=!0;do{for(var n=!1,r=gu;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var i=r.suspendedLanes,l=r.pingedLanes;o=(1<<31-pe(42|e)+1)-1,o=201326741&(o&=a&~(i&~l))?201326741&o|1:o?2|o:0}0!==o&&(n=!0,Lu(r,o))}else o=oc,!(3&(o=ve(r,r===rc?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||we(r,o)||(n=!0,Lu(r,o));r=r.next}}while(n);wu=!1}}function _u(){Eu()}function Eu(){vu=yu=!1;var e=0;0!==ku&&(function(){var e=window.event;if(e&&"popstate"===e.type)return e!==ld&&(ld=e,!0);return ld=null,!1}()&&(e=ku),ku=0);for(var t=te(),n=null,r=gu;null!==r;){var a=r.next,o=Cu(r,t);0===o?(r.next=null,null===n?gu=a:n.next=a,null===a&&(bu=n)):(n=r,(0!==e||3&o)&&(vu=!0)),r=a}xu(e,!1)}function Cu(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-62914561&e.pendingLanes;0<o;){var i=31-pe(o),l=1<<i,s=a[i];-1===s?0!==(l&n)&&0===(l&r)||(a[i]=ke(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}if(n=oc,n=ve(e,e===(t=rc)?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===n||e===t&&(2===ic||9===ic)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&Z(r),e.callbackNode=null,e.callbackPriority=0;if(!(3&n)||we(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==r&&Z(r),Te(n)){case 2:case 8:n=ae;break;case 32:default:n=oe;break;case 268435456:n=le}return r=Au.bind(null,e),n=X(n,r),e.callbackPriority=t,e.callbackNode=n,t}return null!==r&&null!==r&&Z(r),e.callbackPriority=2,e.callbackNode=null,2}function Au(e,t){if(0!==Ec&&5!==Ec)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(lu()&&e.callbackNode!==n)return null;var r=oc;return 0===(r=ve(e,e===rc?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(Bc(e,r,t),Cu(e,te()),null!=e.callbackNode&&e.callbackNode===n?Au.bind(null,e):null)}function Lu(e,t){if(lu())return null;Bc(e,t,!0)}function Tu(){return 0===ku&&(ku=Se()),ku}function ju(e){return null==e||"symbol"==typeof e||"boolean"==typeof e?null:"function"==typeof e?e:Tt(""+e)}function Pu(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}for(var Mu=0;Mu<kr.length;Mu++){var Nu=kr[Mu];Sr(Nu.toLowerCase(),"on"+(Nu[0].toUpperCase()+Nu.slice(1)))}Sr(pr,"onAnimationEnd"),Sr(hr,"onAnimationIteration"),Sr(mr,"onAnimationStart"),Sr("dblclick","onDoubleClick"),Sr("focusin","onFocus"),Sr("focusout","onBlur"),Sr(gr,"onTransitionRun"),Sr(br,"onTransitionStart"),Sr(yr,"onTransitionCancel"),Sr(vr,"onTransitionEnd"),Ke("onMouseEnter",["mouseout","mouseover"]),Ke("onMouseLeave",["mouseout","mouseover"]),Ke("onPointerEnter",["pointerout","pointerover"]),Ke("onPointerLeave",["pointerout","pointerover"]),Qe("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Qe("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Qe("onBeforeInput",["compositionend","keypress","textInput","paste"]),Qe("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Qe("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Qe("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ou="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ru=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Ou));function Du(e,t){t=!!(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,c=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=c;try{o(a)}catch(u){bl(u)}a.currentTarget=null,o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=c;try{o(a)}catch(u){bl(u)}a.currentTarget=null,o=s}}}}function Bu(e,t){var n=t[Re];void 0===n&&(n=t[Re]=new Set);var r=e+"__bubble";n.has(r)||($u(t,e,2,!1),n.add(r))}function Fu(e,t,n){var r=0;t&&(r|=4),$u(n,e,r,t)}var Iu="_reactListening"+Math.random().toString(36).slice(2);function zu(e){if(!e[Iu]){e[Iu]=!0,Ve.forEach(function(t){"selectionchange"!==t&&(Ru.has(t)||Fu(t,!1,e),Fu(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Iu]||(t[Iu]=!0,Fu("selectionchange",!1,t))}}function $u(e,t,n,r){switch(uf(t)){case 2:var a=rf;break;case 8:a=af;break;default:a=of}n=a.bind(null,t,n,e),a=void 0,!It||"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 Uu(e,t,n,r,a){var o=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&i.stateNode.containerInfo===a)return;i=i.return}for(;null!==l;){if(null===(i=$e(l)))return;if(5===(c=i.tag)||6===c||26===c||27===c){r=o=i;continue e}l=l.parentNode}}r=r.return}Dt(function(){var r=o,a=Pt(n),i=[];e:{var l=wr.get(e);if(void 0!==l){var c=Jt,u=e;switch(e){case"keypress":if(0===Gt(n))break e;case"keydown":case"keyup":c=mn;break;case"focusin":u="focus",c=on;break;case"focusout":u="blur",c=on;break;case"beforeblur":case"afterblur":c=on;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=rn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=an;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=bn;break;case pr:case hr:case mr:c=ln;break;case vr:c=yn;break;case"scroll":case"scrollend":c=tn;break;case"wheel":c=vn;break;case"copy":case"cut":case"paste":c=sn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=gn;break;case"toggle":case"beforetoggle":c=wn}var d=!!(4&t),f=!d&&("scroll"===e||"scrollend"===e),p=d?null!==l?l+"Capture":null:l;d=[];for(var h,m=r;null!==m;){var g=m;if(h=g.stateNode,5!==(g=g.tag)&&26!==g&&27!==g||null===h||null===p||null!=(g=Bt(m,p))&&d.push(qu(m,g,h)),f)break;m=m.return}0<d.length&&(l=new c(l,u,null,n,a),i.push({event:l,listeners:d}))}}if(!(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===jt||!(u=n.relatedTarget||n.fromElement)||!$e(u)&&!u[Oe])&&(c||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,c?(c=r,null!==(u=(u=n.relatedTarget||n.toElement)?$e(u):null)&&(f=s(u),d=u.tag,u!==f||5!==d&&27!==d&&6!==d)&&(u=null)):(c=null,u=r),c!==u)){if(d=rn,g="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(d=gn,g="onPointerLeave",p="onPointerEnter",m="pointer"),f=null==c?l:qe(c),h=null==u?l:qe(u),(l=new d(g,m+"leave",c,n,a)).target=f,l.relatedTarget=h,g=null,$e(a)===r&&((d=new d(p,m+"enter",u,n,a)).target=h,d.relatedTarget=f,g=d),f=g,c&&u)e:{for(p=u,m=0,h=d=c;h;h=Gu(h))m++;for(h=0,g=p;g;g=Gu(g))h++;for(;0<m-h;)d=Gu(d),m--;for(;0<h-m;)p=Gu(p),h--;for(;m--;){if(d===p||null!==p&&d===p.alternate)break e;d=Gu(d),p=Gu(p)}d=null}else d=null;null!==c&&Vu(i,l,c,d,!1),null!==u&&null!==f&&Vu(i,f,u,d,!0)}if("select"===(c=(l=r?qe(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===c&&"file"===l.type)var b=Fn;else if(Mn(l))if(In)b=Qn;else{b=Vn;var y=Gn}else!(c=l.nodeName)||"input"!==c.toLowerCase()||"checkbox"!==l.type&&"radio"!==l.type?r&&Ct(r.elementType)&&(b=Fn):b=Wn;switch(b&&(b=b(e,r))?Nn(i,b,n,a):(y&&y(e,l,r),"focusout"===e&&r&&"number"===l.type&&null!=r.memoizedProps.value&&yt(l,"number",l.value)),y=r?qe(r):window,e){case"focusin":(Mn(y)||"true"===y.contentEditable)&&(rr=y,ar=r,or=null);break;case"focusout":or=ar=rr=null;break;case"mousedown":ir=!0;break;case"contextmenu":case"mouseup":case"dragend":ir=!1,lr(i,n,a);break;case"selectionchange":if(nr)break;case"keydown":case"keyup":lr(i,n,a)}var v;if(Sn)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else jn?Ln(e,n)&&(w="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(w="onCompositionStart");w&&(En&&"ko"!==n.locale&&(jn||"onCompositionStart"!==w?"onCompositionEnd"===w&&jn&&(v=Ht()):(Ut="value"in($t=a)?$t.value:$t.textContent,jn=!0)),0<(y=Hu(r,w)).length&&(w=new cn(w,e,null,n,a),i.push({event:w,listeners:y}),v?w.data=v:null!==(v=Tn(n))&&(w.data=v))),(v=_n?function(e,t){switch(e){case"compositionend":return Tn(t);case"keypress":return 32!==t.which?null:(An=!0,Cn);case"textInput":return(e=t.data)===Cn&&An?null:e;default:return null}}(e,n):function(e,t){if(jn)return"compositionend"===e||!Sn&&Ln(e,t)?(e=Ht(),qt=Ut=$t=null,jn=!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 En&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(w=Hu(r,"onBeforeInput")).length&&(y=new cn("onBeforeInput","beforeinput",null,n,a),i.push({event:y,listeners:w}),y.data=v)),function(e,t,n,r,a){if("submit"===t&&n&&n.stateNode===a){var o=ju((a[Ne]||null).action),i=r.submitter;i&&null!==(t=(t=i[Ne]||null)?ju(t.formAction):i.getAttribute("formAction"))&&(o=t,i=null);var l=new Jt("action","action",null,r,a);e.push({event:l,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(0!==ku){var e=i?Pu(a,i):new FormData(a);Pi(n,{pending:!0,data:e,method:a.method,action:o},null,e)}}else"function"==typeof o&&(l.preventDefault(),e=i?Pu(a,i):new FormData(a),Pi(n,{pending:!0,data:e,method:a.method,action:o},o,e))},currentTarget:a}]})}}(i,e,r,n,a)}Du(i,t)})}function qu(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Hu(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;if(5!==(a=a.tag)&&26!==a&&27!==a||null===o||(null!=(a=Bt(e,n))&&r.unshift(qu(e,a,o)),null!=(a=Bt(e,t))&&r.push(qu(e,a,o))),3===e.tag)return r;e=e.return}return[]}function Gu(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag&&27!==e.tag);return e||null}function Vu(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===c||(s=c,a?null!=(c=Bt(n,o))&&i.unshift(qu(n,c,s)):a||null!=(c=Bt(n,o))&&i.push(qu(n,c,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Wu=/\r\n?/g,Qu=/\u0000|\uFFFD/g;function Ku(e){return("string"==typeof e?e:""+e).replace(Wu,"\n").replace(Qu,"")}function Yu(e,t){return t=Ku(t),Ku(e)===t}function Xu(){}function Zu(e,t,n,r,a,o){switch(n){case"children":"string"==typeof r?"body"===t||"textarea"===t&&""===r||St(e,r):("number"==typeof r||"bigint"==typeof r)&&"body"!==t&&St(e,""+r);break;case"className":nt(e,"class",r);break;case"tabIndex":nt(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":nt(e,n,r);break;case"style":Et(e,r,o);break;case"data":if("object"!==t){nt(e,"data",r);break}case"src":case"href":if(""===r&&("a"!==t||"href"!==n)){e.removeAttribute(n);break}if(null==r||"function"==typeof r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=Tt(""+r),e.setAttribute(n,r);break;case"action":case"formAction":if("function"==typeof r){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}if("function"==typeof o&&("formAction"===n?("input"!==t&&Zu(e,t,"name",a.name,a,null),Zu(e,t,"formEncType",a.formEncType,a,null),Zu(e,t,"formMethod",a.formMethod,a,null),Zu(e,t,"formTarget",a.formTarget,a,null)):(Zu(e,t,"encType",a.encType,a,null),Zu(e,t,"method",a.method,a,null),Zu(e,t,"target",a.target,a,null))),null==r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=Tt(""+r),e.setAttribute(n,r);break;case"onClick":null!=r&&(e.onclick=Xu);break;case"onScroll":null!=r&&Bu("scroll",e);break;case"onScrollEnd":null!=r&&Bu("scrollend",e);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(i(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(i(60));e.innerHTML=n}}break;case"multiple":e.multiple=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"muted":e.muted=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":break;case"xlinkHref":if(null==r||"function"==typeof r||"boolean"==typeof r||"symbol"==typeof r){e.removeAttribute("xlink:href");break}n=Tt(""+r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""+r):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":!0===r?e.setAttribute(n,""):!1!==r&&null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":null!=r&&"function"!=typeof r&&"symbol"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case"rowSpan":case"start":null==r||"function"==typeof r||"symbol"==typeof r||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case"popover":Bu("beforetoggle",e),Bu("toggle",e),tt(e,"popover",r);break;case"xlinkActuate":rt(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":rt(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":rt(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":rt(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":rt(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":rt(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":rt(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":rt(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":rt(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":tt(e,"is",r);break;case"innerText":case"textContent":break;default:(!(2<n.length)||"o"!==n[0]&&"O"!==n[0]||"n"!==n[1]&&"N"!==n[1])&&tt(e,n=At.get(n)||n,r)}}function Ju(e,t,n,r,a,o){switch(n){case"style":Et(e,r,o);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(i(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(i(60));e.innerHTML=n}}break;case"children":"string"==typeof r?St(e,r):("number"==typeof r||"bigint"==typeof r)&&St(e,""+r);break;case"onScroll":null!=r&&Bu("scroll",e);break;case"onScrollEnd":null!=r&&Bu("scrollend",e);break;case"onClick":null!=r&&(e.onclick=Xu);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":break;default:We.hasOwnProperty(n)||("o"!==n[0]||"n"!==n[1]||(a=n.endsWith("Capture"),t=n.slice(2,a?n.length-7:void 0),"function"==typeof(o=null!=(o=e[Ne]||null)?o[n]:null)&&e.removeEventListener(t,o,a),"function"!=typeof r)?n in e?e[n]=r:!0===r?e.setAttribute(n,""):tt(e,n,r):("function"!=typeof o&&null!==o&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a)))}}function ed(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Bu("error",e),Bu("load",e);var r,a=!1,o=!1;for(r in n)if(n.hasOwnProperty(r)){var l=n[r];if(null!=l)switch(r){case"src":a=!0;break;case"srcSet":o=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(i(137,t));default:Zu(e,t,r,l,n,null)}}return o&&Zu(e,t,"srcSet",n.srcSet,n,null),void(a&&Zu(e,t,"src",n.src,n,null));case"input":Bu("invalid",e);var s=r=l=o=null,c=null,u=null;for(a in n)if(n.hasOwnProperty(a)){var d=n[a];if(null!=d)switch(a){case"name":o=d;break;case"type":l=d;break;case"checked":c=d;break;case"defaultChecked":u=d;break;case"value":r=d;break;case"defaultValue":s=d;break;case"children":case"dangerouslySetInnerHTML":if(null!=d)throw Error(i(137,t));break;default:Zu(e,t,a,d,n,null)}}return bt(e,r,s,c,u,l,o,!1),void dt(e);case"select":for(o in Bu("invalid",e),a=l=r=null,n)if(n.hasOwnProperty(o)&&null!=(s=n[o]))switch(o){case"value":r=s;break;case"defaultValue":l=s;break;case"multiple":a=s;default:Zu(e,t,o,s,n,null)}return t=r,n=l,e.multiple=!!a,void(null!=t?vt(e,!!a,t,!1):null!=n&&vt(e,!!a,n,!0));case"textarea":for(l in Bu("invalid",e),r=o=a=null,n)if(n.hasOwnProperty(l)&&null!=(s=n[l]))switch(l){case"value":a=s;break;case"defaultValue":o=s;break;case"children":r=s;break;case"dangerouslySetInnerHTML":if(null!=s)throw Error(i(91));break;default:Zu(e,t,l,s,n,null)}return kt(e,a,o,r),void dt(e);case"option":for(c in n)if(n.hasOwnProperty(c)&&null!=(a=n[c]))if("selected"===c)e.selected=a&&"function"!=typeof a&&"symbol"!=typeof a;else Zu(e,t,c,a,n,null);return;case"dialog":Bu("beforetoggle",e),Bu("toggle",e),Bu("cancel",e),Bu("close",e);break;case"iframe":case"object":Bu("load",e);break;case"video":case"audio":for(a=0;a<Ou.length;a++)Bu(Ou[a],e);break;case"image":Bu("error",e),Bu("load",e);break;case"details":Bu("toggle",e);break;case"embed":case"source":case"link":Bu("error",e),Bu("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(u in n)if(n.hasOwnProperty(u)&&null!=(a=n[u]))switch(u){case"children":case"dangerouslySetInnerHTML":throw Error(i(137,t));default:Zu(e,t,u,a,n,null)}return;default:if(Ct(t)){for(d in n)n.hasOwnProperty(d)&&(void 0!==(a=n[d])&&Ju(e,t,d,a,n,void 0));return}}for(s in n)n.hasOwnProperty(s)&&(null!=(a=n[s])&&Zu(e,t,s,a,n,null))}var td=null,nd=null;function rd(e){return 9===e.nodeType?e:e.ownerDocument}function ad(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function od(e,t){if(0===e)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return 1===e&&"foreignObject"===t?0:e}function id(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"bigint"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ld=null;var sd="function"==typeof setTimeout?setTimeout:void 0,cd="function"==typeof clearTimeout?clearTimeout:void 0,ud="function"==typeof Promise?Promise:void 0,dd="function"==typeof queueMicrotask?queueMicrotask:void 0!==ud?function(e){return ud.resolve(null).then(e).catch(fd)}:sd;function fd(e){setTimeout(function(){throw e})}function pd(e){return"head"===e}function hd(e,t){var n=t,r=0,a=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0<r&&8>r){n=r;var i=e.ownerDocument;if(1&n&&kd(i.documentElement),2&n&&kd(i.body),4&n)for(kd(n=i.head),i=n.firstChild;i;){var l=i.nextSibling,s=i.nodeName;i[Ie]||"SCRIPT"===s||"STYLE"===s||"LINK"===s&&"stylesheet"===i.rel.toLowerCase()||n.removeChild(i),i=l}}if(0===a)return e.removeChild(o),void Lf(t);a--}else"$"===n||"$?"===n||"$!"===n?a++:r=n.charCodeAt(0)-48;else r=0;n=o}while(n);Lf(t)}function md(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":md(n),ze(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===n.rel.toLowerCase())continue}e.removeChild(n)}}function gd(e){return"$!"===e.data||"$?"===e.data&&"complete"===e.ownerDocument.readyState}function bd(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t||"F!"===t||"F"===t)break;if("/$"===t)return null}}return e}var yd=null;function vd(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}function wd(e,t,n){switch(t=rd(n),e){case"html":if(!(e=t.documentElement))throw Error(i(452));return e;case"head":if(!(e=t.head))throw Error(i(453));return e;case"body":if(!(e=t.body))throw Error(i(454));return e;default:throw Error(i(451))}}function kd(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ze(e)}var Sd=new Map,xd=new Set;function _d(e){return"function"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var Ed=R.d;R.d={f:function(){var e=Ed.f(),t=$c();return e||t},r:function(e){var t=Ue(e);null!==t&&5===t.tag&&"form"===t.type?Ni(t):Ed.r(e)},D:function(e){Ed.D(e),Ad("dns-prefetch",e,null)},C:function(e,t){Ed.C(e,t),Ad("preconnect",e,t)},L:function(e,t,n){Ed.L(e,t,n);var r=Cd;if(r&&e&&t){var a='link[rel="preload"][as="'+mt(t)+'"]';"image"===t&&n&&n.imageSrcSet?(a+='[imagesrcset="'+mt(n.imageSrcSet)+'"]',"string"==typeof n.imageSizes&&(a+='[imagesizes="'+mt(n.imageSizes)+'"]')):a+='[href="'+mt(e)+'"]';var o=a;switch(t){case"style":o=Td(e);break;case"script":o=Md(e)}Sd.has(o)||(e=f({rel:"preload",href:"image"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),Sd.set(o,e),null!==r.querySelector(a)||"style"===t&&r.querySelector(jd(o))||"script"===t&&r.querySelector(Nd(o))||(ed(t=r.createElement("link"),"link",e),Ge(t),r.head.appendChild(t)))}},m:function(e,t){Ed.m(e,t);var n=Cd;if(n&&e){var r=t&&"string"==typeof t.as?t.as:"script",a='link[rel="modulepreload"][as="'+mt(r)+'"][href="'+mt(e)+'"]',o=a;switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=Md(e)}if(!Sd.has(o)&&(e=f({rel:"modulepreload",href:e},t),Sd.set(o,e),null===n.querySelector(a))){switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Nd(o)))return}ed(r=n.createElement("link"),"link",e),Ge(r),n.head.appendChild(r)}}},X:function(e,t){Ed.X(e,t);var n=Cd;if(n&&e){var r=He(n).hoistableScripts,a=Md(e),o=r.get(a);o||((o=n.querySelector(Nd(a)))||(e=f({src:e,async:!0},t),(t=Sd.get(a))&&Bd(e,t),Ge(o=n.createElement("script")),ed(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},r.set(a,o))}},S:function(e,t,n){Ed.S(e,t,n);var r=Cd;if(r&&e){var a=He(r).hoistableStyles,o=Td(e);t=t||"default";var i=a.get(o);if(!i){var l={loading:0,preload:null};if(i=r.querySelector(jd(o)))l.loading=5;else{e=f({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Sd.get(o))&&Dd(e,n);var s=i=r.createElement("link");Ge(s),ed(s,"link",e),s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),s.addEventListener("load",function(){l.loading|=1}),s.addEventListener("error",function(){l.loading|=2}),l.loading|=4,Rd(i,t,r)}i={type:"stylesheet",instance:i,count:1,state:l},a.set(o,i)}}},M:function(e,t){Ed.M(e,t);var n=Cd;if(n&&e){var r=He(n).hoistableScripts,a=Md(e),o=r.get(a);o||((o=n.querySelector(Nd(a)))||(e=f({src:e,async:!0,type:"module"},t),(t=Sd.get(a))&&Bd(e,t),Ge(o=n.createElement("script")),ed(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},r.set(a,o))}}};var Cd="undefined"==typeof document?null:document;function Ad(e,t,n){var r=Cd;if(r&&"string"==typeof t&&t){var a=mt(t);a='link[rel="'+e+'"][href="'+a+'"]',"string"==typeof n&&(a+='[crossorigin="'+n+'"]'),xd.has(a)||(xd.add(a),e={rel:e,crossOrigin:n,href:t},null===r.querySelector(a)&&(ed(t=r.createElement("link"),"link",e),Ge(t),r.head.appendChild(t)))}}function Ld(e,t,n,r){var a,o,l,s,c=(c=H.current)?_d(c):null;if(!c)throw Error(i(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof n.precedence&&"string"==typeof n.href?(t=Td(n.href),(r=(n=He(c).hoistableStyles).get(t))||(r={type:"style",instance:null,count:0,state:null},n.set(t,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===n.rel&&"string"==typeof n.href&&"string"==typeof n.precedence){e=Td(n.href);var u=He(c).hoistableStyles,d=u.get(e);if(d||(c=c.ownerDocument||c,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,d),(u=c.querySelector(jd(e)))&&!u._p&&(d.instance=u,d.state.loading=5),Sd.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Sd.set(e,n),u||(a=c,o=e,l=n,s=d.state,a.querySelector('link[rel="preload"][as="style"]['+o+"]")?s.loading=1:(o=a.createElement("link"),s.preload=o,o.addEventListener("load",function(){return s.loading|=1}),o.addEventListener("error",function(){return s.loading|=2}),ed(o,"link",l),Ge(o),a.head.appendChild(o))))),t&&null===r)throw Error(i(528,""));return d}if(t&&null!==r)throw Error(i(529,""));return null;case"script":return t=n.async,"string"==typeof(n=n.src)&&t&&"function"!=typeof t&&"symbol"!=typeof t?(t=Md(n),(r=(n=He(c).hoistableScripts).get(t))||(r={type:"script",instance:null,count:0,state:null},n.set(t,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Td(e){return'href="'+mt(e)+'"'}function jd(e){return'link[rel="stylesheet"]['+e+"]"}function Pd(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function Md(e){return'[src="'+mt(e)+'"]'}function Nd(e){return"script[async]"+e}function Od(e,t,n){if(t.count++,null===t.instance)switch(t.type){case"style":var r=e.querySelector('style[data-href~="'+mt(n.href)+'"]');if(r)return t.instance=r,Ge(r),r;var a=f({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return Ge(r=(e.ownerDocument||e).createElement("style")),ed(r,"style",a),Rd(r,n.precedence,e),t.instance=r;case"stylesheet":a=Td(n.href);var o=e.querySelector(jd(a));if(o)return t.state.loading|=4,t.instance=o,Ge(o),o;r=Pd(n),(a=Sd.get(a))&&Dd(r,a),Ge(o=(e.ownerDocument||e).createElement("link"));var l=o;return l._p=new Promise(function(e,t){l.onload=e,l.onerror=t}),ed(o,"link",r),t.state.loading|=4,Rd(o,n.precedence,e),t.instance=o;case"script":return o=Md(n.src),(a=e.querySelector(Nd(o)))?(t.instance=a,Ge(a),a):(r=n,(a=Sd.get(o))&&Bd(r=f({},n),a),Ge(a=(e=e.ownerDocument||e).createElement("script")),ed(a,"link",r),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(i(443,t.type))}else"stylesheet"===t.type&&!(4&t.state.loading)&&(r=t.instance,t.state.loading|=4,Rd(r,n.precedence,e));return t.instance}function Rd(e,t,n){for(var r=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=r.length?r[r.length-1]:null,o=a,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===t)o=l;else if(o!==a)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function Dd(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function Bd(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var Fd=null;function Id(e,t,n){if(null===Fd){var r=new Map,a=Fd=new Map;a.set(n,r)}else(r=(a=Fd).get(n))||(r=new Map,a.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),a=0;a<n.length;a++){var o=n[a];if(!(o[Ie]||o[Me]||"link"===e&&"stylesheet"===o.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==o.namespaceURI){var i=o.getAttribute(t)||"";i=e+i;var l=r.get(i);l?l.push(o):r.set(i,[o])}}return r}function zd(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,"title"===t?e.querySelector("head > title"):null)}function $d(e){return!!("stylesheet"!==e.type||3&e.state.loading)}var Ud=null;function qd(){}function Hd(){if(this.count--,0===this.count)if(this.stylesheets)Vd(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var Gd=null;function Vd(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,Gd=new Map,t.forEach(Wd,e),Gd=null,Hd.call(e))}function Wd(e,t){if(!(4&t.state.loading)){var n=Gd.get(e);if(n)var r=n.get(null);else{n=new Map,Gd.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<a.length;o++){var i=a[o];"LINK"!==i.nodeName&&"not all"===i.getAttribute("media")||(n.set(i.dataset.precedence,i),r=i)}r&&n.set(null,r)}i=(a=t.instance).getAttribute("data-precedence"),(o=n.get(i)||r)===r&&n.set(null,a),n.set(i,a),this.count++,r=Hd.bind(this),a.addEventListener("load",r),a.addEventListener("error",r),o?o.parentNode.insertBefore(a,o.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(a,e.firstChild),t.state.loading|=4}}var Qd={$$typeof:k,Provider:null,Consumer:null,_currentValue:D,_currentValue2:D,_threadCount:0};function Kd(e,t,n,r,a,o,i,l){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=_e(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=_e(0),this.hiddenUpdates=_e(null),this.identifierPrefix=r,this.onUncaughtError=a,this.onCaughtError=o,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=l,this.incompleteTransitions=new Map}function Yd(e,t,n,r,a,o,i,l,s,c,u,d){return e=new Kd(e,t,n,i,l,s,c,d),t=1,!0===o&&(t|=24),o=Dr(3,null,null,t),e.current=o,o.stateNode=e,(t=Na()).refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:r,isDehydrated:n,cache:t},no(o),e}function Xd(e){return e?e=Or:Or}function Zd(e,t,n,r,a,o){a=Xd(a),null===r.context?r.context=a:r.pendingContext=a,(r=ao(t)).payload={element:n},null!==(o=void 0===o?null:o)&&(r.callback=o),null!==(n=oo(e,r,t))&&(Dc(n,0,t),io(n,e,t))}function Jd(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ef(e,t){Jd(e,t),(e=e.alternate)&&Jd(e,t)}function tf(e){if(13===e.tag){var t=Pr(e,67108864);null!==t&&Dc(t,0,67108864),ef(e,67108864)}}var nf=!0;function rf(e,t,n,r){var a=O.T;O.T=null;var o=R.p;try{R.p=2,of(e,t,n,r)}finally{R.p=o,O.T=a}}function af(e,t,n,r){var a=O.T;O.T=null;var o=R.p;try{R.p=8,of(e,t,n,r)}finally{R.p=o,O.T=a}}function of(e,t,n,r){if(nf){var a=lf(r);if(null===a)Uu(e,t,r,sf,n),vf(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return ff=wf(ff,e,t,n,r,a),!0;case"dragenter":return pf=wf(pf,e,t,n,r,a),!0;case"mouseover":return hf=wf(hf,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return mf.set(o,wf(mf.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,gf.set(o,wf(gf.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(vf(e,r),4&t&&-1<yf.indexOf(e)){for(;null!==a;){var o=Ue(a);if(null!==o)switch(o.tag){case 3:if((o=o.stateNode).current.memoizedState.isDehydrated){var i=ye(o.pendingLanes);if(0!==i){var l=o;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-pe(i);l.entanglements[1]|=s,i&=~s}Su(o),!(6&nc)&&(Sc=te()+500,xu(0,!1))}}break;case 13:null!==(l=Pr(o,2))&&Dc(l,0,2),$c(),ef(o,2)}if(null===(o=lf(r))&&Uu(e,t,r,sf,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Uu(e,t,r,null,n)}}function lf(e){return cf(e=Pt(e))}var sf=null;function cf(e){if(sf=null,null!==(e=$e(e))){var t=s(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=c(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return sf=e,null}function uf(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(ne()){case re:return 2;case ae:return 8;case oe:case ie:return 32;case le:return 268435456;default:return 32}default:return 32}}var df=!1,ff=null,pf=null,hf=null,mf=new Map,gf=new Map,bf=[],yf="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function vf(e,t){switch(e){case"focusin":case"focusout":ff=null;break;case"dragenter":case"dragleave":pf=null;break;case"mouseover":case"mouseout":hf=null;break;case"pointerover":case"pointerout":mf.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":gf.delete(t.pointerId)}}function wf(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=Ue(t))&&tf(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function kf(e){var t=$e(e.target);if(null!==t){var n=s(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=c(n)))return e.blockedOn=t,void function(e,t){var n=R.p;try{return R.p=e,t()}finally{R.p=n}}(e.priority,function(){if(13===n.tag){var e=Oc();e=Le(e);var t=Pr(n,e);null!==t&&Dc(t,0,e),ef(n,e)}})}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Sf(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=lf(e.nativeEvent);if(null!==n)return null!==(t=Ue(n))&&tf(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);jt=r,n.target.dispatchEvent(r),jt=null,t.shift()}return!0}function xf(e,t,n){Sf(e)&&n.delete(t)}function _f(){df=!1,null!==ff&&Sf(ff)&&(ff=null),null!==pf&&Sf(pf)&&(pf=null),null!==hf&&Sf(hf)&&(hf=null),mf.forEach(xf),gf.forEach(xf)}function Ef(e,t){e.blockedOn===t&&(e.blockedOn=null,df||(df=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,_f)))}var Cf=null;function Af(e){Cf!==e&&(Cf=e,r.unstable_scheduleCallback(r.unstable_NormalPriority,function(){Cf===e&&(Cf=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],a=e[t+2];if("function"!=typeof r){if(null===cf(r||n))continue;break}var o=Ue(n);null!==o&&(e.splice(t,3),t-=3,Pi(o,{pending:!0,data:a,method:n.method,action:r},r,a))}}))}function Lf(e){function t(t){return Ef(t,e)}null!==ff&&Ef(ff,e),null!==pf&&Ef(pf,e),null!==hf&&Ef(hf,e),mf.forEach(t),gf.forEach(t);for(var n=0;n<bf.length;n++){var r=bf[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<bf.length&&null===(n=bf[0]).blockedOn;)kf(n),null===n.blockedOn&&bf.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<n.length;r+=3){var a=n[r],o=n[r+1],i=a[Ne]||null;if("function"==typeof o)i||Af(n);else if(i){var l=null;if(o&&o.hasAttribute("formAction")){if(a=o,i=o[Ne]||null)l=i.formAction;else if(null!==cf(a))continue}else l=i.action;"function"==typeof l?n[r+1]=l:(n.splice(r,3),r-=3),Af(n)}}}function Tf(e){this._internalRoot=e}function jf(e){this._internalRoot=e}jf.prototype.render=Tf.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(i(409));Zd(t.current,Oc(),e,t,null,null)},jf.prototype.unmount=Tf.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;Zd(e.current,2,null,e,null,null),$c(),t[Oe]=null}},jf.prototype.unstable_scheduleHydration=function(e){if(e){var t=je();e={blockedOn:null,target:e,priority:t};for(var n=0;n<bf.length&&0!==t&&t<bf[n].priority;n++);bf.splice(n,0,e),0===n&&kf(e)}};var Pf=a.version;if("19.1.1"!==Pf)throw Error(i(527,Pf,"19.1.1"));R.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw e=Object.keys(e).join(","),Error(i(268,e))}return e=function(e){var t=e.alternate;if(!t){if(null===(t=s(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 u(a),e;if(o===r)return u(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,c=a.child;c;){if(c===n){l=!0,n=a,r=o;break}if(c===r){l=!0,r=a,n=o;break}c=c.sibling}if(!l){for(c=o.child;c;){if(c===n){l=!0,n=o,r=a;break}if(c===r){l=!0,r=o,n=a;break}c=c.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}(t),e=null===(e=null!==e?d(e):null)?null:e.stateNode};var Mf={bundleType:0,version:"19.1.1",rendererPackageName:"react-dom",currentDispatcherRef:O,reconcilerVersion:"19.1.1"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var Nf=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Nf.isDisabled&&Nf.supportsFiber)try{ue=Nf.inject(Mf),de=Nf}catch(Rf){}}t.createRoot=function(e,t){if(!l(e))throw Error(i(299));var n=!1,r="",a=yl,o=vl,s=wl;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(a=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(s=t.onRecoverableError),void 0!==t.unstable_transitionCallbacks&&t.unstable_transitionCallbacks),t=Yd(e,1,!1,null,0,n,r,a,o,s,0,null),e[Oe]=t.current,zu(e),new Tf(t)},t.hydrateRoot=function(e,t,n){if(!l(e))throw Error(i(299));var r=!1,a="",o=yl,s=vl,c=wl,u=null;return null!=n&&(!0===n.unstable_strictMode&&(r=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(s=n.onCaughtError),void 0!==n.onRecoverableError&&(c=n.onRecoverableError),void 0!==n.unstable_transitionCallbacks&&n.unstable_transitionCallbacks,void 0!==n.formState&&(u=n.formState)),(t=Yd(e,1,!0,t,0,r,a,o,s,c,0,u)).context=Xd(null),n=t.current,(a=ao(r=Le(r=Oc()))).callback=null,oo(n,a,r),n=r,t.current.lanes=n,Ee(t,n),Su(t),e[Oe]=t.current,zu(e),new jf(t)},t.version="19.1.1"},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>s});var r=n(6540),a=n(4848);function o(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 i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function c({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal <Translate> children",e),new Error("The Docusaurus <Translate> component only accept simple string values");const r=l({message:e,id:t});return(0,a.jsx)(a.Fragment,{children:o(r,n)})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>m,u:()=>s});var r=n(6540),a=n(205),o=n(3109),i=n(4848);const l="ease-in-out";function s({initialState:e}){const[t,n]=(0,r.useState)(e??!1),a=(0,r.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:a}}const c={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?c:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f({collapsibleRef:e,collapsed:t,animation:n}){const a=(0,r.useRef)(!1);(0,r.useEffect)(()=>{const r=e.current;function i(){const e=r.scrollHeight,t=n?.duration??function(e){if((0,o.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(e);return{transition:`height ${t}ms ${n?.easing??l}`,height:`${e}px`}}function s(){const e=i();r.style.transition=e.transition,r.style.height=e.height}if(!a.current)return d(r,t),void(a.current=!0);return r.style.willChange="height",function(){const e=requestAnimationFrame(()=>{t?(s(),requestAnimationFrame(()=>{r.style.height=c.height,r.style.overflow=c.overflow})):(r.style.display="block",requestAnimationFrame(()=>{s()}))});return()=>cancelAnimationFrame(e)}()},[e,t,n])}function p({as:e="div",collapsed:t,children:n,animation:a,onCollapseTransitionEnd:o,className:l}){const s=(0,r.useRef)(null);return f({collapsibleRef:s,collapsed:t,animation:a}),(0,i.jsx)(e,{ref:s,onTransitionEnd:e=>{"height"===e.propertyName&&(d(s.current,t),o?.(t))},className:l,children:n})}function h({collapsed:e,...t}){const[n,o]=(0,r.useState)(!e),[l,s]=(0,r.useState)(e);return(0,a.A)(()=>{e||o(!0)},[e]),(0,a.A)(()=>{n&&s(e)},[n,e]),n?(0,i.jsx)(p,{...t,collapsed:l}):null}function m({lazy:e,...t}){const n=e?h:p;return(0,i.jsx)(n,{...t})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(5260),a=n(4848);function o({locale:e,version:t,tag:n}){const o=e;return(0,a.jsxs)(r.A,{children:[e&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,a.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:language",content:o}),t&&(0,a.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>p,sC:()=>L,AO:()=>f});var r=n(8168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}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),c=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,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(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"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.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function h(){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 m=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),m||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,S=void 0===k?g:k,x=i.keyLength,_=void 0===x?6:x,E=e.basename?d(s(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 E&&(o=u(o,E)),p(o,r,n)}function A(){return Math.random().toString(36).substr(2,_)}var L=h();function T(e){(0,r.A)($,e),$.length=n.length,L.notifyListeners($.location,$.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function P(){N(C(v()))}var M=!1;function N(e){if(M)M=!1,T();else{L.confirmTransitionTo(e,"POP",S,function(t){t?T({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&&(M=!0,B(a))}(e)})}}var O=C(v()),R=[O.key];function D(e){return E+f(e)}function B(e){n.go(e)}var F=0;function I(e){1===(F+=e)&&1===e?(window.addEventListener(b,j),o&&window.addEventListener(y,P)):0===F&&(window.removeEventListener(b,j),o&&window.removeEventListener(y,P))}var z=!1;var $={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var r="PUSH",o=p(e,t,A(),$.location);L.confirmTransitionTo(o,r,S,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=R.indexOf($.location.key),c=R.slice(0,s+1);c.push(o.key),R=c,T({action:r,location:o})}else window.location.href=t}})},replace:function(e,t){var r="REPLACE",o=p(e,t,A(),$.location);L.confirmTransitionTo(o,r,S,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=R.indexOf($.location.key);-1!==s&&(R[s]=o.key),T({action:r,location:o})}else window.location.replace(t)}})},go:B,goBack:function(){B(-1)},goForward:function(){B(1)},block:function(e){void 0===e&&(e=!1);var t=L.setPrompt(e);return z||(I(1),z=!0),function(){return z&&(z=!1,I(-1)),t()}},listen:function(e){var t=L.appendListener(e);return I(1),function(){I(-1),t()}}};return $}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:s},slash:{encodePath:s,decodePath:s}};function x(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function _(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function E(e){window.location.replace(x(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),m||(0,l.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",y=S[c],v=y.encodePath,w=y.decodePath;function C(){var e=w(_());return b&&(e=u(e,b)),p(e)}var A=h();function L(e){(0,r.A)(z,e),z.length=t.length,A.notifyListeners(z.location,z.action)}var T=!1,j=null;function P(){var e,t,n=_(),r=v(n);if(n!==r)E(r);else{var a=C(),i=z.location;if(!T&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===f(a))return;j=null,function(e){if(T)T=!1,L();else{var t="POP";A.confirmTransitionTo(e,t,o,function(n){n?L({action:t,location:e}):function(e){var t=z.location,n=R.lastIndexOf(f(t));-1===n&&(n=0);var r=R.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(T=!0,D(a))}(e)})}}(a)}}var M=_(),N=v(M);M!==N&&E(N);var O=C(),R=[f(O)];function D(e){t.go(e)}var B=0;function F(e){1===(B+=e)&&1===e?window.addEventListener(k,P):0===B&&window.removeEventListener(k,P)}var I=!1;var z={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=x(window.location.href)),n+"#"+v(b+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);A.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=v(b+t);if(_()!==a){j=t,function(e){window.location.hash=e}(a);var o=R.lastIndexOf(f(z.location)),i=R.slice(0,o+1);i.push(t),R=i,L({action:n,location:r})}else L()}})},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);A.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=v(b+t);_()!==a&&(j=t,E(a));var o=R.indexOf(f(z.location));-1!==o&&(R[o]=t),L({action:n,location:r})}})},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return I||(F(1),I=!0),function(){return I&&(I=!1,F(-1)),t()}},listen:function(e){var t=A.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function A(e,t,n){return Math.min(Math.max(e,t),n)}function L(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,c=void 0===s?6:s,u=h();function d(e){(0,r.A)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function m(){return Math.random().toString(36).substr(2,c)}var g=A(l,0,o.length-1),b=o.map(function(e){return p(e,void 0,"string"==typeof e?m():e.key||m())}),y=f;function v(e){var t=A(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,function(e){e?d({action:"POP",location:r,index:t}):d()})}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:y,push:function(e,t){var r="PUSH",a=p(e,t,m(),w.location);u.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=p(e,t,m(),w.location);u.confirmTransitionTo(a,r,n,function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))})},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},1561:(e,t,n)=>{"use strict";n.d(t,{A:()=>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)}}},1635:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>R,__assign:()=>o,__asyncDelegator:()=>E,__asyncGenerator:()=>_,__asyncValues:()=>C,__await:()=>x,__awaiter:()=>h,__classPrivateFieldGet:()=>M,__classPrivateFieldIn:()=>O,__classPrivateFieldSet:()=>N,__createBinding:()=>g,__decorate:()=>l,__disposeResources:()=>B,__esDecorate:()=>c,__exportStar:()=>b,__extends:()=>a,__generator:()=>m,__importDefault:()=>P,__importStar:()=>j,__makeTemplateObject:()=>A,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>F,__runInitializers:()=>u,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>S,__spreadArrays:()=>k,__values:()=>y,default:()=>I});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 c(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,c="getter"===s?"get":"setter"===s?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,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[c],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.unshift(l)}else(l=i(g))&&("field"===s?a.unshift(l):d[c]=l)}u&&Object.defineProperty(u,r.name,d),f=!0}function u(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={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,l[0]&&(o=0)),o;)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 o.label++,{value:l[1],done:!1};case 5:o.label++,r=l[1],l=[0];continue;case 7:l=o.ops.pop(),o.trys.pop();continue;default:if(!(a=o.trys,(a=a.length>0&&a[a.length-1])||6!==l[0]&&2!==l[0])){o=0;continue}if(3===l[0]&&(!a||l[1]>a[0]&&l[1]<a[3])){o.label=l[1];break}if(6===l[0]&&o.label<a[1]){o.label=a[1],a=l;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(l);break}a[2]&&o.ops.pop(),o.trys.pop();continue}l=t.call(e,o)}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 b(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||g(t,e,n)}function y(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 v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(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(v(arguments[t]));return e}function k(){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 S(e,t,n){if(n||2===arguments.length)for(var r,a=0,o=t.length;a<o;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function x(e){return this instanceof x?(this.v=e,this):new x(e)}function _(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),i("next"),i("throw"),i("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function i(e,t){a[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{(n=a[e](t)).value instanceof x?Promise.resolve(n.value.v).then(s,c):u(o[0][2],n)}catch(r){u(o[0][3],r)}var n}function s(e){l("next",e)}function c(e){l("throw",e)}function u(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function E(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:x(e[r](t)),done:!1}:a?a(t):t}:a}}function 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=y(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){(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 A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var L=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},T=function(e){return T=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},T(e)};function j(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=T(e),r=0;r<n.length;r++)"default"!==n[r]&&g(t,e,n[r]);return L(t,e),t}function P(e){return e&&e.__esModule?e:{default:e}}function M(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 N(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 O(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)}function R(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var r,a;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(a=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");a&&(r=function(){try{a.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var D="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function B(e){function t(t){e.error=e.hasError?new D(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function a(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(a);if(n.dispose){var o=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(o).then(a,function(e){return t(e),a()})}else r|=1}catch(i){t(i)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function F(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,a,o){return n?t?".jsx":".js":!r||a&&o?r+a+"."+o.toLowerCase()+"js":e}):e}const I={__extends:a,__assign:o,__rest:i,__decorate:l,__param:s,__esDecorate:c,__runInitializers:u,__propKey:d,__setFunctionName:f,__metadata:p,__awaiter:h,__generator:m,__createBinding:g,__exportStar:b,__values:y,__read:v,__spread:w,__spreadArrays:k,__spreadArray:S,__await:x,__asyncGenerator:_,__asyncDelegator:E,__asyncValues:C,__makeTemplateObject:A,__importStar:j,__importDefault:P,__classPrivateFieldGet:M,__classPrivateFieldSet:N,__classPrivateFieldIn:O,__addDisposableResource:R,__disposeResources:B,__rewriteRelativeImportExtension:F}},1656:(e,t,n)=>{"use strict";n.d(t,{A:()=>At});var r=n(6540),a=n(4164),o=n(7489),i=n(5500),l=n(6347),s=n(1312),c=n(5062),u=n(4848);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)(e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&f(e.current)}),{containerRef:e,onClick:n}}const h=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=p();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(7559),b=n(4090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(m,{className:y.skipToContent})}var w=n(6342),k=n(5041);function S({width:e=21,height:t=21,color:n="currentColor",strokeWidth:r=1.2,className:a,...o}){return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...o,children:(0,u.jsx)("g",{stroke:n,strokeWidth:r,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const x={closeButton:"closeButton_CVFx"};function _(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",x.closeButton,e.className),children:(0,u.jsx)(S,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.M)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:i}=e;return(0,u.jsxs)("div",{className:(0,a.A)(g.G.announcementBar.container,A.announcementBar),style:{backgroundColor:r,color:o},role:"banner",children:[i&&(0,u.jsx)("div",{className:A.announcementBarPlaceholder}),(0,u.jsx)(C,{className:A.announcementBarContent}),i&&(0,u.jsx)(_,{onClick:n,className:A.announcementBarClose})]})}var T=n(9876),j=n(3104);var P=n(9532),M=n(5600);const N=r.createContext(null);function O({children:e}){const t=function(){const e=(0,T.M)(),t=(0,M.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.ZC)(o);return(0,r.useEffect)(()=>{o&&!i&&a(!0)},[o,i]),(0,r.useEffect)(()=>{o?e.shown||a(!0):a(!1)},[e.shown,o]),(0,r.useMemo)(()=>[n,a],[n])}();return(0,u.jsx)(N.Provider,{value:t,children:e})}function R(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(N);if(!e)throw new P.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)(()=>n(!1),[n]),o=(0,M.YL)();return(0,r.useMemo)(()=>({shown:t,hide:a,content:R(o)}),[a,o,t])}function B(e){return parseInt(r.version.split(".")[0],10)<19?{inert:e?"":void 0}:{inert:e}}function F({children:e,inert:t}){return(0,u.jsx)("div",{className:(0,a.A)(g.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...B(t),children:e})}function I({header:e,primaryMenu:t,secondaryMenu:n}){const{shown:r}=D();return(0,u.jsxs)("div",{className:(0,a.A)(g.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,u.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":r}),children:[(0,u.jsx)(F,{inert:r,children:t}),(0,u.jsx)(F,{inert:!r,children:n})]})]})}var z=n(5293),$=n(2303);function U(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function q(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}function H(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}const G="toggle_vylO",V="toggleButton_gllP",W="toggleIcon_g3eP",Q="systemToggleIcon_QzmC",K="lightToggleIcon_pyhR",Y="darkToggleIcon_wfgR",X="toggleButtonDisabled_aARS";function Z(e){switch(e){case null:return(0,s.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw new Error(`unexpected color mode ${e}`)}}function J(e){return(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:Z(e)})}function ee(){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(U,{"aria-hidden":!0,className:(0,a.A)(W,K)}),(0,u.jsx)(q,{"aria-hidden":!0,className:(0,a.A)(W,Y)}),(0,u.jsx)(H,{"aria-hidden":!0,className:(0,a.A)(W,Q)})]})}function te({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:r,onChange:o}){const i=(0,$.A)();return(0,u.jsx)("div",{className:(0,a.A)(G,e),children:(0,u.jsx)("button",{className:(0,a.A)("clean-btn",V,!i&&X,t),type:"button",onClick:()=>o(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw new Error(`unexpected color mode ${e}`)}}(r,n)),disabled:!i,title:Z(r),"aria-label":J(r),children:(0,u.jsx)(ee,{})})})}const ne=r.memo(te),re={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function ae({className:e}){const t=(0,w.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:r}=(0,w.p)().colorMode,{colorModeChoice:a,setColorMode:o}=(0,z.G)();return n?null:(0,u.jsx)(ne,{className:e,buttonClassName:"dark"===t?re.darkNavbarColorModeToggle:void 0,respectPrefersColorScheme:r,value:a,onChange:o})}var oe=n(3465);function ie(){return(0,u.jsx)(oe.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function le(){const e=(0,T.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(S,{color:"var(--ifm-color-emphasis-600)"})})}function se(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(ie,{}),(0,u.jsx)(ae,{className:"margin-right--md"}),(0,u.jsx)(le,{})]})}var ce=n(8774),ue=n(6025),de=n(6654);function fe(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var pe=n(3186);function he({activeBasePath:e,activeBaseRegex:t,to:n,href:r,label:a,html:o,isDropdownLink:i,prependBaseUrlToHref:l,...s}){const c=(0,ue.Ay)(n),d=(0,ue.Ay)(e),f=(0,ue.Ay)(r,{forcePrependBaseUrl:!0}),p=a&&r&&!(0,de.A)(r),h=o?{dangerouslySetInnerHTML:{__html:o}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,p&&(0,u.jsx)(pe.A,{...i&&{width:12,height:12}})]})};return r?(0,u.jsx)(ce.A,{href:l?f:r,...s,...h}):(0,u.jsx)(ce.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?fe(t,n.pathname):n.pathname.startsWith(d)},...s,...h})}function me({className:e,isDropdownItem:t,...n}){return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(he,{className:(0,a.A)("menu__link",e),...n})})}function ge({className:e,isDropdownItem:t=!1,...n}){const r=(0,u.jsx)(he,{className:(0,a.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,u.jsx)("li",{children:r}):r}function be({mobile:e=!1,position:t,...n}){const r=e?me:ge;return(0,u.jsx)(r,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var ye=n(1422),ve=n(9169),we=n(4586);const ke="dropdownNavbarItemMobile_J0Sd";function Se(e,t){return e.some(e=>function(e,t){return!!(0,ve.ys)(e.to,t)||!!fe(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t))}function xe({collapsed:e,onClick:t}){return(0,u.jsx)("button",{"aria-label":e?(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function _e({items:e,className:t,position:n,onClick:o,...i}){const s=function(){const{siteConfig:{baseUrl:e}}=(0,we.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),c=(0,ve.ys)(i.to,s),d=Se(e,s),{collapsed:f,toggleCollapsed:p}=function({active:e}){const{collapsed:t,toggleCollapsed:n,setCollapsed:a}=(0,ye.u)({initialState:()=>!e});return(0,r.useEffect)(()=>{e&&a(!1)},[e,a]),{collapsed:t,toggleCollapsed:n}}({active:c||d}),h=i.to?void 0:"#";return(0,u.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,u.jsxs)("div",{className:(0,a.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,u.jsx)(he,{role:"button",className:(0,a.A)(ke,"menu__link menu__link--sublist",t),href:h,...i,onClick:e=>{"#"===h&&e.preventDefault(),p()},children:i.children??i.label}),(0,u.jsx)(xe,{collapsed:f,onClick:e=>{e.preventDefault(),p()}})]}),(0,u.jsx)(ye.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:e.map((e,t)=>(0,r.createElement)(Ie,{mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active",...e,key:t}))})]})}function Ee({items:e,position:t,className:n,onClick:o,...i}){const l=(0,r.useRef)(null),[s,c]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[l]),(0,u.jsxs)("div",{ref:l,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":s}),children:[(0,u.jsx)(he,{"aria-haspopup":"true","aria-expanded":s,role:"button",href:i.to?void 0:"#",className:(0,a.A)("navbar__link",n),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),c(!s))},children:i.children??i.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,r.createElement)(Ie,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function Ce({mobile:e=!1,...t}){const n=e?_e:Ee;return(0,u.jsx)(n,{...t})}var Ae=n(2131);function Le({width:e=20,height:t=20,...n}){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const Te="iconLanguage_nlXk";var je=n(418);const Pe={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Me({children:e,className:t}){return(0,u.jsx)("div",{className:(0,a.A)(t,Pe.navbarSearchContainer),children:e})}var Ne=n(4070),Oe=n(6972);var Re=n(3886);function De({docsPluginId:e,configs:t}){return function(e,t){if(t){const n=new Map(e.map(e=>[e.name,e])),r=(t,r)=>{const a=n.get(t);if(!a)throw new Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config.\nAvailable version names:\n- ${e.map(e=>`${e.name}`).join("\n- ")}`);return{version:a,label:r?.label??a.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}return e.map(e=>({version:e,label:e.label}))}((0,Ne.jh)(e),t)}function Be(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find(t=>t.id===e.mainDocId)}(e)}const Fe={default:be,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:r="",...a}){const{i18n:{currentLocale:o,locales:i,localeConfigs:c}}=(0,we.A)(),d=(0,Ae.o)(),{search:f,hash:p}=(0,l.zy)(),h=[...t,...i.map(t=>{const n=`${`pathname://${d.createUrl({locale:t,fullyQualified:!1})}`}${f}${p}${r}`;return{label:c[t].label,lang:c[t].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:t===o?e?"menu__link--active":"dropdown__link--active":""}}),...n],m=e?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[o].label;return(0,u.jsx)(Ce,{...a,mobile:e,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Le,{className:Te}),m]}),items:h})},search:function({mobile:e,className:t}){return e?null:(0,u.jsx)(Me,{className:t,children:(0,u.jsx)(je.A,{})})},dropdown:Ce,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:r=!1}){const o=r?"li":"div";return(0,u.jsx)(o,{className:(0,a.A)({navbar__item:!n&&!r,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...r}){const{activeDoc:a}=(0,Ne.zK)(n),o=(0,Oe.QB)(e,n),i=a?.path===o?.path;return null===o||o.unlisted&&!i?null:(0,u.jsx)(be,{exact:!0,...r,isActive:()=>i||!!a?.sidebar&&a.sidebar===o.sidebar,label:t??o.id,to:o.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...r}){const{activeDoc:a}=(0,Ne.zK)(n),o=(0,Oe.fW)(e,n).link;if(!o)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,u.jsx)(be,{exact:!0,...r,isActive:()=>a?.sidebar===e,label:t??o.label,to:o.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...r}){const a=(0,Oe.Vd)(n)[0],o=e??a.label,i=t??(e=>e.docs.find(t=>t.id===e.mainDocId))(a).path;return(0,u.jsx)(be,{...r,label:o,to:i})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:r,dropdownItemsAfter:a,versions:o,...i}){const{search:c,hash:d}=(0,l.zy)(),f=(0,Ne.zK)(t),{savePreferredVersionName:p}=(0,Re.g1)(t),h=De({docsPluginId:t,configs:o}),m=function({docsPluginId:e,versionItems:t}){return(0,Oe.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:h}),g=[...r,...h.map(function({version:e,label:t}){return{label:t,to:`${Be(e,f).path}${c}${d}`,isActive:()=>e===f.activeVersion,onClick:()=>p(e.name)}}),...a],b=e&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,y=e&&g.length>1?void 0:Be(m.version,f).path;return g.length<=1?(0,u.jsx)(be,{...i,mobile:e,label:b,to:y,isActive:n?()=>!1:void 0}):(0,u.jsx)(Ce,{...i,mobile:e,label:b,to:y,items:g,isActive:n?()=>!1:void 0})}};function Ie({type:e,...t}){const n=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(e,t),r=Fe[n];if(!r)throw new Error(`No NavbarItem component found for type "${e}".`);return(0,u.jsx)(r,{...t})}function ze(){const e=(0,T.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,r.createElement)(Ie,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function $e(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ue(){const e=0===(0,w.p)().navbar.items.length,t=D();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)($e,{onClick:()=>t.hide()}),t.content]})}function qe(){const e=(0,T.M)();return function(e=!0){(0,r.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender?(0,u.jsx)(I,{header:(0,u.jsx)(se,{}),primaryMenu:(0,u.jsx)(ze,{}),secondaryMenu:(0,u.jsx)(Ue,{})}):null}const He={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ge(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function Ve({children:e}){const{navbar:{hideOnScroll:t,style:n}}=(0,w.p)(),o=(0,T.M)(),{navbarRef:i,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)(e=>{null!==e&&(o.current=e.getBoundingClientRect().height)},[]);return(0,j.Mq)(({scrollY:t},r)=>{if(!e)return;if(t<o.current)return void n(!0);if(a.current)return void(a.current=!1);const i=r?.scrollY,l=document.documentElement.scrollHeight-o.current,s=window.innerHeight;i&&t>=i?n(!1):t+s<l&&n(!0)}),(0,c.$)(t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,u.jsxs)("nav",{ref:i,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)(g.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&[He.navbarHideable,!l&&He.navbarHidden],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":o.shown}),children:[e,(0,u.jsx)(Ge,{onClick:o.toggle}),(0,u.jsx)(qe,{})]})}var We=n(440);const Qe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Ke(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ye({error:e}){const t=(0,We.rA)(e).map(e=>e.message).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Qe.errorBoundaryError,children:t})}class Xe extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Ze="right";function Je({width:e=30,height:t=30,className:n,...r}){return(0,u.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...r,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function et(){const{toggle:e,shown:t}=(0,T.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(Je,{})})}const tt={colorModeToggle:"colorModeToggle_DEke"};function nt({items:e}){return(0,u.jsx)(u.Fragment,{children:e.map((e,t)=>(0,u.jsx)(Xe,{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}),children:(0,u.jsx)(Ie,{...e})},t))})}function rt({left:e,right:t}){return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:(0,a.A)(g.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,u.jsx)("div",{className:(0,a.A)(g.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function at(){const e=(0,T.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Ze)}return[e.filter(t),e.filter(e=>!t(e))]}(t),a=t.find(e=>"search"===e.type);return(0,u.jsx)(rt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(et,{}),(0,u.jsx)(ie,{}),(0,u.jsx)(nt,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(nt,{items:r}),(0,u.jsx)(ae,{className:tt.colorModeToggle}),!a&&(0,u.jsx)(Me,{children:(0,u.jsx)(je.A,{})})]})})}function ot(){return(0,u.jsx)(Ve,{children:(0,u.jsx)(at,{})})}function it({item:e}){const{to:t,href:n,label:r,prependBaseUrlToHref:o,className:i,...l}=e,s=(0,ue.Ay)(t),c=(0,ue.Ay)(n,{forcePrependBaseUrl:!0});return(0,u.jsxs)(ce.A,{className:(0,a.A)("footer__link-item",i),...n?{href:o?c:n}:{to:s},...l,children:[r,n&&!(0,de.A)(n)&&(0,u.jsx)(pe.A,{})]})}function lt({item:e}){return e.html?(0,u.jsx)("li",{className:(0,a.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(it,{item:e})},e.href??e.to)}function st({column:e}){return(0,u.jsxs)("div",{className:(0,a.A)(g.G.layout.footer.column,"col footer__col",e.className),children:[(0,u.jsx)("div",{className:"footer__title",children:e.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,u.jsx)(lt,{item:e},t))})]})}function ct({columns:e}){return(0,u.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,u.jsx)(st,{column:e},t))})}function ut(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function dt({item:e}){return e.html?(0,u.jsx)("span",{className:(0,a.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,u.jsx)(it,{item:e})}function ft({links:e}){return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(dt,{item:t}),e.length!==n+1&&(0,u.jsx)(ut,{})]},n))})})}function pt({links:e}){return function(e){return"title"in e[0]}(e)?(0,u.jsx)(ct,{columns:e}):(0,u.jsx)(ft,{links:e})}var ht=n(1122);const mt="footerLogoLink_BH7S";function gt({logo:e}){const{withBaseUrl:t}=(0,ue.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,u.jsx)(ht.A,{className:(0,a.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function bt({logo:e}){return e.href?(0,u.jsx)(ce.A,{href:e.href,className:mt,target:e.target,children:(0,u.jsx)(gt,{logo:e})}):(0,u.jsx)(gt,{logo:e})}function yt({copyright:e}){return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function vt({style:e,links:t,logo:n,copyright:r}){return(0,u.jsx)("footer",{className:(0,a.A)(g.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[t,(n||r)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:n}),r]})]})})}function wt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(vt,{style:a,links:n&&n.length>0&&(0,u.jsx)(pt,{links:n}),logo:r&&(0,u.jsx)(bt,{logo:r}),copyright:t&&(0,u.jsx)(yt,{copyright:t})})}const kt=r.memo(wt),St=(0,P.fM)([z.a,k.o,j.Tv,Re.VQ,i.Jx,function({children:e}){return(0,u.jsx)(M.y_,{children:(0,u.jsx)(T.e,{children:(0,u.jsx)(O,{children:e})})})}]);function xt({children:e}){return(0,u.jsx)(St,{children:e})}var _t=n(1107);function Et({error:e,tryAgain:t}){return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(_t.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Ke,{onClick:t,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Ye,{error:e})})]})})})}const Ct={mainWrapper:"mainWrapper_z2l0"};function At(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.J)(),(0,u.jsxs)(xt,{children:[(0,u.jsx)(i.be,{title:l,description:s}),(0,u.jsx)(v,{}),(0,u.jsx)(L,{}),(0,u.jsx)(ot,{}),(0,u.jsx)("div",{id:d,className:(0,a.A)(g.G.layout.main.container,g.G.wrapper.main,Ct.mainWrapper,r),children:(0,u.jsx)(o.A,{fallback:e=>(0,u.jsx)(Et,{...e}),children:t})}),!n&&(0,u.jsx)(kt,{})]})}},1682:(e,t,n)=>{"use strict";function r(e){return Array.from(new Set(e))}function a(e,t){const n={};let r=0;for(const a of e){const e=t(a,r);n[e]??=[],n[e].push(a),r+=1}return n}n.d(t,{$z:()=>a,sb:()=>r})},1765:(e,t,n)=>{"use strict";n.d(t,{My:()=>A,f4:()=>ne});var r,a,o,i,l,s,c,u=n(6540),d=n(4164),f=Object.create,p=Object.defineProperty,h=Object.defineProperties,m=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,S=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,x=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&S(e,n,t[n]);if(y)for(var n of y(t))k.call(t,n)&&S(e,n,t[n]);return e},_=(e,t)=>h(e,g(t)),E=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&y)for(var r of y(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(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 c=a[e];return a[e]=i,r.languages.DFS(r.languages,function(t,n){n===c&&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],c=r.util.type(s);"Object"!==c||o[i(s)]?"Array"!==c||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var 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){for(var t=[],n=e.head.next;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,u,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,b=!!m.lookbehind,y=!!m.greedy,v=m.alias;if(y&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var k=m.pattern||m,S=l.next,x=u;S!==t.tail&&!(d&&x>=d.reach);x+=S.value.length,S=S.next){var _=S.value;if(t.length>e.length)return;if(!(_ instanceof a)){var E,C=1;if(y){if(!(E=o(k,x,e,b))||E.index>=e.length)break;var A=E.index,L=E.index+E[0].length,T=x;for(T+=S.value.length;A>=T;)T+=(S=S.next).value.length;if(x=T-=S.value.length,S.value instanceof a)continue;for(var j=S;j!==t.tail&&(T<L||"string"==typeof j.value);j=j.next)C++,T+=j.value.length;C--,_=e.slice(x,T),E.index-=x}else if(!(E=o(k,0,_,b)))continue;A=E.index;var P=E[0],M=_.slice(0,A),N=_.slice(A+P.length),O=x+_.length;d&&O>d.reach&&(d.reach=O);var R=S.prev;if(M&&(R=s(t,R,M),x+=M.length),c(t,R,C),S=s(t,R,new a(f,g?r.tokenize(P,g):P,v,P)),N&&s(t,S,N),C>1){var D={cause:f+","+h,reach:O};i(e,t,n,S.prev,x,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function 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 c(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}();t.exports=n,n.default=n}},function(){return a||(0,r[b(r)[0]])((a={exports:{}}).exports,a),a.exports}),A=((e,t,n)=>(n=null!=e?f(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of b(t))w.call(e,a)||a===n||p(e,a,{get:()=>t[a],enumerable:!(r=m(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:p(n,"default",{value:e,enumerable:!0}),e)))(C());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"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},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;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:A.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:A.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},A.languages.insertBefore("markup","cdata",t)}}),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,o=A,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),c={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":c}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":c}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},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.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:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside: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,A.languages.actionscript=A.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),A.languages.actionscript["class-name"].alias="function",delete A.languages.actionscript.parameter,delete A.languages.actionscript["literal-property"],A.languages.markup&&A.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:A.languages.markup}}),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=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach(function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}})}}),t.addSupport(["java","javascript","php"],t)}(A),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+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,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(A),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(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("\\[(?:[^[\\]\"']|"+t.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":[t,{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}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{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|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(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,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)}),e.hooks.add("wrap",function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var c,u=e.languages[n];u?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e}),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}),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"])&&"("===u(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=u(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,p(u(0),"property-mutation"),0<a.length)){var l=f(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var c=t[s];"variable"===c.type&&0<=a.indexOf(c.content)&&p(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return}return 1}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(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),c=0,u={},d=(s=l(s.map(function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n}).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var o=0;o<n.length;o++){if(c>=d.length)return;var i,s,f,p,h,m,g,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[c],-1!==(g=(m="string"==typeof b?b:b.content).indexOf(i))&&(++c,s=m.substring(0,g),h=u[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(h,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,h),p=m.substring(g+i.length),h=[],s&&h.push(s),h.push(f),p&&(t(m=[p]),h.push.apply(h,m)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(h)),o+=h.length-1):b.content=h)):(g=b.content,Array.isArray(g)?t(g):t([g]))}}(s),new e.Token(i,s,"language-"+i,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 c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",function(t){t.language in c&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,l,c=n[r];"string"!=typeof c&&(o=c.content,Array.isArray(o)?"template-string"===c.type?(c=o[1],3===o.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,l=e.languages[c])&&(o[1]=s(i,l,c))):t(o):"string"!=typeof o&&t([o]))}}(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){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,function(){return n})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(A),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(A),A.languages.n4js=A.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),A.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),A.languages.n4jsd=A.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(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)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=l(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=l(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}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 l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)})}(A),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(A),A.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},A.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=A.languages.swift}),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(A),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,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.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){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,function(){return t});t=t.replace(/<self>/g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(A),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){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),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.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;((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>L,duotoneDark:()=>T,duotoneLight:()=>j,github:()=>P,gruvboxMaterialDark:()=>Q,gruvboxMaterialLight:()=>K,jettwaveDark:()=>H,jettwaveLight:()=>G,nightOwl:()=>M,nightOwlLight:()=>N,oceanicNext:()=>D,okaidia:()=>B,oneDark:()=>V,oneLight:()=>W,palenight:()=>F,shadesOfPurple:()=>I,synthwave84:()=>z,ultramin:()=>$,vsDark:()=>U,vsLight:()=>q});var L={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},T={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},j={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},P={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},M={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},N={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},O="#c5a5c5",R="#8dc891",D={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:O}},{types:["attr-value"],style:{color:R}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:R}},{types:["punctuation"],style:{color:R}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:O}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},B={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},I={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},z={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},H={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Q={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},K={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},Y=/\r\n|\r|\n/,X=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Z=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},J=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,c=t[i];const u=n[i][o];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=Z(c,u.type),u.alias&&(c=Z(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(Y),f=d.length;l.push({types:c,content:d[0]});for(let t=1;t<f;t++)X(l),s.push(l=[]),l.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return X(l),s},ee=(e,t)=>{const{plain:n}=e,r=e.styles.reduce((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{const n=x(x({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=_(x({},n),{backgroundColor:void 0}),r},te=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=ee(r,o),l=(e=>(0,u.useCallback)(t=>{var n=t,{className:r,style:a,line:o}=n,i=E(n,["className","style","line"]);const l=_(x({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=x(x({},l.style||{}),a)),l},[e]))(i),s=(e=>{const t=(0,u.useCallback)(({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map(t=>e[t]))},[e]);return(0,u.useCallback)(e=>{var n=e,{token:r,className:a,style:o}=n,i=E(n,["token","className","style"]);const l=_(x({},i),{className:(0,d.A)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(l.style=x(x({},l.style||{}),o)),l},[t])})(i),c=(({prism:e,code:t,grammar:n,language:r})=>(0,u.useMemo)(()=>{if(null==n)return J([t]);const a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),J(a.tokens)},[t,n,r,e]))({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:c,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ne=e=>(0,u.createElement)(te,_(x({},e),{prism:e.prism||A,theme:e.theme||U,code:e.code,language:e.language}))},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),a=n(6347),o=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,a.zy)(),c=(0,o.Ks)(s,{trailingSlash:n,baseUrl:e}),u=l===i?e:e.replace(`/${l}/`,"/"),d=c.replace(e,"");return{createUrl:function({locale:e,fullyQualified:n}){return`${n?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(e)}${d}`}}}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},2566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){if(""===t)return e;return e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},2654:e=>{"use strict";e.exports={}},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=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}},2799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=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,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case c:case f:case g:case m:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,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 S(e)||k(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===m},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(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===c||e.$$typeof===f||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},2831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>l});var r=n(6347),a=n(8168),o=n(6540);function i(e,t,n){return void 0===n&&(n=[]),e.some(function(e){var a=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.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.dO,n,e.map(function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})})):null}},2833:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var c=o[s];if(!l(c))return!1;var u=e[c],d=t[c];if(!1===(a=n?n.call(r,u,d,c):void 0)||void 0===a&&u!==d)return!1}return!0}},2892:(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,{A:()=>a})},2983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,c=n,c?a(s):o(s));var s,c;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;const r=n(2566);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},3001:(e,t,n)=>{"use strict";n.r(t)},3025:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l({children:e,version:t}){return(0,o.jsx)(i.Provider,{value:t,children:e})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(6540),a=n(4848);const o=r.createContext(null);function i({children:e,value:t}){const n=r.useContext(o),i=(0,r.useMemo)(()=>function({parent:e,value:t}){if(!e){if(!t)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in t))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return t}const n={...e.data,...t?.data};return{plugin:e.plugin,data:n}}({parent:n,value:t}),[n,t]);return(0,a.jsx)(o.Provider,{value:i,children:e})}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>c,gk:()=>p});var r=n(6540),a=n(8193),o=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function c({children:e}){const t=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)(()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}}),[])}();return(0,l.jsx)(s.Provider,{value:t,children:e})}function u(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t=[]){const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(d()),o=(0,i._q)(e);(0,r.useEffect)(()=>{const e=()=>{if(!n.current)return;const e=d();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 p(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"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?.()}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},3157:(e,t,n)=>{var r={"./":8722};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=3157},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(4848);const o="#theme-svg-external-link";function i({width:e=13.5,height:t=13.5}){return(0,a.jsx)("svg",{width:e,height:t,"aria-hidden":"true",className:r.iconExternalLink,children:(0,a.jsx)("use",{href:o})})}},3259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw 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(6540),s=[],c=[];var u=l.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then(function(e){return n.loading=!1,n.loaded=e,e}).catch(function(e){throw n.loading=!1,n.error=e,e}),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach(function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then(function(e){t.loaded[r]=e}).catch(function(e){t.error=e})})}catch(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 s.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&&Array.isArray(h.modules)&&h.modules.forEach(function(t){e.context.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,"contextType",u),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}return r(t,e),t.prototype.render=function(){return l.createElement(u.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then(function(){if(e.length)return b(e)})}m.Capture=g,m.preloadAll=function(){return new Promise(function(e,t){b(s).then(e,t)})},m.preloadReady=function(){return new Promise(function(e,t){b(c).then(e,e)})},e.exports=m},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(8774),a=n(6025),o=n(4586),i=n(6342),l=n(1122),s=n(4848);function c({logo:e,alt:t,imageClassName:n}){const r={light:(0,a.Ay)(e.src),dark:(0,a.Ay)(e.srcDark||e.src)},o=(0,s.jsx)(l.A,{className:e.className,sources:r,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,s.jsx)("div",{className:n,children:o}):o}function u(e){const{siteConfig:{title:t}}=(0,o.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...f}=e,p=(0,a.Ay)(l?.href||"/"),h=n?"":t,m=l?.alt??h;return(0,s.jsxs)(r.A,{to:p,...f,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(c,{logo:l,alt:m,imageClassName:u}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},3886:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>g,g1:()=>y});var r=n(6540),a=n(4070),o=n(7065),i=n(6342),l=n(679),s=n(9532),c=n(4848);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,l.Wf)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,l.Wf)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,l.Wf)(u(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.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)(()=>Object.keys(e),[e]),[o,l]=(0,r.useState)(()=>f(n));(0,r.useEffect)(()=>{l(function({pluginIds:e,versionPersistence:t,allDocsData:n}){function r(e){const r=d.read(e,t);return n[e].versions.some(e=>e.name===r)?{preferredVersionName:r}:(d.clear(e,t),{preferredVersionName:null})}return Object.fromEntries(e.map(e=>[e,r(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({children:e}){const t=h();return(0,c.jsx)(p.Provider,{value:t,children:e})}function g({children:e}){return(0,c.jsx)(m,{children:e})}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function y(e=o.W){const t=(0,a.ht)(e),[n,i]=b(),{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])}}},4054:e=>{"use strict";e.exports=JSON.parse('{"/BharatMLStack/blog-f21":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f9755c6e"},{"content":"fccc4c42"},{"content":"fccc4c42"},{"content":"a97f18d9"},{"content":"f2c141e4"}],"__props":"f994c8da"},"/BharatMLStack/blog/archive-dde":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"6479fb86"},"/BharatMLStack/blog/authors-f47":{"__comp":"621db11d","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","__props":"2d865531"},"/BharatMLStack/blog/post-five-0ec":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"3aeb33c7"},"/BharatMLStack/blog/post-one-e5f":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"09dd5be9"},"/BharatMLStack/blog/post-three-be5":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"79ae4ea7"},"/BharatMLStack/blog/post-three-85f":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"428aafcc"},"/BharatMLStack/blog/post-two-5a0":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"00b12b9c"},"/BharatMLStack/blog/tags-8af":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"7fa80e1c"},"/BharatMLStack/blog/tags/bharatmlstack-0c5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f9755c6e"},{"content":"fccc4c42"},{"content":"fccc4c42"},{"content":"a97f18d9"}],"__props":"aaabe254"},"/BharatMLStack/blog/tags/embedding-search-27a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fccc4c42"}],"__props":"be9e6e2d"},"/BharatMLStack/blog/tags/inferflow-9d9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"a97f18d9"}],"__props":"93f344c7"},"/BharatMLStack/blog/tags/interaction-store-c75":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"a97f18d9"},{"content":"f2c141e4"}],"__props":"3980073a"},"/BharatMLStack/blog/tags/llm-fa9":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f9755c6e"},{"content":"fccc4c42"}],"__props":"adb039a4"},"/BharatMLStack/blog/tags/meesho-e82":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f9755c6e"},{"content":"fccc4c42"},{"content":"fccc4c42"},{"content":"a97f18d9"},{"content":"f2c141e4"}],"__props":"1a64de69"},"/BharatMLStack/blog/tags/mlplatform-856":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f9755c6e"},{"content":"fccc4c42"},{"content":"fccc4c42"},{"content":"a97f18d9"},{"content":"f2c141e4"}],"__props":"479eb034"},"/BharatMLStack/blog/tags/model-inference-efa":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"fccc4c42"}],"__props":"08daf6b6"},"/BharatMLStack/blog/tags/online-feature-store-44b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f2c141e4"}],"__props":"3e1c5046"},"/BharatMLStack/blog/tags/tensorrt-llm-bec":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f9755c6e"},{"content":"fccc4c42"}],"__props":"99009a21"},"/BharatMLStack/blog/tags/vllm-bd3":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f9755c6e"},{"content":"fccc4c42"}],"__props":"6bb91276"},"/BharatMLStack/markdown-page-747":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"393be207"},"/BharatMLStack/-e34":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/BharatMLStack/-c10":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/BharatMLStack/-11b":{"__comp":"a7bd4aaa","__props":"4137b431"},"/BharatMLStack/-4d0":{"__comp":"a94703ab"},"/BharatMLStack/category/go-sdk-6b0":{"__comp":"14eb3368","__props":"c7b64fcc"},"/BharatMLStack/category/inferflow-e9f":{"__comp":"14eb3368","__props":"8dd2df60"},"/BharatMLStack/category/numerix-703":{"__comp":"14eb3368","__props":"50899a24"},"/BharatMLStack/category/online-feature-store-7ee":{"__comp":"14eb3368","__props":"8ac6191a"},"/BharatMLStack/category/python-sdk-1fd":{"__comp":"14eb3368","__props":"44d1c015"},"/BharatMLStack/category/quick-start-dff":{"__comp":"14eb3368","__props":"14064408"},"/BharatMLStack/category/sdks-532":{"__comp":"14eb3368","__props":"616111d3"},"/BharatMLStack/category/trufflebox-ui-5f5":{"__comp":"14eb3368","__props":"fcf4f6ca"},"/BharatMLStack/category/v100-ddd":{"__comp":"14eb3368","__props":"fa31f022"},"/BharatMLStack/inferflow/v1.0.0-018":{"__comp":"14eb3368","__props":"45a03d07"},"/BharatMLStack/inferflow/v1.0.0/architecture-46b":{"__comp":"17896441","content":"252a9097"},"/BharatMLStack/inferflow/v1.0.0/configuration-4ef":{"__comp":"17896441","content":"9d13045e"},"/BharatMLStack/inferflow/v1.0.0/functionalities-65a":{"__comp":"17896441","content":"0a89f5c9"},"/BharatMLStack/inferflow/v1.0.0/release-notes-cce":{"__comp":"17896441","content":"9aed321e"},"/BharatMLStack/numerix/v1.0.0-441":{"__comp":"14eb3368","__props":"3216e812"},"/BharatMLStack/numerix/v1.0.0/architecture-4d9":{"__comp":"17896441","content":"4df0e30b"},"/BharatMLStack/numerix/v1.0.0/benchmarks-eae":{"__comp":"17896441","content":"e8202a51"},"/BharatMLStack/numerix/v1.0.0/functionalities-f7b":{"__comp":"17896441","content":"2c62ead1"},"/BharatMLStack/numerix/v1.0.0/release-notes-77b":{"__comp":"17896441","content":"8ea48c46"},"/BharatMLStack/online-feature-store/v1.0.0-218":{"__comp":"14eb3368","__props":"72dc5b25"},"/BharatMLStack/online-feature-store/v1.0.0/architecture-0af":{"__comp":"17896441","content":"e66382f6"},"/BharatMLStack/online-feature-store/v1.0.0/benchmarks-889":{"__comp":"17896441","content":"67d4782a"},"/BharatMLStack/online-feature-store/v1.0.0/data-formats-46e":{"__comp":"17896441","content":"4caa95bf"},"/BharatMLStack/online-feature-store/v1.0.0/functionalities-415":{"__comp":"17896441","content":"c4822c4f"},"/BharatMLStack/online-feature-store/v1.0.0/release-notes-36c":{"__comp":"17896441","content":"d152284c"},"/BharatMLStack/quick-start/v1.0.0/quick-start-b19":{"__comp":"17896441","content":"0fff8dc8"},"/BharatMLStack/sdks/go/v1.0.0/feature_client-1df":{"__comp":"17896441","content":"4af50aac"},"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client-9dc":{"__comp":"17896441","content":"0413d9af"},"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client-1bc":{"__comp":"17896441","content":"ac51638e"},"/BharatMLStack/trufflebox-ui/v1.0.0/userguide-65e":{"__comp":"17896441","content":"176d210f"}}')},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>m,vT:()=>f,Gy:()=>u,HW:()=>g,ht:()=>d,r7:()=>h,jh:()=>p});var r=n(6347),a=n(4586),o=n(7065);function i(e,t={}){const n=function(){const{globalData:e}=(0,a.A)();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=function(e,t){return[...e.versions].sort((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0).find(e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1}))}(e,t),a=n?.docs.find(e=>!!(0,r.B6)(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={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>{try{return function(e,t=o.W,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})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function f(e={}){const t=u(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){const a=Object.entries(e).sort((e,t)=>t[1].path.localeCompare(e[1].path)).find(([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw 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 p(e){return d(e).versions}function h(e){const t=d(e);return l(t)}function m(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(6540);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)}},[])}},4146:(e,t,n)=>{"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=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=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||m&&m[b]||l&&l[b])){var y=f(n,b);try{c(t,b,y)}catch(v){}}}}return t}},4164:(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)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}n.d(t,{A:()=>a});const a=function(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},4363:(e,t,n)=>{"use strict";e.exports=n(2799)},4477:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],c=l+1,u=e[c];if(0>o(s,n))c<a&&0>o(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[l]=n,r=l);else{if(!(c<a&&0>o(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var c=[],u=[],d=1,f=null,p=3,h=!1,m=!1,g=!1,b=!1,y="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function k(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function S(e){if(g=!1,k(e),!m)if(null!==r(c))m=!0,_||(_=!0,x());else{var t=r(u);null!==t&&M(S,t.startTime-e)}}var x,_=!1,E=-1,C=5,A=-1;function L(){return!!b||!(t.unstable_now()-A<C)}function T(){if(b=!1,_){var e=t.unstable_now();A=e;var n=!0;try{e:{m=!1,g&&(g=!1,v(E),E=-1),h=!0;var o=p;try{t:{for(k(e),f=r(c);null!==f&&!(f.expirationTime>e&&L());){var i=f.callback;if("function"==typeof i){f.callback=null,p=f.priorityLevel;var l=i(f.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof l){f.callback=l,k(e),n=!0;break t}f===r(c)&&a(c),k(e)}else a(c);f=r(c)}if(null!==f)n=!0;else{var s=r(u);null!==s&&M(S,s.startTime-e),n=!1}}break e}finally{f=null,p=o,h=!1}n=void 0}}finally{n?x():_=!1}}}if("function"==typeof w)x=function(){w(T)};else if("undefined"!=typeof MessageChannel){var j=new MessageChannel,P=j.port2;j.port1.onmessage=T,x=function(){P.postMessage(null)}}else x=function(){y(T,0)};function M(e,n){E=y(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},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_requestPaint=function(){b=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>i?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(g?(v(E),E=-1):g=!0,M(S,o-i))):(e.sortIndex=l,n(c,e),m||h||(m=!0,_||(_=!0,x()))),e},t.unstable_shouldYield=L,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},4563:(e,t,n)=>{"use strict";n.d(t,{AL:()=>u,s$:()=>d});var r=n(6540),a=n(4586),o=n(6803),i=n(9532),l=n(4848);const s=({title:e,siteTitle:t,titleDelimiter:n})=>{const r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},c=(0,r.createContext)(null);function u({formatter:e,children:t}){return(0,l.jsx)(c.Provider,{value:e,children:t})}function d(){const e=function(){const e=(0,r.useContext)(c);if(null===e)throw new i.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,a.A)(),{title:n,titleDelimiter:l}=t,{plugin:u}=(0,o.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:l,plugin:u,defaultFormatter:s})}}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(6540),a=n(8193);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l({desktopBreakpoint:e=i}={}){const[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6988);function o(){return(0,r.useContext)(a.o)}},4625:(e,t,n)=>{"use strict";n.d(t,{I9:()=>d,Kd:()=>u,N_:()=>b,k2:()=>w});var r=n(6347),a=n(2892),o=n(6540),i=n(1513),l=n(8168),s=n(8587),c=n(1561),u=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.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var d=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.TM)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var f=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},h=function(e){return e},m=o.forwardRef;void 0===m&&(m=h);var g=m(function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=h!==m&&t||n,o.createElement("a",u)});var b=m(function(e,t){var n=e.component,a=void 0===n?g:n,u=e.replace,d=e.to,b=e.innerRef,y=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,function(e){e||(0,c.A)(!1);var n=e.history,r=p(f(d,e.location),e.location),s=r?n.createHref(r):"",g=(0,l.A)({},y,{href:s,navigate:function(){var t=f(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(u||r?n.replace:n.push)(t)}});return h!==m?g.ref=t||b:g.innerRef=b,o.createElement(a,g)})}),y=function(e){return e},v=o.forwardRef;void 0===v&&(v=y);var w=v(function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,d=e.activeStyle,h=e.className,m=e.exact,g=e.isActive,w=e.location,k=e.sensitive,S=e.strict,x=e.style,_=e.to,E=e.innerRef,C=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,function(e){e||(0,c.A)(!1);var n=w||e.location,i=p(f(_,n),n),s=i.pathname,A=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),L=A?(0,r.B6)(n.pathname,{path:A,exact:m,sensitive:k,strict:S}):null,T=!!(g?g(L,n):L),j="function"==typeof h?h(T):h,P="function"==typeof x?x(T):x;T&&(j=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(" ")}(j,u),P=(0,l.A)({},P,d));var M=(0,l.A)({"aria-current":T&&a||null,className:j,style:P,to:i},C);return y!==v?M.ref=t||E:M.innerRef=E,o.createElement(b,M)})})},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"BharatMLStack",tagline:"BharatMLStack is a comprehensive, production-ready machine learning infrastructure platform designed to democratize ML capabilities across India and beyond. Our mission is to provide a robust, scalable, and accessible ML stack that empowers organizations to build, deploy, and manage machine learning solutions at massive scale.",favicon:"img/favicon.ico",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0},experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1,rspackPersistentCache:!1,ssgWorkerThreads:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},url:"https://meesho.github.io",baseUrl:"/BharatMLStack/",organizationName:"Meesho Ltd.",projectName:"BharatMLStack",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/Meesho/BharatMLStack/tree/main/docs",routeBasePath:"/"},blog:{showReadingTime:!0,feedOptions:{type:["rss","atom"],xslt:!0},editUrl:"https://github.com/Meesho/BharatMLStack/tree/main/docs",onInlineTags:"warn",onInlineAuthors:"warn",onUntruncatedBlogPosts:"warn"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/docusaurus-social-card.jpg",navbar:{title:"BharatMLStack",items:[{type:"docSidebar",sidebarId:"tutorialSidebar",position:"left",label:"Docs"},{to:"/blog",label:"Blog",position:"left"},{href:"https://github.com/Meesho/BharatMLStack",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Community",items:[{label:"Github Discussions",href:"https://github.com/Meesho/BharatMLStack/discussions"},{label:"Discord",href:"https://discord.gg/XkT7XsV2AU"}]},{title:"More",items:[{label:"Blog",to:"/blog"},{label:"GitHub",href:"https://github.com/Meesho/BharatMLStack"}]}],copyright:"Copyright \xa9 2026 Meesho Ltd. Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},4848:(e,t,n)=>{"use strict";e.exports=n(9698)},5041:(e,t,n)=>{"use strict";n.d(t,{M:()=>m,o:()=>h});var r=n(6540),a=n(2303),o=n(679),i=n(9532),l=n(6342),s=n(4848);const c=(0,o.Wf)("docusaurus.announcement.dismiss"),u=(0,o.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),f=e=>c.set(String(e)),p=r.createContext(null);function h({children:e}){const t=function(){const{announcementBar:e}=(0,l.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)(()=>!!t&&d());(0,r.useEffect)(()=>{o(d())},[]);const i=(0,r.useCallback)(()=>{f(!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&&f(!1),!r&&d()||o(!1)},[e]),(0,r.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,s.jsx)(p.Provider,{value:t,children:e})}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(9532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(545),a=n(4848);function o(e){return(0,a.jsx)(r.mg,{...e})}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(6540),a=n(9532),o=n(679),i=n(6342),l=n(4848);function s(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function c(e){return function(e,t){const n=window.matchMedia(e);return n.addEventListener("change",t),()=>n.removeEventListener("change",t)}("(prefers-color-scheme: dark)",()=>e(s()))}const u=r.createContext(void 0),d=(0,o.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",h=e=>null===e||e===f?null:p(e),m={get:()=>p(document.documentElement.getAttribute("data-theme")),set:e=>{document.documentElement.setAttribute("data-theme",p(e))}},g={get:()=>h(document.documentElement.getAttribute("data-theme-choice")),set:e=>{document.documentElement.setAttribute("data-theme-choice",h(e)??f)}},b=e=>{null===e?d.del():d.set(p(e))};function y(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,i.p)(),{colorMode:a,setColorModeState:o,colorModeChoice:l,setColorModeChoiceState:u}=function(){const{colorMode:{defaultMode:e}}=(0,i.p)(),[t,n]=(0,r.useState)(e),[a,o]=(0,r.useState)(null);return(0,r.useEffect)(()=>{n(m.get()),o(g.get())},[]),{colorMode:t,setColorModeState:n,colorModeChoice:a,setColorModeChoiceState:o}}();(0,r.useEffect)(()=>{t&&d.del()},[t]);const f=(0,r.useCallback)((t,r={})=>{const{persist:a=!0}=r;if(null===t){const t=n?s():e;m.set(t),o(t),g.set(null),u(null)}else m.set(t),g.set(t),o(t),u(t);a&&b(t)},[o,u,n,e]);return(0,r.useEffect)(()=>d.listen(e=>{f(h(e.newValue))}),[f]),(0,r.useEffect)(()=>{if(null===l&&n)return c(e=>{o(e),m.set(e)})},[n,l,o]),(0,r.useMemo)(()=>({colorMode:a,colorModeChoice:l,setColorMode:f,get isDarkTheme(){return"dark"===a},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[a,l,f])}function v({children:e}){const t=y();return(0,l.jsx)(u.Provider,{value:t,children:e})}function w(){const e=(0,r.useContext)(u);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5338:(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(1247)},5500:(e,t,n)=>{"use strict";n.d(t,{Jx:()=>b,be:()=>h,e3:()=>g});var r=n(6540),a=n(4164),o=n(5260),i=n(6803),l=n(6025),s=n(4563),c=n(4848);function u({title:e}){const t=(0,s.s$)().format(e);return(0,c.jsxs)(o.A,{children:[(0,c.jsx)("title",{children:t}),(0,c.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,c.jsxs)(o.A,{children:[(0,c.jsx)("meta",{name:"description",content:e}),(0,c.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){const{withBaseUrl:t}=(0,l.hH)(),n=t(e,{absolute:!0});return(0,c.jsxs)(o.A,{children:[(0,c.jsx)("meta",{property:"og:image",content:n}),(0,c.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,c.jsx)(o.A,{children:(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function h({title:e,description:t,keywords:n,image:r,children:a}){return(0,c.jsxs)(c.Fragment,{children:[e&&(0,c.jsx)(u,{title:e}),t&&(0,c.jsx)(d,{description:t}),n&&(0,c.jsx)(p,{keywords:n}),r&&(0,c.jsx)(f,{image:r}),a&&(0,c.jsx)(o.A,{children:a})]})}const m=r.createContext(void 0);function g({className:e,children:t}){const n=r.useContext(m),i=(0,a.A)(n,e);return(0,c.jsxs)(m.Provider,{value:i,children:[(0,c.jsx)(o.A,{children:(0,c.jsx)("html",{className:i})}),t]})}function b({children:e}){const t=(0,i.A)(),n=`plugin-${t.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const r=`plugin-id-${t.plugin.id}`;return(0,c.jsx)(g,{className:(0,a.A)(n,r),children:e})}},5556:(e,t,n)=>{e.exports=n(2694)()},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>s,y_:()=>l});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l({children:e}){const t=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:t,children:e})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c({component:e,props:t}){const n=(0,r.useContext)(i);if(!n)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,o]=n,l=(0,a.Be)(t);return(0,r.useEffect)(()=>{o({component:e,props:l})},[o,e,l]),(0,r.useEffect)(()=>()=>o({component:null,props:null}),[o]),null}},5947: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),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,l(function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout(function(){s(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){n.remove(),t()},u)},u)):setTimeout(t,u)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout(function(){n.status&&(n.trickle(),e())},r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*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");u(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),c=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),c!=document.body&&u(c,"nprogress-custom-parent"),c.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 c(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);c(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)},6025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(6540),a=n(4586),o=n(6654);function i(){const{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,l=(0,r.useCallback)((e,r)=>function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i]);return{withBaseUrl:l}}function l(e,t={}){const{withBaseUrl:n}=i();return n(e,t)}},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(6540),a=n(4848);const o=r.createContext(!1);function i({children:e}){const[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{n(!0)},[]),(0,a.jsx)(o.Provider,{value:t,children:e})}},6134:(e,t,n)=>{"use strict";var r=n(1765),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t,o=globalThis.Prism;globalThis.Prism=e,r.forEach(e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)}),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=e)}(r.My)},6221:(e,t,n)=>{"use strict";var r=n(6540);function a(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var i={d:{f:o,r:function(){throw Error(a(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},l=Symbol.for("react.portal");var s=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(a(299));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},t.preconnect=function(e,t){"string"==typeof e&&(t?t="string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:t=null,i.d.C(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&i.d.D(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var n=t.as,r=c(n,t.crossOrigin),a="string"==typeof t.integrity?t.integrity:void 0,o="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===n?i.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):"script"===n&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&i.d.M(e)},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else i.d.m(e)},t.requestFormReset=function(e){i.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},t.useFormStatus=function(){return s.H.useHostTransitionStatus()},t.version="19.1.1"},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){const e=window.setTimeout(()=>{a().start()},200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(4586);function a(){return(0,r.A)().siteConfig.themeConfig}},6347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>x,Ix:()=>v,W6:()=>M,XZ:()=>y,dO:()=>j,qh:()=>_,zy:()=>N});var r=n(2892),a=n(6540),o=n(5556),i=n.n(o),l=n(1513),s=n(1561),c=n(8168),u=n(8505),d=n.n(u),f=(n(4363),n(8587)),p=(n(4146),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.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((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 c=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.A)(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 c.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:c}},g=function(e){var t=m();return t.displayName=e,t},b=g("Router-History"),y=g("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen(function(e){n._pendingLocation=e})),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen(function(t){e._isMounted&&e.setState({location:t})})),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function x(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,c=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=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:c}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var u=s[0],f=s.slice(1),p=e===u;return o&&!p?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:p,params:i.reduce(function(e,t,n){return e[t.name]=f[n],e},{})}},null)}var _=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,function(t){t||(0,s.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?x(n.pathname,e.props):t.match,o=(0,c.A)({},t,{location:n,match:r}),i=e.props,l=i.children,u=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(y.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:u?a.createElement(u,o):d?d(o):null:"function"==typeof l?l(o):null)})},t}(a.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,c.A)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.AO)(e)}function L(e){return function(){(0,s.A)(!1)}}function T(){}a.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,function(t){t||(0,s.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?x(o.pathname,(0,c.A)({},e.props,{path:i})):t.match}}),r?a.cloneElement(n,{location:o,computedMatch:r}):null})},t}(a.Component);var P=a.useContext;function M(){return P(b)}function N(){return P(y).location}},6540:(e,t,n)=>{"use strict";e.exports=n(9869)},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6803:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(3102);function o(){const e=r.useContext(a.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>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,o])=>{const i=a?`${a}.${n}`:n;r(o)?e(o,i):t[i]=o})}(e),t}},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},6972:(e,t,n)=>{"use strict";n.d(t,{$S:()=>h,B5:()=>C,Nr:()=>p,OF:()=>S,QB:()=>E,Vd:()=>x,Y:()=>w,a4:()=>m,cC:()=>f,d1:()=>A,fW:()=>_,w8:()=>y});var r=n(6540),a=n(6347),o=n(2831),i=n(4070),l=n(9169),s=n(1682),c=n(3886),u=n(3025),d=n(609);function f(e){const t=(0,u.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function p(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=p(t);if(e)return e}}(e):void 0:e.href}function h(){const{pathname:e}=(0,a.zy)(),t=(0,d.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({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}function m(){const{pathname:e}=(0,a.zy)(),t=(0,d.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];return n?.items??t.items}const g=(e,t)=>void 0!==e&&(0,l.ys)(e,t),b=(e,t)=>e.some(e=>y(e,t));function y(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||void 0!==e.href&&!e.linkUnlisted||e.items.some(e=>v(e,t));case"link":return!e.unlisted||y(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)(()=>e.filter(e=>v(e,t)),[e,t])}function k({sidebarItems:e,pathname:t,onlyCategories:n=!1}){const r=[];return function e(a){for(const o of a)if("category"===o.type&&((0,l.ys)(o.href,t)||e(o.items))||"link"===o.type&&(0,l.ys)(o.href,t)){return n&&"category"!==o.type||r.unshift(o),!0}return!1}(e),r}function S(){const e=(0,d.t)(),{pathname:t}=(0,a.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function x(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,c.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function _(e,t){const n=x(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=x(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,s.sb)(t.map(e=>e.id)).join("\n- ")}`)}return r},[e,n])}function C({route:e}){const t=(0,a.zy)(),n=(0,u.r)(),r=e.routes,i=r.find(e=>(0,a.B6)(t.pathname,e));if(!i)return null;const l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.v)(r),sidebarName:l,sidebarItems:s}}function A(e){return e.filter(e=>!("category"===e.type||"link"===e.type)||!!p(e))}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>f});var r=n(6540),a=n(4784);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/BharatMLStack/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/BharatMLStack/","mainDocId":"online-feature-store/v1.0.0/architecture","docs":[{"id":"inferflow/v1.0.0/architecture","path":"/BharatMLStack/inferflow/v1.0.0/architecture","sidebar":"tutorialSidebar"},{"id":"inferflow/v1.0.0/configuration","path":"/BharatMLStack/inferflow/v1.0.0/configuration","sidebar":"tutorialSidebar"},{"id":"inferflow/v1.0.0/functionalities","path":"/BharatMLStack/inferflow/v1.0.0/functionalities","sidebar":"tutorialSidebar"},{"id":"inferflow/v1.0.0/release-notes","path":"/BharatMLStack/inferflow/v1.0.0/release-notes","sidebar":"tutorialSidebar"},{"id":"numerix/v1.0.0/architecture","path":"/BharatMLStack/numerix/v1.0.0/architecture","sidebar":"tutorialSidebar"},{"id":"numerix/v1.0.0/benchmarks","path":"/BharatMLStack/numerix/v1.0.0/benchmarks","sidebar":"tutorialSidebar"},{"id":"numerix/v1.0.0/functionalities","path":"/BharatMLStack/numerix/v1.0.0/functionalities","sidebar":"tutorialSidebar"},{"id":"numerix/v1.0.0/release-notes","path":"/BharatMLStack/numerix/v1.0.0/release-notes","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/architecture","path":"/BharatMLStack/online-feature-store/v1.0.0/architecture","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/benchmarks","path":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/data-formats","path":"/BharatMLStack/online-feature-store/v1.0.0/data-formats","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/functionalities","path":"/BharatMLStack/online-feature-store/v1.0.0/functionalities","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/release-notes","path":"/BharatMLStack/online-feature-store/v1.0.0/release-notes","sidebar":"tutorialSidebar"},{"id":"quick-start/v1.0.0/quick-start","path":"/BharatMLStack/quick-start/v1.0.0/quick-start","sidebar":"tutorialSidebar"},{"id":"sdks/go/v1.0.0/feature_client","path":"/BharatMLStack/sdks/go/v1.0.0/feature_client","sidebar":"tutorialSidebar"},{"id":"sdks/python/v1.0.0/grpc_feature_client","path":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client","sidebar":"tutorialSidebar"},{"id":"sdks/python/v1.0.0/spark_feature_push_client","path":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client","sidebar":"tutorialSidebar"},{"id":"trufflebox-ui/v1.0.0/userguide","path":"/BharatMLStack/trufflebox-ui/v1.0.0/userguide","sidebar":"tutorialSidebar"},{"id":"/category/online-feature-store","path":"/BharatMLStack/category/online-feature-store","sidebar":"tutorialSidebar"},{"id":"/online-feature-store/v1.0.0","path":"/BharatMLStack/online-feature-store/v1.0.0","sidebar":"tutorialSidebar"},{"id":"/category/inferflow","path":"/BharatMLStack/category/inferflow","sidebar":"tutorialSidebar"},{"id":"/inferflow/v1.0.0","path":"/BharatMLStack/inferflow/v1.0.0","sidebar":"tutorialSidebar"},{"id":"/category/quick-start","path":"/BharatMLStack/category/quick-start","sidebar":"tutorialSidebar"},{"id":"/category/trufflebox-ui","path":"/BharatMLStack/category/trufflebox-ui","sidebar":"tutorialSidebar"},{"id":"/category/sdks","path":"/BharatMLStack/category/sdks","sidebar":"tutorialSidebar"},{"id":"/category/go-sdk","path":"/BharatMLStack/category/go-sdk","sidebar":"tutorialSidebar"},{"id":"/category/python-sdk","path":"/BharatMLStack/category/python-sdk","sidebar":"tutorialSidebar"},{"id":"/category/v100","path":"/BharatMLStack/category/v100","sidebar":"tutorialSidebar"},{"id":"/category/numerix","path":"/BharatMLStack/category/numerix","sidebar":"tutorialSidebar"},{"id":"/numerix/v1.0.0","path":"/BharatMLStack/numerix/v1.0.0","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/BharatMLStack/category/online-feature-store","label":"Online Feature Store"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.8.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.8.1"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.8.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.8.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.8.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.8.1"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.8.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.8.1"}}}');var c=n(4848);const u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(u);function f({children:e}){return(0,c.jsx)(d.Provider,{value:u,children:e})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(6540),a=n(8193),o=n(5260),i=n(440),l=n(1656),s=n(3102),c=n(4848);function u({error:e,tryAgain:t}){return(0,c.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:e})]})}function d({error:e}){const t=(0,i.rA)(e).map(e=>e.message).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,c.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,c.jsx)(f,{children:(0,c.jsxs)(m,{fallback:()=>(0,c.jsx)(u,{error:e,tryAgain:t}),children:[(0,c.jsx)(o.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(l.A,{children:(0,c.jsx)(u,{error:e,tryAgain:t})})]})})}const h=e=>(0,c.jsx)(p,{...e});class m extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.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??h)(e)}return e??null}}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},8168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:()=>r})},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>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}},8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});n(6540);var r=n(3259),a=n.n(r),o=n(4054);const i={"00b12b9c":[()=>n.e(7048).then(n.bind(n,8517)),"@site/blog/bharatmlstack-history/post-two/index.md",8517],"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,9158)),"@theme/BlogTagsListPage",9158],"0413d9af":[()=>n.e(9919).then(n.bind(n,7114)),"@site/docs/sdks/python/v1.0.0/grpc_feature_client.md",7114],"08daf6b6":[()=>n.e(1686).then(n.t.bind(n,848,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-model-inference-44e.json",848],"09dd5be9":[()=>n.e(6273).then(n.bind(n,8831)),"@site/blog/bharatmlstack-history/post-one/index.md",8831],"0a89f5c9":[()=>n.e(7508).then(n.bind(n,5641)),"@site/docs/inferflow/v1.0.0/functionalities.md",5641],"0fff8dc8":[()=>n.e(9596).then(n.bind(n,5958)),"@site/docs/quick-start/v1.0.0/quick-start.md",5958],14064408:[()=>n.e(4582).then(n.t.bind(n,9416,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-quick-start-b0e.json",9416],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,477)),"@theme/DocCategoryGeneratedIndexPage",477],"176d210f":[()=>n.e(6100).then(n.bind(n,753)),"@site/docs/trufflebox-ui/v1.0.0/userguide.md",753],17896441:[()=>Promise.all([n.e(1869),n.e(6870),n.e(8401)]).then(n.bind(n,833)),"@theme/DocItem",833],"1a64de69":[()=>n.e(3645).then(n.t.bind(n,1694,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-meesho-214.json",1694],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(6870),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"252a9097":[()=>n.e(4424).then(n.bind(n,248)),"@site/docs/inferflow/v1.0.0/architecture.md",248],"2c62ead1":[()=>n.e(5801).then(n.bind(n,1688)),"@site/docs/numerix/v1.0.0/functionalities.md",1688],"2d865531":[()=>n.e(9197).then(n.t.bind(n,4153,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-authors-eb6.json",4153],"3216e812":[()=>n.e(4771).then(n.t.bind(n,1494,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-numerix-v-1-0-0-85d.json",1494],"36994c47":[()=>n.e(9858).then(n.t.bind(n,5516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",5516],"393be207":[()=>n.e(4134).then(n.bind(n,591)),"@site/src/pages/markdown-page.md",591],"3980073a":[()=>n.e(940).then(n.t.bind(n,3840,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-interaction-store-62d.json",3840],"3aeb33c7":[()=>n.e(974).then(n.bind(n,7309)),"@site/blog/bharatmlstack-history/post-five/index.md",7309],"3e1c5046":[()=>n.e(690).then(n.t.bind(n,8750,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-online-feature-store-e01.json",8750],"4137b431":[()=>n.e(6054).then(n.t.bind(n,4019,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-aad.json",4019],"428aafcc":[()=>n.e(5503).then(n.bind(n,7999)),"@site/blog/bharatmlstack-history/post-three/index.md",7999],"44d1c015":[()=>n.e(1065).then(n.t.bind(n,6725,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-python-sdk-f96.json",6725],"45a03d07":[()=>n.e(9955).then(n.t.bind(n,8539,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-inferflow-v-1-0-0-705.json",8539],"479eb034":[()=>n.e(5425).then(n.t.bind(n,9341,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-mlplatform-b63.json",9341],"4af50aac":[()=>n.e(1964).then(n.bind(n,6220)),"@site/docs/sdks/go/v1.0.0/feature_client.md",6220],"4caa95bf":[()=>n.e(2344).then(n.bind(n,9584)),"@site/docs/online-feature-store/v1.0.0/data-formats.md",9584],"4df0e30b":[()=>n.e(2379).then(n.bind(n,9680)),"@site/docs/numerix/v1.0.0/architecture.md",9680],"50899a24":[()=>n.e(1009).then(n.t.bind(n,1008,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-numerix-843.json",1008],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"616111d3":[()=>n.e(9158).then(n.t.bind(n,9470,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-sdks-291.json",9470],"621db11d":[()=>Promise.all([n.e(1869),n.e(7518),n.e(4212)]).then(n.bind(n,3250)),"@theme/Blog/Pages/BlogAuthorsListPage",3250],"6479fb86":[()=>n.e(5579).then(n.t.bind(n,3751,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-archive-553.json",3751],"67d4782a":[()=>n.e(8588).then(n.bind(n,8769)),"@site/docs/online-feature-store/v1.0.0/benchmarks.md",8769],"6875c492":[()=>Promise.all([n.e(1869),n.e(6870),n.e(7518),n.e(4813)]).then(n.bind(n,3069)),"@theme/BlogTagsPostsPage",3069],"6bb91276":[()=>n.e(9226).then(n.t.bind(n,8758,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-vllm-9b4.json",8758],"72dc5b25":[()=>n.e(8261).then(n.t.bind(n,3613,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-online-feature-store-v-1-0-0-a94.json",3613],"79ae4ea7":[()=>n.e(4340).then(n.bind(n,4311)),"@site/blog/bharatmlstack-history/post-four/index.md",4311],"7fa80e1c":[()=>n.e(3322).then(n.t.bind(n,9189,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-853.json",9189],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"8ac6191a":[()=>n.e(8465).then(n.t.bind(n,4540,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-online-feature-store-8eb.json",4540],"8dd2df60":[()=>n.e(1537).then(n.t.bind(n,3359,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-inferflow-541.json",3359],"8ea48c46":[()=>n.e(9824).then(n.bind(n,7956)),"@site/docs/numerix/v1.0.0/release-notes.md",7956],"93f344c7":[()=>n.e(4416).then(n.t.bind(n,5232,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-inferflow-dc1.json",5232],"99009a21":[()=>n.e(4064).then(n.t.bind(n,1161,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-tensorrt-llm-ee4.json",1161],"9aed321e":[()=>n.e(2951).then(n.bind(n,9059)),"@site/docs/inferflow/v1.0.0/release-notes.md",9059],"9d13045e":[()=>n.e(8014).then(n.bind(n,7791)),"@site/docs/inferflow/v1.0.0/configuration.md",7791],"9e4087bc":[()=>n.e(2711).then(n.bind(n,9331)),"@theme/BlogArchivePage",9331],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(6870),n.e(7518),n.e(7643)]).then(n.bind(n,5124)),"@theme/BlogListPage",5124],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,1723)),"@theme/DocVersionRoot",1723],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,1377)),"@theme/DocRoot",1377],a97f18d9:[()=>n.e(6724).then(n.bind(n,4215)),"@site/blog/bharatmlstack-history/post-two/index.md?truncated=true",4215],aaabe254:[()=>n.e(770).then(n.t.bind(n,1982,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-bharatmlstack-205.json",1982],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],ac51638e:[()=>n.e(9473).then(n.bind(n,6692)),"@site/docs/sdks/python/v1.0.0/spark_feature_push_client.md",6692],acecf23e:[()=>n.e(1903).then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],adb039a4:[()=>n.e(7609).then(n.t.bind(n,926,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-llm-025.json",926],be9e6e2d:[()=>n.e(7871).then(n.t.bind(n,3405,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-embedding-search-672.json",3405],c4822c4f:[()=>n.e(1915).then(n.bind(n,3649)),"@site/docs/online-feature-store/v1.0.0/functionalities.md",3649],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,6467)),"@site/src/pages/index.js",6467],c7b64fcc:[()=>n.e(8933).then(n.t.bind(n,9997,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-go-sdk-b5b.json",9997],ccc49370:[()=>Promise.all([n.e(1869),n.e(6870),n.e(7518),n.e(3249)]).then(n.bind(n,3858)),"@theme/BlogPostPage",3858],d152284c:[()=>n.e(1606).then(n.bind(n,5876)),"@site/docs/online-feature-store/v1.0.0/release-notes.md",5876],e66382f6:[()=>n.e(1405).then(n.bind(n,9563)),"@site/docs/online-feature-store/v1.0.0/architecture.md",9563],e8202a51:[()=>n.e(2771).then(n.bind(n,1185)),"@site/docs/numerix/v1.0.0/benchmarks.md",1185],f2c141e4:[()=>n.e(1909).then(n.bind(n,161)),"@site/blog/bharatmlstack-history/post-one/index.md?truncated=true",161],f9755c6e:[()=>n.e(8315).then(n.bind(n,8319)),"@site/blog/bharatmlstack-history/post-five/index.md?truncated=true",8319],f994c8da:[()=>n.e(1999).then(n.t.bind(n,38,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-7a3.json",38],fa31f022:[()=>n.e(6062).then(n.t.bind(n,6096,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-v-100-ae3.json",6096],fccc4c42:[()=>n.e(2117).then(n.bind(n,2561)),"@site/blog/bharatmlstack-history/post-three/index.md?truncated=true",2561],fcf4f6ca:[()=>n.e(7720).then(n.t.bind(n,4041,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-trufflebox-ui-b39.json",4041]};var l=n(4848);function s({error:e,retry:t,pastDelay:n}){return e?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(e)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(6921),u=n(3102);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},f=[],p=[],h=(0,c.A)(r);return Object.entries(h).forEach(([e,t])=>{const n=i[t];n&&(d[e]=n[0],f.push(n[1]),p.push(n[2]))}),a().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach(([t,n])=>{const r=n.default;if(!r)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof r&&"function"!=typeof r||Object.keys(n).filter(e=>"default"!==e).forEach(e=>{r[e]=n[e]});let o=a;const i=t.split(".");i.slice(0,-1).forEach(e=>{o=o[e]}),o[i[i.length-1]]=r});const o=a.__comp;delete a.__comp;const i=a.__context;delete a.__context;const s=a.__props;return delete a.__props,(0,l.jsx)(u.W,{value:i,children:(0,l.jsx)(o,{...a,...s,...n})})}})}const f=[{path:"/BharatMLStack/blog",component:d("/BharatMLStack/blog","f21"),exact:!0},{path:"/BharatMLStack/blog/archive",component:d("/BharatMLStack/blog/archive","dde"),exact:!0},{path:"/BharatMLStack/blog/authors",component:d("/BharatMLStack/blog/authors","f47"),exact:!0},{path:"/BharatMLStack/blog/post-five",component:d("/BharatMLStack/blog/post-five","0ec"),exact:!0},{path:"/BharatMLStack/blog/post-one",component:d("/BharatMLStack/blog/post-one","e5f"),exact:!0},{path:"/BharatMLStack/blog/post-three",component:d("/BharatMLStack/blog/post-three","be5"),exact:!0},{path:"/BharatMLStack/blog/post-three",component:d("/BharatMLStack/blog/post-three","85f"),exact:!0},{path:"/BharatMLStack/blog/post-two",component:d("/BharatMLStack/blog/post-two","5a0"),exact:!0},{path:"/BharatMLStack/blog/tags",component:d("/BharatMLStack/blog/tags","8af"),exact:!0},{path:"/BharatMLStack/blog/tags/bharatmlstack",component:d("/BharatMLStack/blog/tags/bharatmlstack","0c5"),exact:!0},{path:"/BharatMLStack/blog/tags/embedding-search",component:d("/BharatMLStack/blog/tags/embedding-search","27a"),exact:!0},{path:"/BharatMLStack/blog/tags/inferflow",component:d("/BharatMLStack/blog/tags/inferflow","9d9"),exact:!0},{path:"/BharatMLStack/blog/tags/interaction-store",component:d("/BharatMLStack/blog/tags/interaction-store","c75"),exact:!0},{path:"/BharatMLStack/blog/tags/llm",component:d("/BharatMLStack/blog/tags/llm","fa9"),exact:!0},{path:"/BharatMLStack/blog/tags/meesho",component:d("/BharatMLStack/blog/tags/meesho","e82"),exact:!0},{path:"/BharatMLStack/blog/tags/mlplatform",component:d("/BharatMLStack/blog/tags/mlplatform","856"),exact:!0},{path:"/BharatMLStack/blog/tags/model-inference",component:d("/BharatMLStack/blog/tags/model-inference","efa"),exact:!0},{path:"/BharatMLStack/blog/tags/online-feature-store",component:d("/BharatMLStack/blog/tags/online-feature-store","44b"),exact:!0},{path:"/BharatMLStack/blog/tags/tensorrt-llm",component:d("/BharatMLStack/blog/tags/tensorrt-llm","bec"),exact:!0},{path:"/BharatMLStack/blog/tags/vllm",component:d("/BharatMLStack/blog/tags/vllm","bd3"),exact:!0},{path:"/BharatMLStack/markdown-page",component:d("/BharatMLStack/markdown-page","747"),exact:!0},{path:"/BharatMLStack/",component:d("/BharatMLStack/","e34"),exact:!0},{path:"/BharatMLStack/",component:d("/BharatMLStack/","c10"),routes:[{path:"/BharatMLStack/",component:d("/BharatMLStack/","11b"),routes:[{path:"/BharatMLStack/",component:d("/BharatMLStack/","4d0"),routes:[{path:"/BharatMLStack/category/go-sdk",component:d("/BharatMLStack/category/go-sdk","6b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/inferflow",component:d("/BharatMLStack/category/inferflow","e9f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/numerix",component:d("/BharatMLStack/category/numerix","703"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/online-feature-store",component:d("/BharatMLStack/category/online-feature-store","7ee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/python-sdk",component:d("/BharatMLStack/category/python-sdk","1fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/quick-start",component:d("/BharatMLStack/category/quick-start","dff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/sdks",component:d("/BharatMLStack/category/sdks","532"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/trufflebox-ui",component:d("/BharatMLStack/category/trufflebox-ui","5f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/v100",component:d("/BharatMLStack/category/v100","ddd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/inferflow/v1.0.0",component:d("/BharatMLStack/inferflow/v1.0.0","018"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/inferflow/v1.0.0/architecture",component:d("/BharatMLStack/inferflow/v1.0.0/architecture","46b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/inferflow/v1.0.0/configuration",component:d("/BharatMLStack/inferflow/v1.0.0/configuration","4ef"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/inferflow/v1.0.0/functionalities",component:d("/BharatMLStack/inferflow/v1.0.0/functionalities","65a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/inferflow/v1.0.0/release-notes",component:d("/BharatMLStack/inferflow/v1.0.0/release-notes","cce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/numerix/v1.0.0",component:d("/BharatMLStack/numerix/v1.0.0","441"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/numerix/v1.0.0/architecture",component:d("/BharatMLStack/numerix/v1.0.0/architecture","4d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/numerix/v1.0.0/benchmarks",component:d("/BharatMLStack/numerix/v1.0.0/benchmarks","eae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/numerix/v1.0.0/functionalities",component:d("/BharatMLStack/numerix/v1.0.0/functionalities","f7b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/numerix/v1.0.0/release-notes",component:d("/BharatMLStack/numerix/v1.0.0/release-notes","77b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0",component:d("/BharatMLStack/online-feature-store/v1.0.0","218"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/architecture",component:d("/BharatMLStack/online-feature-store/v1.0.0/architecture","0af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/benchmarks",component:d("/BharatMLStack/online-feature-store/v1.0.0/benchmarks","889"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/data-formats",component:d("/BharatMLStack/online-feature-store/v1.0.0/data-formats","46e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/functionalities",component:d("/BharatMLStack/online-feature-store/v1.0.0/functionalities","415"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/release-notes",component:d("/BharatMLStack/online-feature-store/v1.0.0/release-notes","36c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/quick-start/v1.0.0/quick-start",component:d("/BharatMLStack/quick-start/v1.0.0/quick-start","b19"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/sdks/go/v1.0.0/feature_client",component:d("/BharatMLStack/sdks/go/v1.0.0/feature_client","1df"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client",component:d("/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client","9dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client",component:d("/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client","1bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/trufflebox-ui/v1.0.0/userguide",component:d("/BharatMLStack/trufflebox-ui/v1.0.0/userguide","65e"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"*",component:d("*")}]},8380: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 c(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,c),t(s.optional,c),t(s.modify,c)}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),c=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(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach(function e(n){var r=s[n];t(r&&r.require,function(t){t in d||(u[t]=!0,e(t))})});for(var f,p=r(s),h=u;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 b in d)if(!(b in u))for(var y in p(b))if(y in u){f[b]=!0;break}for(var v in h=f)u[v]=!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 c(e){if(e in l)return l[e];s[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var f=i(u.map(function(e){var t=c(e);return delete s[e],t}));o?a=o(f,function(){return r(e)}):r(e)}return l[e]=a}for(var u in n)c(u);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,u,t,n)}};return w}}();e.exports=t},8505:(e,t,n)=>{var r=n(4634);e.exports=m,e.exports.parse=o,e.exports.compile=function(e,t){return c(o(e,t),t)},e.exports.tokensToFunction=c,e.exports.tokensToRegExp=h;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,l=0,s="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var u=n[0],f=n[1],p=n.index;if(s+=e.slice(l,p),l=p+u.length,f)s+=f[1];else{var h=e[l],m=n[2],g=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=m&&null!=h&&h!==m,S="+"===v||"*"===v,x="?"===v||"*"===v,_=m||c,E=b||y,C=m||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:g||o++,prefix:m||"",delimiter:_,optional:x,repeat:S,partial:k,asterisk:!!w,pattern:E?d(E):w?".*":i(_,C)})}}return l<e.length&&(s+=e.substr(l)),s&&r.push(s),r}function i(e,t){return!t||t.indexOf(e)>-1?"[^"+u(e)+"]+?":u(t)+"|(?:(?!"+u(t)+")[^"+u(e)+"])+?"}function l(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function s(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function c(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+")$",p(t)));return function(t,a){for(var o="",i=t||{},c=(a||{}).pretty?l:encodeURIComponent,u=0;u<e.length;u++){var d=e[u];if("string"!=typeof d){var f,p=i[d.name];if(null==p){if(d.optional){d.partial&&(o+=d.prefix);continue}throw new TypeError('Expected "'+d.name+'" to be defined')}if(r(p)){if(!d.repeat)throw new TypeError('Expected "'+d.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(d.optional)continue;throw new TypeError('Expected "'+d.name+'" to not be empty')}for(var h=0;h<p.length;h++){if(f=c(p[h]),!n[u].test(f))throw new TypeError('Expected all "'+d.name+'" to match "'+d.pattern+'", but received `'+JSON.stringify(f)+"`");o+=(0===h?d.prefix:d.delimiter)+f}}else{if(f=d.asterisk?s(p):c(p),!n[u].test(f))throw new TypeError('Expected "'+d.name+'" to match "'+d.pattern+'", but received "'+f+'"');o+=d.prefix+f}}else o+=d}return o}}function u(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function d(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function f(e,t){return e.keys=t,e}function p(e){return e&&e.sensitive?"":"i"}function h(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 s=e[l];if("string"==typeof s)i+=u(s);else{var c=u(s.prefix),d="(?:"+s.pattern+")";t.push(s),s.repeat&&(d+="(?:"+c+d+")*"),i+=d=s.optional?s.partial?c+"("+d+")?":"(?:"+c+"("+d+"))?":c+"("+d+")"}}var h=u(n.delimiter||"/"),m=i.slice(-h.length)===h;return a||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=o?"$":a&&m?"":"(?="+h+"|$)",f(new RegExp("^"+i,p(n)),t)}function m(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 f(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(m(e[a],t,n).source);return f(new RegExp("(?:"+r.join("|")+")",p(n)),t)}(e,t,n):function(e,t,n){return h(o(e,n),t,n)}(e,t,n)}},8587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},8600:(e,t,n)=>{"use strict";var r=n(6540),a=n(5338),o=n(545),i=n(4625),l=n(4784),s=n(8193);const c=[n(3001),n(119),n(6134),n(6294),n(1043)];var u=n(8328),d=n(6347),f=n(2831),p=n(4848);function h({children:e}){return(0,p.jsx)(p.Fragment,{children:e})}var m=n(4563);const g=e=>e.defaultFormatter(e);function b({children:e}){return(0,p.jsx)(m.AL,{formatter:g,children:e})}function y({children:e}){return(0,p.jsx)(b,{children:e})}var v=n(5260),w=n(4586),k=n(6025),S=n(6342),x=n(5500),_=n(2131),E=n(4090);var C=n(440),A=n(1463);function L(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),r=(0,_.o)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter(e=>a!==e.htmlLang).map(e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`))]})}function T({permalink:e}){const{siteConfig:{url:t}}=(0,w.A)(),n=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,d.zy)();return e+(0,C.Ks)((0,k.Ay)(r),{trailingSlash:n,baseUrl:t})}(),r=e?`${t}${e}`:n;return(0,p.jsxs)(v.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:r}),(0,p.jsx)("link",{rel:"canonical",href:r})]})}function j(){const{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,S.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(v.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:E.w})]}),n&&(0,p.jsx)(x.be,{image:n}),(0,p.jsx)(T,{}),(0,p.jsx)(L,{}),(0,p.jsx)(A.A,{tag:"default",locale:e}),(0,p.jsx)(v.A,{children:t.map((e,t)=>(0,p.jsx)("meta",{...e},t))})]})}const P=new Map;var M=n(6125),N=n(6988),O=n(205);function R(e,...t){const n=c.map(n=>{const r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}const D=function({children:e,location:t,previousLocation:n}){return(0,O.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;const n=e.pathname===t.pathname,r=e.hash===t.hash,a=e.search===t.search;if(n&&r&&!a)return;const{hash:o}=e;if(o){const e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),R("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function B(e){const t=Array.from(new Set([e,decodeURI(e)])).map(e=>(0,f.u)(u.A,e)).flat();return Promise.all(t.map(e=>e.route.component.preload?.()))}class F extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),B(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(0,p.jsx)(D,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(d.qh,{location:t,render:()=>e})})}}const I=F,z="__docusaurus-base-url-issue-banner-suggestion-container";function $(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="__docusaurus-base-url-issue-banner" 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="${z}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function U(){const{siteConfig:{baseUrl:e}}=(0,w.A)();return(0,p.jsx)(p.Fragment,{children:!s.A.canUseDOM&&(0,p.jsx)(v.A,{children:(0,p.jsx)("script",{children:$(e)})})})}function q(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,d.zy)();return t&&n===e?(0,p.jsx)(U,{}):null}function H(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,w.A)(),o=(0,k.Ay)(e),{htmlLang:i,direction:l}=a[r];return(0,p.jsxs)(v.A,{children:[(0,p.jsx)("html",{lang:i,dir:l}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:o})]})}var G=n(7489),V=n(2303);function W(){const e=(0,V.A)();return(0,p.jsx)(v.A,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}const Q=(0,f.v)(u.A);function K(){const e=function(e){if(P.has(e.pathname))return{...e,pathname:P.get(e.pathname)};if((0,f.u)(u.A,e.pathname).some(({route:e})=>!0===e.exact))return P.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return P.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,p.jsx)(I,{location:e,children:Q})}function Y(){return(0,p.jsx)(G.A,{children:(0,p.jsx)(N.l,{children:(0,p.jsxs)(M.x,{children:[(0,p.jsx)(h,{children:(0,p.jsxs)(y,{children:[(0,p.jsx)(H,{}),(0,p.jsx)(j,{}),(0,p.jsx)(q,{}),(0,p.jsx)(K,{})]})}),(0,p.jsx)(W,{})]})})})}var X=n(4054);const Z=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 J=n(6921);const ee=new Set,te=new Set,ne=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,re={prefetch:e=>{if(!(e=>!ne()&&!te.has(e)&&!ee.has(e))(e))return!1;ee.add(e);const t=(0,f.u)(u.A,e).flatMap(e=>{return t=e.route.path,Object.entries(X).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,J.A)(e)));var t});return Promise.all(t.map(e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch(()=>{}):Promise.resolve()}))},preload:e=>!!(e=>!ne()&&!te.has(e))(e)&&(te.add(e),B(e))},ae=Object.freeze(re);function oe({children:e}){return"hash"===l.default.future.experimental_router?(0,p.jsx)(i.I9,{children:e}):(0,p.jsx)(i.Kd,{children:e})}const ie=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=ae;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(o.vd,{children:(0,p.jsx)(oe,{children:(0,p.jsx)(Y,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ie)window.docusaurusRoot=a.hydrateRoot(e,t,{onRecoverableError:n});else{const r=a.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};B(window.location.pathname).then(()=>{(0,r.startTransition)(i)})}},8692:(e,t,n)=>{var r={"./":8722};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=8692},8722:(e,t,n)=>{const r=n(6969),a=n(8380),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(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),o.add(e)})}i.silent=!1,e.exports=i},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(6540),a=n(4625),o=n(440),i=n(4586),l=n(6654),s=n(8193),c=n(3427),u=n(6025),d=n(4848);function f({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":h,autoAddBaseUrl:m=!0,...g},b){const{siteConfig:y}=(0,i.A)(),{trailingSlash:v,baseUrl:w}=y,k=y.future.experimental_router,{withBaseUrl:S}=(0,u.hH)(),x=(0,c.A)(),_=(0,r.useRef)(null);(0,r.useImperativeHandle)(b,()=>_.current);const E=t||n;const C=(0,l.A)(E),A=E?.replace("pathname://","");let L=void 0!==A?(T=A,m&&(e=>e.startsWith("/"))(T)?S(T):T):void 0;var T;"hash"===k&&L?.startsWith("./")&&(L=L?.slice(1)),L&&C&&(L=(0,o.Ks)(L,{trailingSlash:v,baseUrl:w}));const j=(0,r.useRef)(!1),P=e?a.k2:a.N_,M=s.A.canUseIntersectionObserver,N=(0,r.useRef)(),O=()=>{j.current||null==L||(window.docusaurus.preload(L),j.current=!0)};(0,r.useEffect)(()=>(!M&&C&&s.A.canUseDOM&&null!=L&&window.docusaurus.prefetch(L),()=>{M&&N.current&&N.current.disconnect()}),[N,L,M,C]);const R=L?.startsWith("#")??!1,D=!g.target||"_self"===g.target,B=!L||!C||!D||R&&"hash"!==k;h||!R&&B||x.collectLink(L),g.id&&x.collectAnchor(g.id);const F={};return B?(0,d.jsx)("a",{ref:_,href:L,...E&&!C&&{target:"_blank",rel:"noopener noreferrer"},...g,...F}):(0,d.jsx)(P,{...g,onMouseEnter:O,onTouchStart:O,innerRef:e=>{_.current=e,M&&e&&C&&(N.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=L&&window.docusaurus.prefetch(L))})}),N.current.observe(e))},to:L,...e&&{isActive:p,activeClassName:f},...F})}const p=r.forwardRef(f)},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8328),o=n(4586);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.A)().siteConfig;return(0,r.useMemo)(()=>function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;return t.find(n)||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)}({routes:a.A,baseUrl:e}),[e])}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>u});var r=n(6540),a=n(205),o=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,a.A)(()=>{t.current=e},[e]),(0,r.useCallback)((...e)=>t.current(...e),[])}function l(e){const t=(0,r.useRef)();return(0,a.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(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({children:t})=>(0,o.jsx)(o.Fragment,{children:e.reduceRight((e,t)=>(0,o.jsx)(t,{children:e}),t)})}},9698:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function a(e,t,r){var a=null;if(void 0!==r&&(a=""+r),void 0!==t.key&&(a=""+t.key),"key"in t)for(var o in r={},t)"key"!==o&&(r[o]=t[o]);else r=t;return t=r.ref,{$$typeof:n,type:e,key:a,ref:void 0!==t?t:null,props:r}}t.Fragment=r,t.jsx=a,t.jsxs=a},9700:()=>{!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 c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],f="string"==typeof c?c:c.content,p=t(r,u),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),b=f.substring(h+p.length),y=[];m&&y.push.apply(y,i([m])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(Prism)},9869:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.iterator;var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,m(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,S={H:null,A:null,T:null,S:null,V:null},x=Object.prototype.hasOwnProperty;function _(e,t,r,a,o,i){return r=i.ref,{$$typeof:n,type:e,key:t,ref:void 0!==r?r:null,props:i}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var C=/\/+/g;function A(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var n,r}function L(){}function T(e,t,a,o,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s,c,u=!1;if(null===e)u=!0;else switch(l){case"bigint":case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case n:case r:u=!0;break;case f:return T((u=e._init)(e._payload),t,a,o,i)}}if(u)return i=i(e),u=""===o?"."+A(e,0):o,k(i)?(a="",null!=u&&(a=u.replace(C,"$&/")+"/"),T(i,t,a,"",function(e){return e})):null!=i&&(E(i)&&(s=i,c=a+(null==i.key||e&&e.key===i.key?"":(""+i.key).replace(C,"$&/")+"/")+u,i=_(s.type,c,void 0,0,0,s.props)),t.push(i)),1;u=0;var d,h=""===o?".":o+":";if(k(e))for(var m=0;m<e.length;m++)u+=T(o=e[m],t,a,l=h+A(o,m),i);else if("function"==typeof(m=null===(d=e)||"object"!=typeof d?null:"function"==typeof(d=p&&d[p]||d["@@iterator"])?d:null))for(e=m.call(e),m=0;!(o=e.next()).done;)u+=T(o=o.value,t,a,l=h+A(o,m++),i);else if("object"===l){if("function"==typeof e.then)return T(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(L,L):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(e),t,a,o,i);throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return u}function j(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 P(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)},function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var M="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function N(){}t.Children={map:j,forEach:function(e,t,n){j(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return j(e,function(){t++}),t},toArray:function(e){return j(e,function(e){return e})||[]},only:function(e){if(!E(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=u,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=S,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return S.H.useMemoCache(e)}},t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cloneElement=function(e,t,n){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var r=m({},e.props),a=e.key;if(null!=t)for(o in void 0!==t.ref&&void 0,void 0!==t.key&&(a=""+t.key),t)!x.call(t,o)||"key"===o||"__self"===o||"__source"===o||"ref"===o&&void 0===t.ref||(r[o]=t[o]);var o=arguments.length-2;if(1===o)r.children=n;else if(1<o){for(var i=Array(o),l=0;l<o;l++)i[l]=arguments[l+2];r.children=i}return _(e.type,a,void 0,0,0,r)},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},t.createElement=function(e,t,n){var r,a={},o=null;if(null!=t)for(r in void 0!==t.key&&(o=""+t.key),t)x.call(t,r)&&"key"!==r&&"__self"!==r&&"__source"!==r&&(a[r]=t[r]);var i=arguments.length-2;if(1===i)a.children=n;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];a.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===a[r]&&(a[r]=i[r]);return _(e,o,void 0,0,0,a)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=S.T,n={};S.T=n;try{var r=e(),a=S.S;null!==a&&a(n,r),"object"==typeof r&&null!==r&&"function"==typeof r.then&&r.then(N,M)}catch(o){M(o)}finally{S.T=t}},t.unstable_useCacheRefresh=function(){return S.H.useCacheRefresh()},t.use=function(e){return S.H.use(e)},t.useActionState=function(e,t,n){return S.H.useActionState(e,t,n)},t.useCallback=function(e,t){return S.H.useCallback(e,t)},t.useContext=function(e){return S.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return S.H.useDeferredValue(e,t)},t.useEffect=function(e,t,n){var r=S.H;if("function"==typeof n)throw Error("useEffect CRUD overload is not enabled in this build of React.");return r.useEffect(e,t)},t.useId=function(){return S.H.useId()},t.useImperativeHandle=function(e,t,n){return S.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return S.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return S.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return S.H.useMemo(e,t)},t.useOptimistic=function(e,t){return S.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return S.H.useReducer(e,t,n)},t.useRef=function(e){return S.H.useRef(e)},t.useState=function(e){return S.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return S.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return S.H.useTransition()},t.version="19.1.1"},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>h,M:()=>m});var r=n(6540),a=n(5600),o=n(4581),i=n(6347),l=n(9532);function s(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}((t,n)=>{if("POP"===n)return e(t,n)})}var c=n(6342),u=n(4848);const d=r.createContext(void 0);function f(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,c.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1),s=(0,r.useCallback)(()=>{l(e=>!e)},[]);return(0,r.useEffect)(()=>{"desktop"===t&&l(!1)},[t]),(0,r.useMemo)(()=>({disabled:e,shouldRender:n,toggle:s,shown:i}),[e,n,s,i])}function p({handler:e}){return s(e),null}function h({children:e}){const t=f();return(0,u.jsxs)(u.Fragment,{children:[t.shown&&(0,u.jsx)(p,{handler:()=>(t.toggle(),!1)}),(0,u.jsx)(d.Provider,{value:t,children:e})]})}function m(){const e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},9982:(e,t,n)=>{"use strict";e.exports=n(4477)}},e=>{e.O(0,[1869],()=>{return t=8600,e(e.s=t);var t});e.O()}]); \ No newline at end of file diff --git a/docs/assets/js/main.7cb3cce5.js.LICENSE.txt b/docs/assets/js/main.3e15e71d.js.LICENSE.txt similarity index 100% rename from docs/assets/js/main.7cb3cce5.js.LICENSE.txt rename to docs/assets/js/main.3e15e71d.js.LICENSE.txt diff --git a/docs/assets/js/main.7cb3cce5.js b/docs/assets/js/main.7cb3cce5.js deleted file mode 100644 index a17aa70d..00000000 --- a/docs/assets/js/main.7cb3cce5.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.7cb3cce5.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8792],{115: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}}},119:(e,t,n)=>{"use strict";n.r(t)},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540);const a=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){if(t.cause)return[t,...e(t.cause)];return[t]}},311:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=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}}},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},440:(e,t,n)=>{"use strict";t.rA=t.Ks=t.LU=void 0;const r=n(1635);t.LU="__blog-post-container";var a=n(2983);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(a).default}});var o=n(2566);var i=n(253);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>G});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),s=n(311),u=n.n(s),c=n(2833),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(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)"},y={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),x=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},_=function(e){var t=x(e,g.TITLE),n=x(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=x(e,"defaultTitle");return t||r||void 0},E=function(e){return x(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)}),{})},A=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}),[])},T=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=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},j=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],R=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,"'")},M=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=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=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},I=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=D(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=M(n),o=j(t);return a?"<"+e+' data-rh="true" '+a+">"+R(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+R(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return M(t)}};default:return{toComponent:function(){return F(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+'="'+R(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(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 m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,v),o=P(t,y),i=P(n,b);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return I(g.META,a.priority,r)+" "+I(g.LINK,o.priority,r)+" "+I(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:I(g.BASE,t,r),bodyAttributes:I("bodyAttributes",n,r),htmlAttributes:I("htmlAttributes",a,r),link:I(g.LINK,c,r),meta:I(g.META,d,r),noscript:I(g.NOSCRIPT,o,r),script:I(g.SCRIPT,f,r),style:I(g.STYLE,i,r),title:I(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({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,G=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);G.canUseDOM=H,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var V=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}},W=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(","))}},Q=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;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),W(g.TITLE,t)}(c,d);var f={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,u)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,p,m)},K=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:A(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:x(e,"defer"),encode:x(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:T(g.LINK,["rel","href"],e),metaTags:T(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:T(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:T(g.SCRIPT,["src","innerHTML"],e),styleTags:T(g.STYLE,["cssText"],e),title:_(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});G.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){Q(t,(function(){K=null}))})):(Q(t),K=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:q.isRequired},Y.displayName="HelmetDispatcher";var X=["children"],Z=["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()(N(this.props,"helmetData"),N(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=h(r,X),l=Object.keys(i).reduce((function(e,t){return e[S[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=h(e,Z),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"},609:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(6540),a=n(9532),o=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s({children:e,name:t,items:n}){const a=(0,r.useMemo)((()=>t&&n?{name:t,items:n}:null),[t,n]);return(0,o.jsx)(l.Provider,{value:a,children:e})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},679:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>u});n(6540);const r=JSON.parse('{"N":"localStorage","M":""}'),a=r.N;function o({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}function i(e=a){if("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,l||(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),l=!0),null}var t}let l=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){const n=`${e}${r.M}`;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}}(n);const a=i(t?.persistence);return null===a?s:{get:()=>{try{return a.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=a.getItem(n);a.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:a})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=a.getItem(n);a.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:a})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===a&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},961:(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(6221)},1043:(e,t,n)=>{"use strict";n.r(t)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(4164),a=n(1312),o=n(6342),i=n(8774),l=n(3427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(4848);function c({as:e,id:t,...n}){const c=(0,l.A)(),{navbar:{hideOnScroll:d}}=(0,o.p)();if("h1"===e||!t)return(0,u.jsx)(e,{...n,id:void 0});c.collectAnchor(t);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,u.jsxs)(e,{...n,className:(0,r.A)("anchor",d?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,n.className),id:t,children:[n.children,(0,u.jsx)(i.A,{className:"hash-link",to:`#${t}`,"aria-label":f,title:f,children:"\u200b"})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(6540),a=n(4164),o=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function u({className:e,children:t}){const n=(0,o.A)(),{colorMode:u}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(n?"dark"===u?["dark"]:["light"]:["light","dark"]).map((n=>{const o=t({theme:n,className:(0,a.A)(e,l.themedComponent,l[`themedComponent--${n}`])});return(0,s.jsx)(r.Fragment,{children:o},n)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,s.jsx)("img",{src:t[e],alt:r,className:n,...a})})}},1247:(e,t,n)=>{"use strict";var r=n(9982),a=n(6540),o=n(961);function i(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function u(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 c(e){if(s(e)!==e)throw Error(i(188))}function d(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e;for(e=e.child;null!==e;){if(null!==(t=d(e)))return t;e=e.sibling}return null}var f=Object.assign,p=Symbol.for("react.element"),m=Symbol.for("react.transitional.element"),h=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),y=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),v=Symbol.for("react.provider"),w=Symbol.for("react.consumer"),k=Symbol.for("react.context"),S=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),C=Symbol.for("react.lazy");Symbol.for("react.scope");var A=Symbol.for("react.activity");Symbol.for("react.legacy_hidden"),Symbol.for("react.tracing_marker");var T=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var L=Symbol.iterator;function j(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=L&&e[L]||e["@@iterator"])?e:null}var P=Symbol.for("react.client.reference");function N(e){if(null==e)return null;if("function"==typeof e)return e.$$typeof===P?null:e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case g:return"Fragment";case b:return"Profiler";case y:return"StrictMode";case x:return"Suspense";case _:return"SuspenseList";case A:return"Activity"}if("object"==typeof e)switch(e.$$typeof){case h:return"Portal";case k:return(e.displayName||"Context")+".Provider";case w:return(e._context.displayName||"Context")+".Consumer";case S:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case E:return null!==(t=e.displayName||null)?t:N(e.type)||"Memo";case C:t=e._payload,e=e._init;try{return N(e(t))}catch(n){}}return null}var O=Array.isArray,R=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D={pending:!1,data:null,method:null,action:null},F=[],I=-1;function B(e){return{current:e}}function z(e){0>I||(e.current=F[I],F[I]=null,I--)}function $(e,t){I++,F[I]=e.current,e.current=t}var U=B(null),q=B(null),H=B(null),G=B(null);function V(e,t){switch($(H,t),$(q,e),$(U,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?ad(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=od(t=ad(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}z(U),$(U,e)}function W(){z(U),z(q),z(H)}function Q(e){null!==e.memoizedState&&$(G,e);var t=U.current,n=od(t,e.type);t!==n&&($(q,e),$(U,n))}function K(e){q.current===e&&(z(U),z(q)),G.current===e&&(z(G),Qd._currentValue=D)}var Y=Object.prototype.hasOwnProperty,X=r.unstable_scheduleCallback,Z=r.unstable_cancelCallback,J=r.unstable_shouldYield,ee=r.unstable_requestPaint,te=r.unstable_now,ne=r.unstable_getCurrentPriorityLevel,re=r.unstable_ImmediatePriority,ae=r.unstable_UserBlockingPriority,oe=r.unstable_NormalPriority,ie=r.unstable_LowPriority,le=r.unstable_IdlePriority,se=r.log,ue=r.unstable_setDisableYieldValue,ce=null,de=null;function fe(e){if("function"==typeof se&&ue(e),de&&"function"==typeof de.setStrictMode)try{de.setStrictMode(ce,e)}catch(t){}}var pe=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(me(e)/he|0)|0},me=Math.log,he=Math.LN2;var ge=256,ye=4194304;function be(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ve(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=134217727&r;return 0!==l?0!==(r=l&~o)?a=be(r):0!==(i&=l)?a=be(i):n||0!==(n=l&~e)&&(a=be(n)):0!==(l=r&~o)?a=be(l):0!==i?a=be(i):n||0!==(n=r&~e)&&(a=be(n)),0===a?0:0!==t&&t!==a&&0===(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&4194048&n)?t:a}function we(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function ke(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Se(){var e=ge;return!(4194048&(ge<<=1))&&(ge=256),e}function xe(){var e=ye;return!(62914560&(ye<<=1))&&(ye=4194304),e}function _e(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ee(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ce(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-pe(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|4194090&n}function Ae(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-pe(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}function Te(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Le(e){return 2<(e&=-e)?8<e?134217727&e?32:268435456:8:2}function je(){var e=M.p;return 0!==e?e:void 0===(e=window.event)?32:cf(e.type)}var Pe=Math.random().toString(36).slice(2),Ne="__reactFiber$"+Pe,Oe="__reactProps$"+Pe,Re="__reactContainer$"+Pe,Me="__reactEvents$"+Pe,De="__reactListeners$"+Pe,Fe="__reactHandles$"+Pe,Ie="__reactResources$"+Pe,Be="__reactMarker$"+Pe;function ze(e){delete e[Ne],delete e[Oe],delete e[Me],delete e[De],delete e[Fe]}function $e(e){var t=e[Ne];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Re]||n[Ne]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=vd(e);null!==e;){if(n=e[Ne])return n;e=vd(e)}return t}n=(e=n).parentNode}return null}function Ue(e){if(e=e[Ne]||e[Re]){var t=e.tag;if(5===t||6===t||13===t||26===t||27===t||3===t)return e}return null}function qe(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(i(33))}function He(e){var t=e[Ie];return t||(t=e[Ie]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function Ge(e){e[Be]=!0}var Ve=new Set,We={};function Qe(e,t){Ke(e,t),Ke(e+"Capture",t)}function Ke(e,t){for(We[e]=t,e=0;e<t.length;e++)Ve.add(t[e])}var Ye,Xe,Ze=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Je={},et={};function tt(e,t,n){if(a=t,Y.call(et,a)||!Y.call(Je,a)&&(Ze.test(a)?et[a]=!0:(Je[a]=!0,0)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":return void e.removeAttribute(t);case"boolean":var r=t.toLowerCase().slice(0,5);if("data-"!==r&&"aria-"!==r)return void e.removeAttribute(t)}e.setAttribute(t,""+n)}var a}function nt(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(t)}e.setAttribute(t,""+n)}}function rt(e,t,n,r){if(null===r)e.removeAttribute(n);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(n)}e.setAttributeNS(t,n,""+r)}}function at(e){if(void 0===Ye)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Ye=t&&t[1]||"",Xe=-1<n.stack.indexOf("\n at")?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+Ye+e+Xe}var ot=!1;function it(e,t){if(!e||ot)return"";ot=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(a){var r=a}Reflect.construct(e,[],n)}else{try{n.call()}catch(o){r=o}e.call(n.prototype)}}else{try{throw Error()}catch(i){r=i}(n=e())&&"function"==typeof n.catch&&n.catch((function(){}))}}catch(l){if(l&&r&&"string"==typeof l.stack)return[l.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var a=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");a&&a.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var o=r.DetermineComponentFrameRoot(),i=o[0],l=o[1];if(i&&l){var s=i.split("\n"),u=l.split("\n");for(a=r=0;r<s.length&&!s[r].includes("DetermineComponentFrameRoot");)r++;for(;a<u.length&&!u[a].includes("DetermineComponentFrameRoot");)a++;if(r===s.length||a===u.length)for(r=s.length-1,a=u.length-1;1<=r&&0<=a&&s[r]!==u[a];)a--;for(;1<=r&&0<=a;r--,a--)if(s[r]!==u[a]){if(1!==r||1!==a)do{if(r--,0>--a||s[r]!==u[a]){var c="\n"+s[r].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}}while(1<=r&&0<=a);break}}}finally{ot=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?at(n):""}function lt(e){switch(e.tag){case 26:case 27:case 5:return at(e.type);case 16:return at("Lazy");case 13:return at("Suspense");case 19:return at("SuspenseList");case 0:case 15:return it(e.type,!1);case 11:return it(e.type.render,!1);case 1:return it(e.type,!0);case 31:return at("Activity");default:return""}}function st(e){try{var t="";do{t+=lt(e),e=e.return}while(e);return t}catch(n){return"\nError generating stack: "+n.message+"\n"+n.stack}}function ut(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function ct(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function dt(e){e._valueTracker||(e._valueTracker=function(e){var t=ct(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 ft(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ct(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function pt(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}}var mt=/[\n"\\]/g;function ht(e){return e.replace(mt,(function(e){return"\\"+e.charCodeAt(0).toString(16)+" "}))}function gt(e,t,n,r,a,o,i,l){e.name="",null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i?e.type=i:e.removeAttribute("type"),null!=t?"number"===i?(0===t&&""===e.value||e.value!=t)&&(e.value=""+ut(t)):e.value!==""+ut(t)&&(e.value=""+ut(t)):"submit"!==i&&"reset"!==i||e.removeAttribute("value"),null!=t?bt(e,i,ut(t)):null!=n?bt(e,i,ut(n)):null!=r&&e.removeAttribute("value"),null==a&&null!=o&&(e.defaultChecked=!!o),null!=a&&(e.checked=a&&"function"!=typeof a&&"symbol"!=typeof a),null!=l&&"function"!=typeof l&&"symbol"!=typeof l&&"boolean"!=typeof l?e.name=""+ut(l):e.removeAttribute("name")}function yt(e,t,n,r,a,o,i,l){if(null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.type=o),null!=t||null!=n){if(("submit"===o||"reset"===o)&&null==t)return;n=null!=n?""+ut(n):"",t=null!=t?""+ut(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r="function"!=typeof(r=null!=r?r:a)&&"symbol"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i&&(e.name=i)}function bt(e,t,n){"number"===t&&pt(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function vt(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=""+ut(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 wt(e,t,n){null==t||((t=""+ut(t))!==e.value&&(e.value=t),null!=n)?e.defaultValue=null!=n?""+ut(n):"":e.defaultValue!==t&&(e.defaultValue=t)}function kt(e,t,n,r){if(null==t){if(null!=r){if(null!=n)throw Error(i(92));if(O(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}null==n&&(n=""),t=n}n=ut(t),e.defaultValue=n,(r=e.textContent)===n&&""!==r&&null!==r&&(e.value=r)}function St(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 xt=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function _t(e,t,n){var r=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?r?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":r?e.setProperty(t,n):"number"!=typeof n||0===n||xt.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Et(e,t,n){if(null!=t&&"object"!=typeof t)throw Error(i(62));if(e=e.style,null!=n){for(var r in n)!n.hasOwnProperty(r)||null!=t&&t.hasOwnProperty(r)||(0===r.indexOf("--")?e.setProperty(r,""):"float"===r?e.cssFloat="":e[r]="");for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&_t(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&_t(e,o,t[o])}function Ct(e){if(-1===e.indexOf("-"))return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var At=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Tt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Lt(e){return Tt.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}var jt=null;function Pt(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Nt=null,Ot=null;function Rt(e){var t=Ue(e);if(t&&(e=t.stateNode)){var n=e[Oe]||null;e:switch(e=t.stateNode,t.type){case"input":if(gt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+ht(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[Oe]||null;if(!a)throw Error(i(90));gt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)(r=n[t]).form===e.form&&ft(r)}break e;case"textarea":wt(e,n.value,n.defaultValue);break e;case"select":null!=(t=n.value)&&vt(e,!!n.multiple,t,!1)}}}var Mt=!1;function Dt(e,t,n){if(Mt)return e(t,n);Mt=!0;try{return e(t)}finally{if(Mt=!1,(null!==Nt||null!==Ot)&&($u(),Nt&&(t=Nt,e=Ot,Ot=Nt=null,Rt(t),e)))for(t=0;t<e.length;t++)Rt(e[t])}}function Ft(e,t){var n=e.stateNode;if(null===n)return null;var r=n[Oe]||null;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 It=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),Bt=!1;if(It)try{var zt={};Object.defineProperty(zt,"passive",{get:function(){Bt=!0}}),window.addEventListener("test",zt,zt),window.removeEventListener("test",zt,zt)}catch(Rf){Bt=!1}var $t=null,Ut=null,qt=null;function Ht(){if(qt)return qt;var e,t,n=Ut,r=n.length,a="value"in $t?$t.value:$t.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 qt=a.slice(e,1<t?1-t:void 0)}function Gt(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 Vt(){return!0}function Wt(){return!1}function Qt(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)?Vt:Wt,this.isPropagationStopped=Wt,this}return f(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=Vt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Vt)},persist:function(){},isPersistent:Vt}),t}var Kt,Yt,Xt,Zt={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Jt=Qt(Zt),en=f({},Zt,{view:0,detail:0}),tn=Qt(en),nn=f({},en,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:mn,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!==Xt&&(Xt&&"mousemove"===e.type?(Kt=e.screenX-Xt.screenX,Yt=e.screenY-Xt.screenY):Yt=Kt=0,Xt=e),Kt)},movementY:function(e){return"movementY"in e?e.movementY:Yt}}),rn=Qt(nn),an=Qt(f({},nn,{dataTransfer:0})),on=Qt(f({},en,{relatedTarget:0})),ln=Qt(f({},Zt,{animationName:0,elapsedTime:0,pseudoElement:0})),sn=Qt(f({},Zt,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),un=Qt(f({},Zt,{data:0})),cn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},dn={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"},fn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function pn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=fn[e])&&!!t[e]}function mn(){return pn}var hn=Qt(f({},en,{key:function(e){if(e.key){var t=cn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=Gt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?dn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:mn,charCode:function(e){return"keypress"===e.type?Gt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Gt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),gn=Qt(f({},nn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),yn=Qt(f({},en,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:mn})),bn=Qt(f({},Zt,{propertyName:0,elapsedTime:0,pseudoElement:0})),vn=Qt(f({},nn,{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})),wn=Qt(f({},Zt,{newState:0,oldState:0})),kn=[9,13,27,32],Sn=It&&"CompositionEvent"in window,xn=null;It&&"documentMode"in document&&(xn=document.documentMode);var _n=It&&"TextEvent"in window&&!xn,En=It&&(!Sn||xn&&8<xn&&11>=xn),Cn=String.fromCharCode(32),An=!1;function Tn(e,t){switch(e){case"keyup":return-1!==kn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ln(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var jn=!1;var Pn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Nn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Pn[e.type]:"textarea"===t}function On(e,t,n,r){Nt?Ot?Ot.push(r):Ot=[r]:Nt=r,0<(t=Hc(t,"onChange")).length&&(n=new Jt("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Rn=null,Mn=null;function Dn(e){Dc(e,0)}function Fn(e){if(ft(qe(e)))return e}function In(e,t){if("change"===e)return t}var Bn=!1;if(It){var zn;if(It){var $n="oninput"in document;if(!$n){var Un=document.createElement("div");Un.setAttribute("oninput","return;"),$n="function"==typeof Un.oninput}zn=$n}else zn=!1;Bn=zn&&(!document.documentMode||9<document.documentMode)}function qn(){Rn&&(Rn.detachEvent("onpropertychange",Hn),Mn=Rn=null)}function Hn(e){if("value"===e.propertyName&&Fn(Mn)){var t=[];On(t,Mn,e,Pt(e)),Dt(Dn,t)}}function Gn(e,t,n){"focusin"===e?(qn(),Mn=n,(Rn=t).attachEvent("onpropertychange",Hn)):"focusout"===e&&qn()}function Vn(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Fn(Mn)}function Wn(e,t){if("click"===e)return Fn(t)}function Qn(e,t){if("input"===e||"change"===e)return Fn(t)}var Kn="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function Yn(e,t){if(Kn(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!Y.call(t,a)||!Kn(e[a],t[a]))return!1}return!0}function Xn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Zn(e,t){var n,r=Xn(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=Xn(r)}}function Jn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?Jn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function er(e){for(var t=pt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=pt((e=t.contentWindow).document)}return t}function tr(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 nr=It&&"documentMode"in document&&11>=document.documentMode,rr=null,ar=null,or=null,ir=!1;function lr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;ir||null==rr||rr!==pt(r)||("selectionStart"in(r=rr)&&tr(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},or&&Yn(or,r)||(or=r,0<(r=Hc(ar,"onSelect")).length&&(t=new Jt("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=rr)))}function sr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var ur={animationend:sr("Animation","AnimationEnd"),animationiteration:sr("Animation","AnimationIteration"),animationstart:sr("Animation","AnimationStart"),transitionrun:sr("Transition","TransitionRun"),transitionstart:sr("Transition","TransitionStart"),transitioncancel:sr("Transition","TransitionCancel"),transitionend:sr("Transition","TransitionEnd")},cr={},dr={};function fr(e){if(cr[e])return cr[e];if(!ur[e])return e;var t,n=ur[e];for(t in n)if(n.hasOwnProperty(t)&&t in dr)return cr[e]=n[t];return e}It&&(dr=document.createElement("div").style,"AnimationEvent"in window||(delete ur.animationend.animation,delete ur.animationiteration.animation,delete ur.animationstart.animation),"TransitionEvent"in window||delete ur.transitionend.transition);var pr=fr("animationend"),mr=fr("animationiteration"),hr=fr("animationstart"),gr=fr("transitionrun"),yr=fr("transitionstart"),br=fr("transitioncancel"),vr=fr("transitionend"),wr=new Map,kr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Sr(e,t){wr.set(e,t),Qe(t,[e])}kr.push("scrollEnd");var xr=new WeakMap;function _r(e,t){if("object"==typeof e&&null!==e){var n=xr.get(e);return void 0!==n?n:(t={value:e,source:t,stack:st(t)},xr.set(e,t),t)}return{value:e,source:t,stack:st(t)}}var Er=[],Cr=0,Ar=0;function Tr(){for(var e=Cr,t=Ar=Cr=0;t<e;){var n=Er[t];Er[t++]=null;var r=Er[t];Er[t++]=null;var a=Er[t];Er[t++]=null;var o=Er[t];if(Er[t++]=null,null!==r&&null!==a){var i=r.pending;null===i?a.next=a:(a.next=i.next,i.next=a),r.pending=a}0!==o&&Nr(n,a,o)}}function Lr(e,t,n,r){Er[Cr++]=e,Er[Cr++]=t,Er[Cr++]=n,Er[Cr++]=r,Ar|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function jr(e,t,n,r){return Lr(e,t,n,r),Or(e)}function Pr(e,t){return Lr(e,null,null,t),Or(e)}function Nr(e,t,n){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n);for(var a=!1,o=e.return;null!==o;)o.childLanes|=n,null!==(r=o.alternate)&&(r.childLanes|=n),22===o.tag&&(null===(e=o.stateNode)||1&e._visibility||(a=!0)),e=o,o=o.return;return 3===e.tag?(o=e.stateNode,a&&null!==t&&(a=31-pe(n),null===(r=(e=o.hiddenUpdates)[a])?e[a]=[t]:r.push(t),t.lane=536870912|n),o):null}function Or(e){if(50<Nu)throw Nu=0,Ou=null,Error(i(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var Rr={};function Mr(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dr(e,t,n,r){return new Mr(e,t,n,r)}function Fr(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ir(e,t){var n=e.alternate;return null===n?((n=Dr(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=65011712&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Br(e,t){e.flags&=65011714;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function zr(e,t,n,r,a,o){var l=0;if(r=e,"function"==typeof e)Fr(e)&&(l=1);else if("string"==typeof e)l=function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof t.precedence||"string"!=typeof t.href||""===t.href)break;return!0;case"link":if("string"!=typeof t.rel||"string"!=typeof t.href||""===t.href||t.onLoad||t.onError)break;return"stylesheet"!==t.rel||(e=t.disabled,"string"==typeof t.precedence&&null==e);case"script":if(t.async&&"function"!=typeof t.async&&"symbol"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&"string"==typeof t.src)return!0}return!1}(e,n,U.current)?26:"html"===e||"head"===e||"body"===e?27:5;else e:switch(e){case A:return(e=Dr(31,n,t,a)).elementType=A,e.lanes=o,e;case g:return $r(n.children,a,o,t);case y:l=8,a|=24;break;case b:return(e=Dr(12,n,t,2|a)).elementType=b,e.lanes=o,e;case x:return(e=Dr(13,n,t,a)).elementType=x,e.lanes=o,e;case _:return(e=Dr(19,n,t,a)).elementType=_,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case v:case k:l=10;break e;case w:l=9;break e;case S:l=11;break e;case E:l=14;break e;case C:l=16,r=null;break e}l=29,n=Error(i(130,null===e?"null":typeof e,"")),r=null}return(t=Dr(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function $r(e,t,n,r){return(e=Dr(7,e,r,t)).lanes=n,e}function Ur(e,t,n){return(e=Dr(6,e,null,t)).lanes=n,e}function qr(e,t,n){return(t=Dr(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Hr=[],Gr=0,Vr=null,Wr=0,Qr=[],Kr=0,Yr=null,Xr=1,Zr="";function Jr(e,t){Hr[Gr++]=Wr,Hr[Gr++]=Vr,Vr=e,Wr=t}function ea(e,t,n){Qr[Kr++]=Xr,Qr[Kr++]=Zr,Qr[Kr++]=Yr,Yr=e;var r=Xr;e=Zr;var a=32-pe(r)-1;r&=~(1<<a),n+=1;var o=32-pe(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Xr=1<<32-pe(t)+a|n<<a|r,Zr=o+e}else Xr=1<<o|n<<a|r,Zr=e}function ta(e){null!==e.return&&(Jr(e,1),ea(e,1,0))}function na(e){for(;e===Vr;)Vr=Hr[--Gr],Hr[Gr]=null,Wr=Hr[--Gr],Hr[Gr]=null;for(;e===Yr;)Yr=Qr[--Kr],Qr[Kr]=null,Zr=Qr[--Kr],Qr[Kr]=null,Xr=Qr[--Kr],Qr[Kr]=null}var ra=null,aa=null,oa=!1,ia=null,la=!1,sa=Error(i(519));function ua(e){throw ha(_r(Error(i(418,"")),e)),sa}function ca(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[Ne]=e,t[Oe]=r,n){case"dialog":Fc("cancel",t),Fc("close",t);break;case"iframe":case"object":case"embed":Fc("load",t);break;case"video":case"audio":for(n=0;n<Rc.length;n++)Fc(Rc[n],t);break;case"source":Fc("error",t);break;case"img":case"image":case"link":Fc("error",t),Fc("load",t);break;case"details":Fc("toggle",t);break;case"input":Fc("invalid",t),yt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0),dt(t);break;case"select":Fc("invalid",t);break;case"textarea":Fc("invalid",t),kt(t,r.value,r.defaultValue,r.children),dt(t)}"string"!=typeof(n=r.children)&&"number"!=typeof n&&"bigint"!=typeof n||t.textContent===""+n||!0===r.suppressHydrationWarning||Yc(t.textContent,n)?(null!=r.popover&&(Fc("beforetoggle",t),Fc("toggle",t)),null!=r.onScroll&&Fc("scroll",t),null!=r.onScrollEnd&&Fc("scrollend",t),null!=r.onClick&&(t.onclick=Xc),t=!0):t=!1,t||ua(e)}function da(e){for(ra=e.return;ra;)switch(ra.tag){case 5:case 13:return void(la=!1);case 27:case 3:return void(la=!0);default:ra=ra.return}}function fa(e){if(e!==ra)return!1;if(!oa)return da(e),oa=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t=!("form"!==(t=e.type)&&"button"!==t)||id(e.type,e.memoizedProps)),t=!t),t&&aa&&ua(e),da(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,n=0;e;){if(8===e.nodeType)if("/$"===(t=e.data)){if(0===n){aa=yd(e.nextSibling);break e}n--}else"$"!==t&&"$!"!==t&&"$?"!==t||n++;e=e.nextSibling}aa=null}}else 27===n?(n=aa,pd(e.type)?(e=bd,bd=null,aa=e):aa=n):aa=ra?yd(e.stateNode.nextSibling):null;return!0}function pa(){aa=ra=null,oa=!1}function ma(){var e=ia;return null!==e&&(null===vu?vu=e:vu.push.apply(vu,e),ia=null),e}function ha(e){null===ia?ia=[e]:ia.push(e)}var ga=B(null),ya=null,ba=null;function va(e,t,n){$(ga,t._currentValue),t._currentValue=n}function wa(e){e._currentValue=ga.current,z(ga)}function ka(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Sa(e,t,n,r){var a=e.child;for(null!==a&&(a.return=e);null!==a;){var o=a.dependencies;if(null!==o){var l=a.child;o=o.firstContext;e:for(;null!==o;){var s=o;o=a;for(var u=0;u<t.length;u++)if(s.context===t[u]){o.lanes|=n,null!==(s=o.alternate)&&(s.lanes|=n),ka(o.return,n,e),r||(l=null);break e}o=s.next}}else if(18===a.tag){if(null===(l=a.return))throw Error(i(341));l.lanes|=n,null!==(o=l.alternate)&&(o.lanes|=n),ka(l,n,e),l=null}else l=a.child;if(null!==l)l.return=a;else for(l=a;null!==l;){if(l===e){l=null;break}if(null!==(a=l.sibling)){a.return=l.return,l=a;break}l=l.return}a=l}}function xa(e,t,n,r){e=null;for(var a=t,o=!1;null!==a;){if(!o)if(524288&a.flags)o=!0;else if(262144&a.flags)break;if(10===a.tag){var l=a.alternate;if(null===l)throw Error(i(387));if(null!==(l=l.memoizedProps)){var s=a.type;Kn(a.pendingProps.value,l.value)||(null!==e?e.push(s):e=[s])}}else if(a===G.current){if(null===(l=a.alternate))throw Error(i(387));l.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(null!==e?e.push(Qd):e=[Qd])}a=a.return}null!==e&&Sa(t,e,n,r),t.flags|=262144}function _a(e){for(e=e.firstContext;null!==e;){if(!Kn(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Ea(e){ya=e,ba=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function Ca(e){return Ta(ya,e)}function Aa(e,t){return null===ya&&Ea(e),Ta(e,t)}function Ta(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===ba){if(null===e)throw Error(i(308));ba=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else ba=ba.next=t;return n}var La="undefined"!=typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach((function(e){return e()}))}},ja=r.unstable_scheduleCallback,Pa=r.unstable_NormalPriority,Na={$$typeof:k,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Oa(){return{controller:new La,data:new Map,refCount:0}}function Ra(e){e.refCount--,0===e.refCount&&ja(Pa,(function(){e.controller.abort()}))}var Ma=null,Da=0,Fa=0,Ia=null;function Ba(){if(0===--Da&&null!==Ma){null!==Ia&&(Ia.status="fulfilled");var e=Ma;Ma=null,Fa=0,Ia=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var za=R.S;R.S=function(e,t){"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e,t){if(null===Ma){var n=Ma=[];Da=0,Fa=Lc(),Ia={status:"pending",value:void 0,then:function(e){n.push(e)}}}Da++,t.then(Ba,Ba)}(0,t),null!==za&&za(e,t)};var $a=B(null);function Ua(){var e=$a.current;return null!==e?e:ru.pooledCache}function qa(e,t){$($a,null===t?$a.current:t.pool)}function Ha(){var e=Ua();return null===e?null:{parent:Na._currentValue,pool:e}}var Ga=Error(i(460)),Va=Error(i(474)),Wa=Error(i(542)),Qa={then:function(){}};function Ka(e){return"fulfilled"===(e=e.status)||"rejected"===e}function Ya(){}function Xa(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(Ya,Ya),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw eo(e=t.reason),e;default:if("string"==typeof t.status)t.then(Ya,Ya);else{if(null!==(e=ru)&&100<e.shellSuspendCounter)throw Error(i(482));(e=t).status="pending",e.then((function(e){if("pending"===t.status){var n=t;n.status="fulfilled",n.value=e}}),(function(e){if("pending"===t.status){var n=t;n.status="rejected",n.reason=e}}))}switch(t.status){case"fulfilled":return t.value;case"rejected":throw eo(e=t.reason),e}throw Za=t,Ga}}var Za=null;function Ja(){if(null===Za)throw Error(i(459));var e=Za;return Za=null,e}function eo(e){if(e===Ga||e===Wa)throw Error(i(483))}var to=!1;function no(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ro(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ao(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function oo(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&nu){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=Or(e),Nr(e,null,n),t}return Lr(e,r,t,n),Or(e)}function io(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194048&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Ae(e,n)}}function lo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var so=!1;function uo(){if(so){if(null!==Ia)throw Ia}}function co(e,t,n,r){so=!1;var a=e.updateQueue;to=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&((l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var p=-536870913&l.lane,m=p!==l.lane;if(m?(ou&p)===p:(r&p)===p){0!==p&&p===Fa&&(so=!0),null!==c&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var h=e,g=l;p=t;var y=n;switch(g.tag){case 1:if("function"==typeof(h=g.payload)){d=h.call(y,d,p);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(p="function"==typeof(h=g.payload)?h.call(y,d,p):h))break e;d=f({},d,p);break e;case 2:to=!0}}null!==(p=l.callback)&&(e.flags|=64,m&&(e.flags|=8192),null===(m=a.callbacks)?a.callbacks=[p]:m.push(p))}else m={lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=m,s=d):c=c.next=m,i|=p;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(m=l).next,m.next=null,a.lastBaseUpdate=m,a.shared.pending=null}}null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null===o&&(a.shared.lanes=0),pu|=i,e.lanes=i,e.memoizedState=d}}function fo(e,t){if("function"!=typeof e)throw Error(i(191,e));e.call(t)}function po(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)fo(n[e],t)}var mo=B(null),ho=B(0);function go(e,t){$(ho,e=du),$(mo,t),du=e|t.baseLanes}function yo(){$(ho,du),$(mo,mo.current)}function bo(){du=ho.current,z(mo),z(ho)}var vo=0,wo=null,ko=null,So=null,xo=!1,_o=!1,Eo=!1,Co=0,Ao=0,To=null,Lo=0;function jo(){throw Error(i(321))}function Po(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Kn(e[n],t[n]))return!1;return!0}function No(e,t,n,r,a,o){return vo=o,wo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,R.H=null===e||null===e.memoizedState?Vi:Wi,Eo=!1,o=n(r,a),Eo=!1,_o&&(o=Ro(t,n,r,a)),Oo(e),o}function Oo(e){R.H=Gi;var t=null!==ko&&null!==ko.next;if(vo=0,So=ko=wo=null,xo=!1,Ao=0,To=null,t)throw Error(i(300));null===e||Al||null!==(e=e.dependencies)&&_a(e)&&(Al=!0)}function Ro(e,t,n,r){wo=e;var a=0;do{if(_o&&(To=null),Ao=0,_o=!1,25<=a)throw Error(i(301));if(a+=1,So=ko=null,null!=e.updateQueue){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,null!=o.memoCache&&(o.memoCache.index=0)}R.H=Qi,o=t(n,r)}while(_o);return o}function Mo(){var e=R.H,t=e.useState()[0];return t="function"==typeof t.then?$o(t):t,e=e.useState()[0],(null!==ko?ko.memoizedState:null)!==e&&(wo.flags|=1024),t}function Do(){var e=0!==Co;return Co=0,e}function Fo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Io(e){if(xo){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}xo=!1}vo=0,So=ko=wo=null,_o=!1,Ao=Co=0,To=null}function Bo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===So?wo.memoizedState=So=e:So=So.next=e,So}function zo(){if(null===ko){var e=wo.alternate;e=null!==e?e.memoizedState:null}else e=ko.next;var t=null===So?wo.memoizedState:So.next;if(null!==t)So=t,ko=e;else{if(null===e){if(null===wo.alternate)throw Error(i(467));throw Error(i(310))}e={memoizedState:(ko=e).memoizedState,baseState:ko.baseState,baseQueue:ko.baseQueue,queue:ko.queue,next:null},null===So?wo.memoizedState=So=e:So=So.next=e}return So}function $o(e){var t=Ao;return Ao+=1,null===To&&(To=[]),e=Xa(To,e,t),t=wo,null===(null===So?t.memoizedState:So.next)&&(t=t.alternate,R.H=null===t||null===t.memoizedState?Vi:Wi),e}function Uo(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return $o(e);if(e.$$typeof===k)return Ca(e)}throw Error(i(438,String(e)))}function qo(e){var t=null,n=wo.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var r=wo.alternate;null!==r&&(null!==(r=r.updateQueue)&&(null!=(r=r.memoCache)&&(t={data:r.data.map((function(e){return e.slice()})),index:0})))}if(null==t&&(t={data:[],index:0}),null===n&&(n={lastEffect:null,events:null,stores:null,memoCache:null},wo.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=T;return t.index++,n}function Ho(e,t){return"function"==typeof t?t(e):t}function Go(e){return Vo(zo(),ko,e)}function Vo(e,t,n){var r=e.queue;if(null===r)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,null===a)e.memoizedState=o;else{var s=l=null,u=null,c=t=a.next,d=!1;do{var f=-536870913&c.lane;if(f!==c.lane?(ou&f)===f:(vo&f)===f){var p=c.revertLane;if(0===p)null!==u&&(u=u.next={lane:0,revertLane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),f===Fa&&(d=!0);else{if((vo&p)===p){c=c.next,p===Fa&&(d=!0);continue}f={lane:0,revertLane:c.revertLane,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===u?(s=u=f,l=o):u=u.next=f,wo.lanes|=p,pu|=p}f=c.action,Eo&&n(o,f),o=c.hasEagerState?c.eagerState:n(o,f)}else p={lane:f,revertLane:c.revertLane,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===u?(s=u=p,l=o):u=u.next=p,wo.lanes|=f,pu|=f;c=c.next}while(null!==c&&c!==t);if(null===u?l=o:u.next=s,!Kn(o,e.memoizedState)&&(Al=!0,d&&null!==(n=Ia)))throw n;e.memoizedState=o,e.baseState=l,e.baseQueue=u,r.lastRenderedState=o}return null===a&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Wo(e){var t=zo(),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);Kn(o,t.memoizedState)||(Al=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Qo(e,t,n){var r=wo,a=zo(),o=oa;if(o){if(void 0===n)throw Error(i(407));n=n()}else n=t();var l=!Kn((ko||a).memoizedState,n);if(l&&(a.memoizedState=n,Al=!0),a=a.queue,yi(2048,8,Xo.bind(null,r,a,e),[e]),a.getSnapshot!==t||l||null!==So&&1&So.memoizedState.tag){if(r.flags|=2048,mi(9,{destroy:void 0,resource:void 0},Yo.bind(null,r,a,n,t),null),null===ru)throw Error(i(349));o||124&vo||Ko(r,t,n)}return n}function Ko(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=wo.updateQueue)?(t={lastEffect:null,events:null,stores:null,memoCache:null},wo.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Yo(e,t,n,r){t.value=n,t.getSnapshot=r,Zo(t)&&Jo(e)}function Xo(e,t,n){return n((function(){Zo(t)&&Jo(e)}))}function Zo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Kn(e,n)}catch(r){return!0}}function Jo(e){var t=Pr(e,2);null!==t&&Du(t,e,2)}function ei(e){var t=Bo();if("function"==typeof e){var n=e;if(e=n(),Eo){fe(!0);try{n()}finally{fe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ho,lastRenderedState:e},t}function ti(e,t,n,r){return e.baseState=n,Vo(e,ko,"function"==typeof r?r:Ho)}function ni(e,t,n,r,a){if(Ui(e))throw Error(i(485));if(null!==(e=t.action)){var o={payload:a,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};null!==R.T?n(!0):o.isTransition=!1,r(o),null===(n=t.pending)?(o.next=t.pending=o,ri(t,o)):(o.next=n.next,t.pending=n.next=o)}}function ri(e,t){var n=t.action,r=t.payload,a=e.state;if(t.isTransition){var o=R.T,i={};R.T=i;try{var l=n(a,r),s=R.S;null!==s&&s(i,l),ai(e,t,l)}catch(u){ii(e,t,u)}finally{R.T=o}}else try{ai(e,t,o=n(a,r))}catch(c){ii(e,t,c)}}function ai(e,t,n){null!==n&&"object"==typeof n&&"function"==typeof n.then?n.then((function(n){oi(e,t,n)}),(function(n){return ii(e,t,n)})):oi(e,t,n)}function oi(e,t,n){t.status="fulfilled",t.value=n,li(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,ri(e,n)))}function ii(e,t,n){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do{t.status="rejected",t.reason=n,li(t),t=t.next}while(t!==r)}e.action=null}function li(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function si(e,t){return t}function ui(e,t){if(oa){var n=ru.formState;if(null!==n){e:{var r=wo;if(oa){if(aa){t:{for(var a=aa,o=la;8!==a.nodeType;){if(!o){a=null;break t}if(null===(a=yd(a.nextSibling))){a=null;break t}}a="F!"===(o=a.data)||"F"===o?a:null}if(a){aa=yd(a.nextSibling),r="F!"===a.data;break e}}ua(r)}r=!1}r&&(t=n[0])}}return(n=Bo()).memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:si,lastRenderedState:t},n.queue=r,n=Bi.bind(null,wo,r),r.dispatch=n,r=ei(!1),o=$i.bind(null,wo,!1,r.queue),a={state:t,dispatch:null,action:e,pending:null},(r=Bo()).queue=a,n=ni.bind(null,wo,a,o,n),a.dispatch=n,r.memoizedState=e,[t,n,!1]}function ci(e){return di(zo(),ko,e)}function di(e,t,n){if(t=Vo(e,t,si)[0],e=Go(Ho)[0],"object"==typeof t&&null!==t&&"function"==typeof t.then)try{var r=$o(t)}catch(i){if(i===Ga)throw Wa;throw i}else r=t;var a=(t=zo()).queue,o=a.dispatch;return n!==t.memoizedState&&(wo.flags|=2048,mi(9,{destroy:void 0,resource:void 0},fi.bind(null,a,n),null)),[r,o,e]}function fi(e,t){e.action=t}function pi(e){var t=zo(),n=ko;if(null!==n)return di(t,n,e);zo(),t=t.memoizedState;var r=(n=zo()).queue.dispatch;return n.memoizedState=e,[t,r,!1]}function mi(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},null===(t=wo.updateQueue)&&(t={lastEffect:null,events:null,stores:null,memoCache:null},wo.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function hi(){return zo().memoizedState}function gi(e,t,n,r){var a=Bo();r=void 0===r?null:r,wo.flags|=e,a.memoizedState=mi(1|t,{destroy:void 0,resource:void 0},n,r)}function yi(e,t,n,r){var a=zo();r=void 0===r?null:r;var o=a.memoizedState.inst;null!==ko&&null!==r&&Po(r,ko.memoizedState.deps)?a.memoizedState=mi(t,o,n,r):(wo.flags|=e,a.memoizedState=mi(1|t,o,n,r))}function bi(e,t){gi(8390656,8,e,t)}function vi(e,t){yi(2048,8,e,t)}function wi(e,t){return yi(4,2,e,t)}function ki(e,t){return yi(4,4,e,t)}function Si(e,t){if("function"==typeof t){e=e();var n=t(e);return function(){"function"==typeof n?n():t(null)}}if(null!=t)return e=e(),t.current=e,function(){t.current=null}}function xi(e,t,n){n=null!=n?n.concat([e]):null,yi(4,4,Si.bind(null,t,e),n)}function _i(){}function Ei(e,t){var n=zo();t=void 0===t?null:t;var r=n.memoizedState;return null!==t&&Po(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ci(e,t){var n=zo();t=void 0===t?null:t;var r=n.memoizedState;if(null!==t&&Po(t,r[1]))return r[0];if(r=e(),Eo){fe(!0);try{e()}finally{fe(!1)}}return n.memoizedState=[r,t],r}function Ai(e,t,n){return void 0===n||1073741824&vo?e.memoizedState=t:(e.memoizedState=n,e=Mu(),wo.lanes|=e,pu|=e,n)}function Ti(e,t,n,r){return Kn(n,t)?n:null!==mo.current?(e=Ai(e,n,r),Kn(e,t)||(Al=!0),e):42&vo?(e=Mu(),wo.lanes|=e,pu|=e,t):(Al=!0,e.memoizedState=n)}function Li(e,t,n,r,a){var o=M.p;M.p=0!==o&&8>o?o:8;var i,l,s,u=R.T,c={};R.T=c,$i(e,!1,t,n);try{var d=a(),f=R.S;if(null!==f&&f(c,d),null!==d&&"object"==typeof d&&"function"==typeof d.then)zi(e,t,(i=r,l=[],s={status:"pending",value:null,reason:null,then:function(e){l.push(e)}},d.then((function(){s.status="fulfilled",s.value=i;for(var e=0;e<l.length;e++)(0,l[e])(i)}),(function(e){for(s.status="rejected",s.reason=e,e=0;e<l.length;e++)(0,l[e])(void 0)})),s),Ru());else zi(e,t,r,Ru())}catch(p){zi(e,t,{then:function(){},status:"rejected",reason:p},Ru())}finally{M.p=o,R.T=u}}function ji(){}function Pi(e,t,n,r){if(5!==e.tag)throw Error(i(476));var a=Ni(e).queue;Li(e,a,t,D,null===n?ji:function(){return Oi(e),n(r)})}function Ni(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:D,baseState:D,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ho,lastRenderedState:D},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ho,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function Oi(e){zi(e,Ni(e).next.queue,{},Ru())}function Ri(){return Ca(Qd)}function Mi(){return zo().memoizedState}function Di(){return zo().memoizedState}function Fi(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=Ru(),r=oo(t,e=ao(n),n);return null!==r&&(Du(r,t,n),io(r,t,n)),t={cache:Oa()},void(e.payload=t)}t=t.return}}function Ii(e,t,n){var r=Ru();n={lane:r,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null},Ui(e)?qi(t,n):null!==(n=jr(e,t,n,r))&&(Du(n,e,r),Hi(n,t,r))}function Bi(e,t,n){zi(e,t,n,Ru())}function zi(e,t,n,r){var a={lane:r,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ui(e))qi(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,Kn(l,i))return Lr(e,t,a,0),null===ru&&Tr(),!1}catch(s){}if(null!==(n=jr(e,t,a,r)))return Du(n,e,r),Hi(n,t,r),!0}return!1}function $i(e,t,n,r){if(r={lane:2,revertLane:Lc(),action:r,hasEagerState:!1,eagerState:null,next:null},Ui(e)){if(t)throw Error(i(479))}else null!==(t=jr(e,n,r,2))&&Du(t,e,2)}function Ui(e){var t=e.alternate;return e===wo||null!==t&&t===wo}function qi(e,t){_o=xo=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Hi(e,t,n){if(4194048&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Ae(e,n)}}var Gi={readContext:Ca,use:Uo,useCallback:jo,useContext:jo,useEffect:jo,useImperativeHandle:jo,useLayoutEffect:jo,useInsertionEffect:jo,useMemo:jo,useReducer:jo,useRef:jo,useState:jo,useDebugValue:jo,useDeferredValue:jo,useTransition:jo,useSyncExternalStore:jo,useId:jo,useHostTransitionStatus:jo,useFormState:jo,useActionState:jo,useOptimistic:jo,useMemoCache:jo,useCacheRefresh:jo},Vi={readContext:Ca,use:Uo,useCallback:function(e,t){return Bo().memoizedState=[e,void 0===t?null:t],e},useContext:Ca,useEffect:bi,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,gi(4194308,4,Si.bind(null,t,e),n)},useLayoutEffect:function(e,t){return gi(4194308,4,e,t)},useInsertionEffect:function(e,t){gi(4,2,e,t)},useMemo:function(e,t){var n=Bo();t=void 0===t?null:t;var r=e();if(Eo){fe(!0);try{e()}finally{fe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Bo();if(void 0!==n){var a=n(t);if(Eo){fe(!0);try{n(t)}finally{fe(!1)}}}else a=t;return r.memoizedState=r.baseState=a,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},r.queue=e,e=e.dispatch=Ii.bind(null,wo,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Bo().memoizedState=e},useState:function(e){var t=(e=ei(e)).queue,n=Bi.bind(null,wo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:_i,useDeferredValue:function(e,t){return Ai(Bo(),e,t)},useTransition:function(){var e=ei(!1);return e=Li.bind(null,wo,e.queue,!0,!1),Bo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=wo,a=Bo();if(oa){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===ru)throw Error(i(349));124&ou||Ko(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,bi(Xo.bind(null,r,o,e),[e]),r.flags|=2048,mi(9,{destroy:void 0,resource:void 0},Yo.bind(null,r,o,n,t),null),n},useId:function(){var e=Bo(),t=ru.identifierPrefix;if(oa){var n=Zr;t="\xab"+t+"R"+(n=(Xr&~(1<<32-pe(Xr)-1)).toString(32)+n),0<(n=Co++)&&(t+="H"+n.toString(32)),t+="\xbb"}else t="\xab"+t+"r"+(n=Lo++).toString(32)+"\xbb";return e.memoizedState=t},useHostTransitionStatus:Ri,useFormState:ui,useActionState:ui,useOptimistic:function(e){var t=Bo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=$i.bind(null,wo,!0,n),n.dispatch=t,[e,t]},useMemoCache:qo,useCacheRefresh:function(){return Bo().memoizedState=Fi.bind(null,wo)}},Wi={readContext:Ca,use:Uo,useCallback:Ei,useContext:Ca,useEffect:vi,useImperativeHandle:xi,useInsertionEffect:wi,useLayoutEffect:ki,useMemo:Ci,useReducer:Go,useRef:hi,useState:function(){return Go(Ho)},useDebugValue:_i,useDeferredValue:function(e,t){return Ti(zo(),ko.memoizedState,e,t)},useTransition:function(){var e=Go(Ho)[0],t=zo().memoizedState;return["boolean"==typeof e?e:$o(e),t]},useSyncExternalStore:Qo,useId:Mi,useHostTransitionStatus:Ri,useFormState:ci,useActionState:ci,useOptimistic:function(e,t){return ti(zo(),0,e,t)},useMemoCache:qo,useCacheRefresh:Di},Qi={readContext:Ca,use:Uo,useCallback:Ei,useContext:Ca,useEffect:vi,useImperativeHandle:xi,useInsertionEffect:wi,useLayoutEffect:ki,useMemo:Ci,useReducer:Wo,useRef:hi,useState:function(){return Wo(Ho)},useDebugValue:_i,useDeferredValue:function(e,t){var n=zo();return null===ko?Ai(n,e,t):Ti(n,ko.memoizedState,e,t)},useTransition:function(){var e=Wo(Ho)[0],t=zo().memoizedState;return["boolean"==typeof e?e:$o(e),t]},useSyncExternalStore:Qo,useId:Mi,useHostTransitionStatus:Ri,useFormState:pi,useActionState:pi,useOptimistic:function(e,t){var n=zo();return null!==ko?ti(n,0,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:qo,useCacheRefresh:Di},Ki=null,Yi=0;function Xi(e){var t=Yi;return Yi+=1,null===Ki&&(Ki=[]),Xa(Ki,e,t)}function Zi(e,t){t=t.props.ref,e.ref=void 0!==t?t:null}function Ji(e,t){if(t.$$typeof===p)throw Error(i(525));throw e=Object.prototype.toString.call(t),Error(i(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function el(e){return(0,e._init)(e._payload)}function tl(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;null!==e;)null!==e.key?t.set(e.key,e):t.set(e.index,e),e=e.sibling;return t}function a(e,t){return(e=Ir(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|=67108866,n):r:(t.flags|=67108866,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=67108866),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ur(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){var o=n.type;return o===g?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===C&&el(o)===t.type)?(Zi(t=a(t,n.props),n),t.return=e,t):(Zi(t=zr(n.type,n.key,n.props,null,e.mode,r),n),t.return=e,t)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=qr(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=$r(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t||"bigint"==typeof t)return(t=Ur(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case m:return Zi(n=zr(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case h:return(t=qr(t,e.mode,n)).return=e,t;case C:return f(e,t=(0,t._init)(t._payload),n)}if(O(t)||j(t))return(t=$r(t,e.mode,n,null)).return=e,t;if("function"==typeof t.then)return f(e,Xi(t),n);if(t.$$typeof===k)return f(e,Aa(e,t),n);Ji(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case m:return n.key===a?u(e,t,n,r):null;case h:return n.key===a?c(e,t,n,r):null;case C:return p(e,t,n=(a=n._init)(n._payload),r)}if(O(n)||j(n))return null!==a?null:d(e,t,n,r,null);if("function"==typeof n.then)return p(e,t,Xi(n),r);if(n.$$typeof===k)return p(e,t,Aa(e,n),r);Ji(e,n)}return null}function y(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r||"bigint"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case m:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case h:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case C:return y(e,t,n,r=(0,r._init)(r._payload),a)}if(O(r)||j(r))return d(t,e=e.get(n)||null,r,a,null);if("function"==typeof r.then)return y(e,t,n,Xi(r),a);if(r.$$typeof===k)return y(e,t,n,Aa(t,r),a);Ji(t,r)}return null}function b(s,u,c,d){if("object"==typeof c&&null!==c&&c.type===g&&null===c.key&&(c=c.props.children),"object"==typeof c&&null!==c){switch(c.$$typeof){case m:e:{for(var v=c.key;null!==u;){if(u.key===v){if((v=c.type)===g){if(7===u.tag){n(s,u.sibling),(d=a(u,c.props.children)).return=s,s=d;break e}}else if(u.elementType===v||"object"==typeof v&&null!==v&&v.$$typeof===C&&el(v)===u.type){n(s,u.sibling),Zi(d=a(u,c.props),c),d.return=s,s=d;break e}n(s,u);break}t(s,u),u=u.sibling}c.type===g?((d=$r(c.props.children,s.mode,d,c.key)).return=s,s=d):(Zi(d=zr(c.type,c.key,c.props,null,s.mode,d),c),d.return=s,s=d)}return l(s);case h:e:{for(v=c.key;null!==u;){if(u.key===v){if(4===u.tag&&u.stateNode.containerInfo===c.containerInfo&&u.stateNode.implementation===c.implementation){n(s,u.sibling),(d=a(u,c.children||[])).return=s,s=d;break e}n(s,u);break}t(s,u),u=u.sibling}(d=qr(c,s.mode,d)).return=s,s=d}return l(s);case C:return b(s,u,c=(v=c._init)(c._payload),d)}if(O(c))return function(a,i,l,s){for(var u=null,c=null,d=i,m=i=0,h=null;null!==d&&m<l.length;m++){d.index>m?(h=d,d=null):h=d.sibling;var g=p(a,d,l[m],s);if(null===g){null===d&&(d=h);break}e&&d&&null===g.alternate&&t(a,d),i=o(g,i,m),null===c?u=g:c.sibling=g,c=g,d=h}if(m===l.length)return n(a,d),oa&&Jr(a,m),u;if(null===d){for(;m<l.length;m++)null!==(d=f(a,l[m],s))&&(i=o(d,i,m),null===c?u=d:c.sibling=d,c=d);return oa&&Jr(a,m),u}for(d=r(d);m<l.length;m++)null!==(h=y(d,a,m,l[m],s))&&(e&&null!==h.alternate&&d.delete(null===h.key?m:h.key),i=o(h,i,m),null===c?u=h:c.sibling=h,c=h);return e&&d.forEach((function(e){return t(a,e)})),oa&&Jr(a,m),u}(s,u,c,d);if(j(c)){if("function"!=typeof(v=j(c)))throw Error(i(150));return function(a,l,s,u){if(null==s)throw Error(i(151));for(var c=null,d=null,m=l,h=l=0,g=null,b=s.next();null!==m&&!b.done;h++,b=s.next()){m.index>h?(g=m,m=null):g=m.sibling;var v=p(a,m,b.value,u);if(null===v){null===m&&(m=g);break}e&&m&&null===v.alternate&&t(a,m),l=o(v,l,h),null===d?c=v:d.sibling=v,d=v,m=g}if(b.done)return n(a,m),oa&&Jr(a,h),c;if(null===m){for(;!b.done;h++,b=s.next())null!==(b=f(a,b.value,u))&&(l=o(b,l,h),null===d?c=b:d.sibling=b,d=b);return oa&&Jr(a,h),c}for(m=r(m);!b.done;h++,b=s.next())null!==(b=y(m,a,h,b.value,u))&&(e&&null!==b.alternate&&m.delete(null===b.key?h:b.key),l=o(b,l,h),null===d?c=b:d.sibling=b,d=b);return e&&m.forEach((function(e){return t(a,e)})),oa&&Jr(a,h),c}(s,u,c=v.call(c),d)}if("function"==typeof c.then)return b(s,u,Xi(c),d);if(c.$$typeof===k)return b(s,u,Aa(s,c),d);Ji(s,c)}return"string"==typeof c&&""!==c||"number"==typeof c||"bigint"==typeof c?(c=""+c,null!==u&&6===u.tag?(n(s,u.sibling),(d=a(u,c)).return=s,s=d):(n(s,u),(d=Ur(c,s.mode,d)).return=s,s=d),l(s)):n(s,u)}return function(e,t,n,r){try{Yi=0;var a=b(e,t,n,r);return Ki=null,a}catch(i){if(i===Ga||i===Wa)throw i;var o=Dr(29,i,null,e.mode);return o.lanes=r,o.return=e,o}}}var nl=tl(!0),rl=tl(!1),al=B(null),ol=null;function il(e){var t=e.alternate;$(cl,1&cl.current),$(al,e),null===ol&&(null===t||null!==mo.current||null!==t.memoizedState)&&(ol=e)}function ll(e){if(22===e.tag){if($(cl,cl.current),$(al,e),null===ol){var t=e.alternate;null!==t&&null!==t.memoizedState&&(ol=e)}}else sl()}function sl(){$(cl,cl.current),$(al,al.current)}function ul(e){z(al),ol===e&&(ol=null),z(cl)}var cl=B(0);function dl(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||gd(n)))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function fl(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:f({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var pl={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Ru(),a=ao(r);a.payload=t,null!=n&&(a.callback=n),null!==(t=oo(e,a,r))&&(Du(t,e,r),io(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Ru(),a=ao(r);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=oo(e,a,r))&&(Du(t,e,r),io(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Ru(),r=ao(n);r.tag=2,null!=t&&(r.callback=t),null!==(t=oo(e,r,n))&&(Du(t,e,n),io(t,e,n))}};function ml(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!Yn(n,r)||!Yn(a,o))}function hl(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&&pl.enqueueReplaceState(t,t.state,null)}function gl(e,t){var n=t;if("ref"in t)for(var r in n={},t)"ref"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var a in n===t&&(n=f({},n)),e)void 0===n[a]&&(n[a]=e[a]);return n}var yl="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function bl(e){yl(e)}function vl(e){console.error(e)}function wl(e){yl(e)}function kl(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(n){setTimeout((function(){throw n}))}}function Sl(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(r){setTimeout((function(){throw r}))}}function xl(e,t,n){return(n=ao(n)).tag=3,n.payload={element:null},n.callback=function(){kl(e,t)},n}function _l(e){return(e=ao(e)).tag=3,e}function El(e,t,n,r){var a=n.type.getDerivedStateFromError;if("function"==typeof a){var o=r.value;e.payload=function(){return a(o)},e.callback=function(){Sl(t,n,r)}}var i=n.stateNode;null!==i&&"function"==typeof i.componentDidCatch&&(e.callback=function(){Sl(t,n,r),"function"!=typeof a&&(null===_u?_u=new Set([this]):_u.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var Cl=Error(i(461)),Al=!1;function Tl(e,t,n,r){t.child=null===e?rl(t,null,n,r):nl(t,e.child,n,r)}function Ll(e,t,n,r,a){n=n.render;var o=t.ref;if("ref"in r){var i={};for(var l in r)"ref"!==l&&(i[l]=r[l])}else i=r;return Ea(t),r=No(e,t,n,i,o,a),l=Do(),null===e||Al?(oa&&l&&ta(t),t.flags|=1,Tl(e,t,r,a),t.child):(Fo(e,t,a),Kl(e,t,a))}function jl(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Fr(o)||void 0!==o.defaultProps||null!==n.compare?((e=zr(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Pl(e,t,o,r,a))}if(o=e.child,!Yl(e,a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:Yn)(i,r)&&e.ref===t.ref)return Kl(e,t,a)}return t.flags|=1,(e=Ir(o,r)).ref=t.ref,e.return=t,t.child=e}function Pl(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(Yn(o,r)&&e.ref===t.ref){if(Al=!1,t.pendingProps=r=o,!Yl(e,a))return t.lanes=e.lanes,Kl(e,t,a);131072&e.flags&&(Al=!0)}}return Ml(e,t,n,r,a)}function Nl(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode){if(128&t.flags){if(r=null!==o?o.baseLanes|n:n,null!==e){for(a=t.child=e.child,o=0;null!==a;)o=o|a.lanes|a.childLanes,a=a.sibling;t.childLanes=o&~r}else t.childLanes=0,t.child=null;return Ol(e,t,r,n)}if(!(536870912&n))return t.lanes=t.childLanes=536870912,Ol(e,t,null!==o?o.baseLanes|n:n,n);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&qa(0,null!==o?o.cachePool:null),null!==o?go(t,o):yo(),ll(t)}else null!==o?(qa(0,o.cachePool),go(t,o),sl(),t.memoizedState=null):(null!==e&&qa(0,null),yo(),sl());return Tl(e,t,a,n),t.child}function Ol(e,t,n,r){var a=Ua();return a=null===a?null:{parent:Na._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},null!==e&&qa(0,null),yo(),ll(t),null!==e&&xa(e,t,r,!0),null}function Rl(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!=typeof n&&"object"!=typeof n)throw Error(i(284));null!==e&&e.ref===n||(t.flags|=4194816)}}function Ml(e,t,n,r,a){return Ea(t),n=No(e,t,n,r,void 0,a),r=Do(),null===e||Al?(oa&&r&&ta(t),t.flags|=1,Tl(e,t,n,a),t.child):(Fo(e,t,a),Kl(e,t,a))}function Dl(e,t,n,r,a,o){return Ea(t),t.updateQueue=null,n=Ro(t,r,n,a),Oo(e),r=Do(),null===e||Al?(oa&&r&&ta(t),t.flags|=1,Tl(e,t,n,o),t.child):(Fo(e,t,o),Kl(e,t,o))}function Fl(e,t,n,r,a){if(Ea(t),null===t.stateNode){var o=Rr,i=n.contextType;"object"==typeof i&&null!==i&&(o=Ca(i)),o=new n(r,o),t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,o.updater=pl,t.stateNode=o,o._reactInternals=t,(o=t.stateNode).props=r,o.state=t.memoizedState,o.refs={},no(t),i=n.contextType,o.context="object"==typeof i&&null!==i?Ca(i):Rr,o.state=t.memoizedState,"function"==typeof(i=n.getDerivedStateFromProps)&&(fl(t,n,i,r),o.state=t.memoizedState),"function"==typeof n.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(i=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),i!==o.state&&pl.enqueueReplaceState(o,o.state,null),co(t,r,o,a),uo(),o.state=t.memoizedState),"function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){o=t.stateNode;var l=t.memoizedProps,s=gl(n,l);o.props=s;var u=o.context,c=n.contextType;i=Rr,"object"==typeof c&&null!==c&&(i=Ca(c));var d=n.getDerivedStateFromProps;c="function"==typeof d||"function"==typeof o.getSnapshotBeforeUpdate,l=t.pendingProps!==l,c||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(l||u!==i)&&hl(t,o,r,i),to=!1;var f=t.memoizedState;o.state=f,co(t,r,o,a),uo(),u=t.memoizedState,l||f!==u||to?("function"==typeof d&&(fl(t,n,d,r),u=t.memoizedState),(s=to||ml(t,n,s,r,f,u,i))?(c||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.flags|=4194308)):("function"==typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),o.props=r,o.state=u,o.context=i,r=s):("function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,ro(e,t),c=gl(n,i=t.memoizedProps),o.props=c,d=t.pendingProps,f=o.context,u=n.contextType,s=Rr,"object"==typeof u&&null!==u&&(s=Ca(u)),(u="function"==typeof(l=n.getDerivedStateFromProps)||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(i!==d||f!==s)&&hl(t,o,r,s),to=!1,f=t.memoizedState,o.state=f,co(t,r,o,a),uo();var p=t.memoizedState;i!==d||f!==p||to||null!==e&&null!==e.dependencies&&_a(e.dependencies)?("function"==typeof l&&(fl(t,n,l,r),p=t.memoizedState),(c=to||ml(t,n,c,r,f,p,s)||null!==e&&null!==e.dependencies&&_a(e.dependencies))?(u||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,p,s),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,p,s)),"function"==typeof o.componentDidUpdate&&(t.flags|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),o.props=r,o.state=p,o.context=s,r=c):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return o=r,Rl(e,t),r=!!(128&t.flags),o||r?(o=t.stateNode,n=r&&"function"!=typeof n.getDerivedStateFromError?null:o.render(),t.flags|=1,null!==e&&r?(t.child=nl(t,e.child,null,a),t.child=nl(t,null,n,a)):Tl(e,t,n,a),t.memoizedState=o.state,e=t.child):e=Kl(e,t,a),e}function Il(e,t,n,r){return pa(),t.flags|=256,Tl(e,t,n,r),t.child}var Bl={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function zl(e){return{baseLanes:e,cachePool:Ha()}}function $l(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=gu),e}function Ul(e,t,n){var r,a=t.pendingProps,o=!1,l=!!(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&!!(2&cl.current)),r&&(o=!0,t.flags&=-129),r=!!(32&t.flags),t.flags&=-33,null===e){if(oa){if(o?il(t):sl(),oa){var s,u=aa;if(s=u){e:{for(s=u,u=la;8!==s.nodeType;){if(!u){u=null;break e}if(null===(s=yd(s.nextSibling))){u=null;break e}}u=s}null!==u?(t.memoizedState={dehydrated:u,treeContext:null!==Yr?{id:Xr,overflow:Zr}:null,retryLane:536870912,hydrationErrors:null},(s=Dr(18,null,null,0)).stateNode=u,s.return=t,t.child=s,ra=t,aa=null,s=!0):s=!1}s||ua(t)}if(null!==(u=t.memoizedState)&&null!==(u=u.dehydrated))return gd(u)?t.lanes=32:t.lanes=536870912,null;ul(t)}return u=a.children,a=a.fallback,o?(sl(),u=Hl({mode:"hidden",children:u},o=t.mode),a=$r(a,o,n,null),u.return=t,a.return=t,u.sibling=a,t.child=u,(o=t.child).memoizedState=zl(n),o.childLanes=$l(e,r,n),t.memoizedState=Bl,a):(il(t),ql(t,u))}if(null!==(s=e.memoizedState)&&null!==(u=s.dehydrated)){if(l)256&t.flags?(il(t),t.flags&=-257,t=Gl(e,t,n)):null!==t.memoizedState?(sl(),t.child=e.child,t.flags|=128,t=null):(sl(),o=a.fallback,u=t.mode,a=Hl({mode:"visible",children:a.children},u),(o=$r(o,u,n,null)).flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,nl(t,e.child,null,n),(a=t.child).memoizedState=zl(n),a.childLanes=$l(e,r,n),t.memoizedState=Bl,t=o);else if(il(t),gd(u)){if(r=u.nextSibling&&u.nextSibling.dataset)var c=r.dgst;r=c,(a=Error(i(419))).stack="",a.digest=r,ha({value:a,source:null,stack:null}),t=Gl(e,t,n)}else if(Al||xa(e,t,n,!1),r=0!==(n&e.childLanes),Al||r){if(null!==(r=ru)&&(0!==(a=0!==((a=42&(a=n&-n)?1:Te(a))&(r.suspendedLanes|n))?0:a)&&a!==s.retryLane))throw s.retryLane=a,Pr(e,a),Du(r,e,a),Cl;"$?"===u.data||Wu(),t=Gl(e,t,n)}else"$?"===u.data?(t.flags|=192,t.child=e.child,t=null):(e=s.treeContext,aa=yd(u.nextSibling),ra=t,oa=!0,ia=null,la=!1,null!==e&&(Qr[Kr++]=Xr,Qr[Kr++]=Zr,Qr[Kr++]=Yr,Xr=e.id,Zr=e.overflow,Yr=t),(t=ql(t,a.children)).flags|=4096);return t}return o?(sl(),o=a.fallback,u=t.mode,c=(s=e.child).sibling,(a=Ir(s,{mode:"hidden",children:a.children})).subtreeFlags=65011712&s.subtreeFlags,null!==c?o=Ir(c,o):(o=$r(o,u,n,null)).flags|=2,o.return=t,a.return=t,a.sibling=o,t.child=a,a=o,o=t.child,null===(u=e.child.memoizedState)?u=zl(n):(null!==(s=u.cachePool)?(c=Na._currentValue,s=s.parent!==c?{parent:c,pool:c}:s):s=Ha(),u={baseLanes:u.baseLanes|n,cachePool:s}),o.memoizedState=u,o.childLanes=$l(e,r,n),t.memoizedState=Bl,a):(il(t),e=(n=e.child).sibling,(n=Ir(n,{mode:"visible",children:a.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function ql(e,t){return(t=Hl({mode:"visible",children:t},e.mode)).return=e,e.child=t}function Hl(e,t){return(e=Dr(22,e,null,t)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function Gl(e,t,n){return nl(t,e.child,null,n),(e=ql(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Vl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),ka(e.return,t,n)}function Wl(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ql(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Tl(e,t,r.children,n),2&(r=cl.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Vl(e,n,t);else if(19===e.tag)Vl(e,n,t);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}switch($(cl,r),a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===dl(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Wl(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===dl(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Wl(t,!0,n,null,o);break;case"together":Wl(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Kl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),pu|=t.lanes,0===(n&t.childLanes)){if(null===e)return null;if(xa(e,t,n,!1),0===(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Ir(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ir(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Yl(e,t){return 0!==(e.lanes&t)||!(null===(e=e.dependencies)||!_a(e))}function Xl(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)Al=!0;else{if(!(Yl(e,n)||128&t.flags))return Al=!1,function(e,t,n){switch(t.tag){case 3:V(t,t.stateNode.containerInfo),va(0,Na,e.memoizedState.cache),pa();break;case 27:case 5:Q(t);break;case 4:V(t,t.stateNode.containerInfo);break;case 10:va(0,t.type,t.memoizedProps.value);break;case 13:var r=t.memoizedState;if(null!==r)return null!==r.dehydrated?(il(t),t.flags|=128,null):0!==(n&t.child.childLanes)?Ul(e,t,n):(il(t),null!==(e=Kl(e,t,n))?e.sibling:null);il(t);break;case 19:var a=!!(128&e.flags);if((r=0!==(n&t.childLanes))||(xa(e,t,n,!1),r=0!==(n&t.childLanes)),a){if(r)return Ql(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),$(cl,cl.current),r)break;return null;case 22:case 23:return t.lanes=0,Nl(e,t,n);case 24:va(0,Na,e.memoizedState.cache)}return Kl(e,t,n)}(e,t,n);Al=!!(131072&e.flags)}else Al=!1,oa&&1048576&t.flags&&ea(t,Wr,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var r=t.elementType,a=r._init;if(r=a(r._payload),t.type=r,"function"!=typeof r){if(null!=r){if((a=r.$$typeof)===S){t.tag=11,t=Ll(null,t,r,e,n);break e}if(a===E){t.tag=14,t=jl(null,t,r,e,n);break e}}throw t=N(r)||r,Error(i(306,t,""))}Fr(r)?(e=gl(r,e),t.tag=1,t=Fl(null,t,r,e,n)):(t.tag=0,t=Ml(null,t,r,e,n))}return t;case 0:return Ml(e,t,t.type,t.pendingProps,n);case 1:return Fl(e,t,r=t.type,a=gl(r,t.pendingProps),n);case 3:e:{if(V(t,t.stateNode.containerInfo),null===e)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,ro(e,t),co(t,r,null,n);var l=t.memoizedState;if(r=l.cache,va(0,Na,r),r!==o.cache&&Sa(t,[Na],n,!0),uo(),r=l.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:l.cache},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=Il(e,t,r,n);break e}if(r!==a){ha(a=_r(Error(i(424)),t)),t=Il(e,t,r,n);break e}if(9===(e=t.stateNode.containerInfo).nodeType)e=e.body;else e="HTML"===e.nodeName?e.ownerDocument.body:e;for(aa=yd(e.firstChild),ra=t,oa=!0,ia=null,la=!0,n=rl(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(pa(),r===a){t=Kl(e,t,n);break e}Tl(e,t,r,n)}t=t.child}return t;case 26:return Rl(e,t),null===e?(n=Td(t.type,null,t.pendingProps,null))?t.memoizedState=n:oa||(n=t.type,e=t.pendingProps,(r=rd(H.current).createElement(n))[Ne]=t,r[Oe]=e,ed(r,n,e),Ge(r),t.stateNode=r):t.memoizedState=Td(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Q(t),null===e&&oa&&(r=t.stateNode=wd(t.type,t.pendingProps,H.current),ra=t,la=!0,a=aa,pd(t.type)?(bd=a,aa=yd(r.firstChild)):aa=a),Tl(e,t,t.pendingProps.children,n),Rl(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&oa&&((a=r=aa)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){var a=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[Be])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(o=e.getAttribute("rel"))&&e.hasAttribute("data-precedence"))break;if(o!==a.rel||e.getAttribute("href")!==(null==a.href||""===a.href?null:a.href)||e.getAttribute("crossorigin")!==(null==a.crossOrigin?null:a.crossOrigin)||e.getAttribute("title")!==(null==a.title?null:a.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((o=e.getAttribute("src"))!==(null==a.src?null:a.src)||e.getAttribute("type")!==(null==a.type?null:a.type)||e.getAttribute("crossorigin")!==(null==a.crossOrigin?null:a.crossOrigin))&&o&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var o=null==a.name?null:""+a.name;if("hidden"===a.type&&e.getAttribute("name")===o)return e}if(null===(e=yd(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,la))?(t.stateNode=r,ra=t,aa=yd(r.firstChild),la=!1,a=!0):a=!1),a||ua(t)),Q(t),a=t.type,o=t.pendingProps,l=null!==e?e.memoizedProps:null,r=o.children,id(a,o)?r=null:null!==l&&id(a,l)&&(t.flags|=32),null!==t.memoizedState&&(a=No(e,t,Mo,null,null,n),Qd._currentValue=a),Rl(e,t),Tl(e,t,r,n),t.child;case 6:return null===e&&oa&&((e=n=aa)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;){if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n)return null;if(null===(e=yd(e.nextSibling)))return null}return e}(n,t.pendingProps,la))?(t.stateNode=n,ra=t,aa=null,e=!0):e=!1),e||ua(t)),null;case 13:return Ul(e,t,n);case 4:return V(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=nl(t,null,r,n):Tl(e,t,r,n),t.child;case 11:return Ll(e,t,t.type,t.pendingProps,n);case 7:return Tl(e,t,t.pendingProps,n),t.child;case 8:case 12:return Tl(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,va(0,t.type,r.value),Tl(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,Ea(t),r=r(a=Ca(a)),t.flags|=1,Tl(e,t,r,n),t.child;case 14:return jl(e,t,t.type,t.pendingProps,n);case 15:return Pl(e,t,t.type,t.pendingProps,n);case 19:return Ql(e,t,n);case 31:return r=t.pendingProps,n=t.mode,r={mode:r.mode,children:r.children},null===e?((n=Hl(r,n)).ref=t.ref,t.child=n,n.return=t,t=n):((n=Ir(e.child,r)).ref=t.ref,t.child=n,n.return=t,t=n),t;case 22:return Nl(e,t,n);case 24:return Ea(t),r=Ca(Na),null===e?(null===(a=Ua())&&(a=ru,o=Oa(),a.pooledCache=o,o.refCount++,null!==o&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},no(t),va(0,Na,a)):(0!==(e.lanes&n)&&(ro(e,t),co(t,null,null,n),uo()),a=e.memoizedState,o=t.memoizedState,a.parent!==r?(a={parent:r,cache:r},t.memoizedState=a,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=a),va(0,Na,r)):(r=o.cache,va(0,Na,r),r!==a.cache&&Sa(t,[Na],n,!0))),Tl(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Zl(e){e.flags|=4}function Jl(e,t){if("stylesheet"!==t.type||4&t.state.loading)e.flags&=-16777217;else if(e.flags|=16777216,!$d(t)){if(null!==(t=al.current)&&((4194048&ou)===ou?null!==ol:(62914560&ou)!==ou&&!(536870912&ou)||t!==ol))throw Za=Qa,Va;e.flags|=8192}}function es(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?xe():536870912,e.lanes|=t,yu|=t)}function ts(e,t){if(!oa)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 ns(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=65011712&a.subtreeFlags,r|=65011712&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function rs(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return ns(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),wa(Na),W(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||(fa(t)?Zl(t):null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,ma())),ns(t),null;case 26:return n=t.memoizedState,null===e?(Zl(t),null!==n?(ns(t),Jl(t,n)):(ns(t),t.flags&=-16777217)):n?n!==e.memoizedState?(Zl(t),ns(t),Jl(t,n)):(ns(t),t.flags&=-16777217):(e.memoizedProps!==r&&Zl(t),ns(t),t.flags&=-16777217),null;case 27:K(t),n=H.current;var a=t.type;if(null!==e&&null!=t.stateNode)e.memoizedProps!==r&&Zl(t);else{if(!r){if(null===t.stateNode)throw Error(i(166));return ns(t),null}e=U.current,fa(t)?ca(t):(e=wd(a,r,n),t.stateNode=e,Zl(t))}return ns(t),null;case 5:if(K(t),n=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&Zl(t);else{if(!r){if(null===t.stateNode)throw Error(i(166));return ns(t),null}if(e=U.current,fa(t))ca(t);else{switch(a=rd(H.current),e){case 1:e=a.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:e=a.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":e=a.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":e=a.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":(e=a.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild);break;case"select":e="string"==typeof r.is?a.createElement("select",{is:r.is}):a.createElement("select"),r.multiple?e.multiple=!0:r.size&&(e.size=r.size);break;default:e="string"==typeof r.is?a.createElement(n,{is:r.is}):a.createElement(n)}}e[Ne]=t,e[Oe]=r;e:for(a=t.child;null!==a;){if(5===a.tag||6===a.tag)e.appendChild(a.stateNode);else if(4!==a.tag&&27!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break e;for(;null===a.sibling;){if(null===a.return||a.return===t)break e;a=a.return}a.sibling.return=a.return,a=a.sibling}t.stateNode=e;e:switch(ed(e,n,r),n){case"button":case"input":case"select":case"textarea":e=!!r.autoFocus;break e;case"img":e=!0;break e;default:e=!1}e&&Zl(t)}}return ns(t),t.flags&=-16777217,null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&Zl(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));if(e=H.current,fa(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=ra))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Ne]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||Yc(e.nodeValue,n)))||ua(t)}else(e=rd(e).createTextNode(r))[Ne]=t,t.stateNode=e}return ns(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=fa(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(i(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(i(317));a[Ne]=t}else pa(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;ns(t),a=!1}else a=ma(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return 256&t.flags?(ul(t),t):(ul(t),null)}if(ul(t),128&t.flags)return t.lanes=n,t;if(n=null!==r,e=null!==e&&null!==e.memoizedState,n){a=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool);var o=null;null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)}return n!==e&&n&&(t.child.flags|=8192),es(t,t.updateQueue),ns(t),null;case 4:return W(),null===e&&zc(t.stateNode.containerInfo),ns(t),null;case 10:return wa(t.type),ns(t),null;case 19:if(z(cl),null===(a=t.memoizedState))return ns(t),null;if(r=!!(128&t.flags),null===(o=a.rendering))if(r)ts(a,!1);else{if(0!==fu||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(o=dl(e))){for(t.flags|=128,ts(a,!1),e=o.updateQueue,t.updateQueue=e,es(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Br(n,e),n=n.sibling;return $(cl,1&cl.current|2),t.child}e=e.sibling}null!==a.tail&&te()>Su&&(t.flags|=128,r=!0,ts(a,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=dl(o))){if(t.flags|=128,r=!0,e=e.updateQueue,t.updateQueue=e,es(t,e),ts(a,!0),null===a.tail&&"hidden"===a.tailMode&&!o.alternate&&!oa)return ns(t),null}else 2*te()-a.renderingStartTime>Su&&536870912!==n&&(t.flags|=128,r=!0,ts(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=a.last)?e.sibling=o:t.child=o,a.last=o)}return null!==a.tail?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=te(),t.sibling=null,e=cl.current,$(cl,r?1&e|2:1&e),t):(ns(t),null);case 22:case 23:return ul(t),bo(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?!!(536870912&n)&&!(128&t.flags)&&(ns(t),6&t.subtreeFlags&&(t.flags|=8192)):ns(t),null!==(n=t.updateQueue)&&es(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&z($a),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),wa(Na),ns(t),null;case 25:case 30:return null}throw Error(i(156,t.tag))}function as(e,t){switch(na(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return wa(Na),W(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return K(t),null;case 13:if(ul(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));pa()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return z(cl),null;case 4:return W(),null;case 10:return wa(t.type),null;case 22:case 23:return ul(t),bo(),null!==e&&z($a),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return wa(Na),null;default:return null}}function os(e,t){switch(na(t),t.tag){case 3:wa(Na),W();break;case 26:case 27:case 5:K(t);break;case 4:W();break;case 13:ul(t);break;case 19:z(cl);break;case 10:wa(t.type);break;case 22:case 23:ul(t),bo(),null!==e&&z($a);break;case 24:wa(Na)}}function is(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var a=r.next;n=a;do{if((n.tag&e)===e){r=void 0;var o=n.create,i=n.inst;r=o(),i.destroy=r}n=n.next}while(n!==a)}}catch(l){cc(t,t.return,l)}}function ls(e,t,n){try{var r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var o=a.next;r=o;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,a=t;var s=n,u=l;try{u()}catch(c){cc(a,s,c)}}}r=r.next}while(r!==o)}}catch(c){cc(t,t.return,c)}}function ss(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{po(t,n)}catch(r){cc(e,e.return,r)}}}function us(e,t,n){n.props=gl(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(r){cc(e,t,r)}}function cs(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof n?e.refCleanup=n(r):n.current=r}}catch(a){cc(e,t,a)}}function ds(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"==typeof r)try{r()}catch(a){cc(e,t,a)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(o){cc(e,t,o)}else n.current=null}function fs(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break e;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(a){cc(e,e.return,a)}}function ps(e,t,n){try{var r=e.stateNode;!function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,o=null,l=null,s=null,u=null,c=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&null!=f)switch(m){case"checked":case"value":break;case"defaultValue":u=f;default:r.hasOwnProperty(m)||Zc(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=m||null!=f))switch(p){case"type":o=m;break;case"name":a=m;break;case"checked":c=m;break;case"defaultChecked":d=m;break;case"value":l=m;break;case"defaultValue":s=m;break;case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(i(137,t));break;default:m!==f&&Zc(e,t,p,m,r,f)}}return void gt(e,l,s,u,c,d,o,a);case"select":for(o in m=l=s=p=null,n)if(u=n[o],n.hasOwnProperty(o)&&null!=u)switch(o){case"value":break;case"multiple":m=u;default:r.hasOwnProperty(o)||Zc(e,t,o,null,r,u)}for(a in r)if(o=r[a],u=n[a],r.hasOwnProperty(a)&&(null!=o||null!=u))switch(a){case"value":p=o;break;case"defaultValue":s=o;break;case"multiple":l=o;default:o!==u&&Zc(e,t,a,o,r,u)}return t=s,n=l,r=m,void(null!=p?vt(e,!!n,p,!1):!!r!=!!n&&(null!=t?vt(e,!!n,t,!0):vt(e,!!n,n?[]:"",!1)));case"textarea":for(s in m=p=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:Zc(e,t,s,null,r,a)}for(l in r)if(a=r[l],o=n[l],r.hasOwnProperty(l)&&(null!=a||null!=o))switch(l){case"value":p=a;break;case"defaultValue":m=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(i(91));break;default:a!==o&&Zc(e,t,l,a,r,o)}return void wt(e,p,m);case"option":for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&null!=p&&!r.hasOwnProperty(h))if("selected"===h)e.selected=!1;else Zc(e,t,h,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(null!=p||null!=m))if("selected"===u)e.selected=p&&"function"!=typeof p&&"symbol"!=typeof p;else Zc(e,t,u,p,r,m);return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&Zc(e,t,g,null,r,p);for(c in r)if(p=r[c],m=n[c],r.hasOwnProperty(c)&&p!==m&&(null!=p||null!=m))switch(c){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(i(137,t));break;default:Zc(e,t,c,p,r,m)}return;default:if(Ct(t)){for(var y in n)p=n[y],n.hasOwnProperty(y)&&void 0!==p&&!r.hasOwnProperty(y)&&Jc(e,t,y,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||void 0===p&&void 0===m||Jc(e,t,d,p,r,m);return}}for(var b in n)p=n[b],n.hasOwnProperty(b)&&null!=p&&!r.hasOwnProperty(b)&&Zc(e,t,b,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||null==p&&null==m||Zc(e,t,f,p,r,m)}(r,e.type,n,t),r[Oe]=t}catch(a){cc(e,e.return,a)}}function ms(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&pd(e.type)||4===e.tag}function hs(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ms(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&pd(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function gs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Xc));else if(4!==r&&(27===r&&pd(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(gs(e,t,n),e=e.sibling;null!==e;)gs(e,t,n),e=e.sibling}function ys(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&pd(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(ys(e,t,n),e=e.sibling;null!==e;)ys(e,t,n),e=e.sibling}function bs(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);ed(t,r,n),t[Ne]=e,t[Oe]=n}catch(o){cc(e,e.return,o)}}var vs=!1,ws=!1,ks=!1,Ss="function"==typeof WeakSet?WeakSet:Set,xs=null;function _s(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Fs(e,n),4&r&&is(5,n);break;case 1:if(Fs(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(i){cc(n,n.return,i)}else{var a=gl(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(a,t,e.__reactInternalSnapshotBeforeUpdate)}catch(l){cc(n,n.return,l)}}64&r&&ss(n),512&r&&cs(n,n.return);break;case 3:if(Fs(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{po(e,t)}catch(i){cc(n,n.return,i)}}break;case 27:null===t&&4&r&&bs(n);case 26:case 5:Fs(e,n),null===t&&4&r&&fs(n),512&r&&cs(n,n.return);break;case 12:Fs(e,n);break;case 13:Fs(e,n),4&r&&js(e,n),64&r&&(null!==(e=n.memoizedState)&&(null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$?"!==e.data||"complete"===n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=mc.bind(null,n))));break;case 22:if(!(r=null!==n.memoizedState||vs)){t=null!==t&&null!==t.memoizedState||ws,a=vs;var o=ws;vs=r,(ws=t)&&!o?Bs(e,n,!!(8772&n.subtreeFlags)):Fs(e,n),vs=a,ws=o}break;case 30:break;default:Fs(e,n)}}function Es(e){var t=e.alternate;null!==t&&(e.alternate=null,Es(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&ze(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Cs=null,As=!1;function Ts(e,t,n){for(n=n.child;null!==n;)Ls(e,t,n),n=n.sibling}function Ls(e,t,n){if(de&&"function"==typeof de.onCommitFiberUnmount)try{de.onCommitFiberUnmount(ce,n)}catch(o){}switch(n.tag){case 26:ws||ds(n,t),Ts(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:ws||ds(n,t);var r=Cs,a=As;pd(n.type)&&(Cs=n.stateNode,As=!1),Ts(e,t,n),kd(n.stateNode),Cs=r,As=a;break;case 5:ws||ds(n,t);case 6:if(r=Cs,a=As,Cs=null,Ts(e,t,n),As=a,null!==(Cs=r))if(As)try{(9===Cs.nodeType?Cs.body:"HTML"===Cs.nodeName?Cs.ownerDocument.body:Cs).removeChild(n.stateNode)}catch(i){cc(n,t,i)}else try{Cs.removeChild(n.stateNode)}catch(i){cc(n,t,i)}break;case 18:null!==Cs&&(As?(md(9===(e=Cs).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),Tf(e)):md(Cs,n.stateNode));break;case 4:r=Cs,a=As,Cs=n.stateNode.containerInfo,As=!0,Ts(e,t,n),Cs=r,As=a;break;case 0:case 11:case 14:case 15:ws||ls(2,n,t),ws||ls(4,n,t),Ts(e,t,n);break;case 1:ws||(ds(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount&&us(n,t,r)),Ts(e,t,n);break;case 21:Ts(e,t,n);break;case 22:ws=(r=ws)||null!==n.memoizedState,Ts(e,t,n),ws=r;break;default:Ts(e,t,n)}}function js(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&(null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))))try{Tf(e)}catch(n){cc(t,t.return,n)}}function Ps(e,t){var n=function(e){switch(e.tag){case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new Ss),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Ss),t;default:throw Error(i(435,e.tag))}}(e);t.forEach((function(t){var r=hc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}function Ns(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r],o=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 27:if(pd(s.type)){Cs=s.stateNode,As=!1;break e}break;case 5:Cs=s.stateNode,As=!1;break e;case 3:case 4:Cs=s.stateNode.containerInfo,As=!0;break e}s=s.return}if(null===Cs)throw Error(i(160));Ls(o,l,a),Cs=null,As=!1,null!==(o=a.alternate)&&(o.return=null),a.return=null}if(13878&t.subtreeFlags)for(t=t.child;null!==t;)Rs(t,e),t=t.sibling}var Os=null;function Rs(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Ns(t,e),Ms(e),4&r&&(ls(3,e,e.return),is(3,e),ls(5,e,e.return));break;case 1:Ns(t,e),Ms(e),512&r&&(ws||null===n||ds(n,n.return)),64&r&&vs&&(null!==(e=e.updateQueue)&&(null!==(r=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?r:n.concat(r))));break;case 26:var a=Os;if(Ns(t,e),Ms(e),512&r&&(ws||null===n||ds(n,n.return)),4&r){var o=null!==n?n.memoizedState:null;if(r=e.memoizedState,null===n)if(null===r)if(null===e.stateNode){e:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;t:switch(r){case"title":(!(o=a.getElementsByTagName("title")[0])||o[Be]||o[Ne]||"http://www.w3.org/2000/svg"===o.namespaceURI||o.hasAttribute("itemprop"))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector("head > title"))),ed(o,r,n),o[Ne]=e,Ge(o),r=o;break e;case"link":var l=Bd("link","href",a).get(r+(n.href||""));if(l)for(var s=0;s<l.length;s++)if((o=l[s]).getAttribute("href")===(null==n.href||""===n.href?null:n.href)&&o.getAttribute("rel")===(null==n.rel?null:n.rel)&&o.getAttribute("title")===(null==n.title?null:n.title)&&o.getAttribute("crossorigin")===(null==n.crossOrigin?null:n.crossOrigin)){l.splice(s,1);break t}ed(o=a.createElement(r),r,n),a.head.appendChild(o);break;case"meta":if(l=Bd("meta","content",a).get(r+(n.content||"")))for(s=0;s<l.length;s++)if((o=l[s]).getAttribute("content")===(null==n.content?null:""+n.content)&&o.getAttribute("name")===(null==n.name?null:n.name)&&o.getAttribute("property")===(null==n.property?null:n.property)&&o.getAttribute("http-equiv")===(null==n.httpEquiv?null:n.httpEquiv)&&o.getAttribute("charset")===(null==n.charSet?null:n.charSet)){l.splice(s,1);break t}ed(o=a.createElement(r),r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[Ne]=e,Ge(o),r=o}e.stateNode=r}else zd(a,e.type,e.stateNode);else e.stateNode=Rd(a,r,e.memoizedProps);else o!==r?(null===o?null!==n.stateNode&&(n=n.stateNode).parentNode.removeChild(n):o.count--,null===r?zd(a,e.type,e.stateNode):Rd(a,r,e.memoizedProps)):null===r&&null!==e.stateNode&&ps(e,e.memoizedProps,n.memoizedProps)}break;case 27:Ns(t,e),Ms(e),512&r&&(ws||null===n||ds(n,n.return)),null!==n&&4&r&&ps(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Ns(t,e),Ms(e),512&r&&(ws||null===n||ds(n,n.return)),32&e.flags){a=e.stateNode;try{St(a,"")}catch(m){cc(e,e.return,m)}}4&r&&null!=e.stateNode&&ps(e,a=e.memoizedProps,null!==n?n.memoizedProps:a),1024&r&&(ks=!0);break;case 6:if(Ns(t,e),Ms(e),4&r){if(null===e.stateNode)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(m){cc(e,e.return,m)}}break;case 3:if(Id=null,a=Os,Os=_d(t.containerInfo),Ns(t,e),Os=a,Ms(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Tf(t.containerInfo)}catch(m){cc(e,e.return,m)}ks&&(ks=!1,Ds(e));break;case 4:r=Os,Os=_d(e.stateNode.containerInfo),Ns(t,e),Ms(e),Os=r;break;case 12:default:Ns(t,e),Ms(e);break;case 13:Ns(t,e),Ms(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==n&&null!==n.memoizedState)&&(ku=te()),4&r&&(null!==(r=e.updateQueue)&&(e.updateQueue=null,Ps(e,r)));break;case 22:a=null!==e.memoizedState;var u=null!==n&&null!==n.memoizedState,c=vs,d=ws;if(vs=c||a,ws=d||u,Ns(t,e),ws=d,vs=c,Ms(e),8192&r)e:for(t=e.stateNode,t._visibility=a?-2&t._visibility:1|t._visibility,a&&(null===n||u||vs||ws||Is(e)),n=null,t=e;;){if(5===t.tag||26===t.tag){if(null===n){u=n=t;try{if(o=u.stateNode,a)"function"==typeof(l=o.style).setProperty?l.setProperty("display","none","important"):l.display="none";else{s=u.stateNode;var f=u.memoizedProps.style,p=null!=f&&f.hasOwnProperty("display")?f.display:null;s.style.display=null==p||"boolean"==typeof p?"":(""+p).trim()}}catch(m){cc(u,u.return,m)}}}else if(6===t.tag){if(null===n){u=t;try{u.stateNode.nodeValue=a?"":u.memoizedProps}catch(m){cc(u,u.return,m)}}}else if((22!==t.tag&&23!==t.tag||null===t.memoizedState||t===e)&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;null===t.sibling;){if(null===t.return||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}4&r&&(null!==(r=e.updateQueue)&&(null!==(n=r.retryQueue)&&(r.retryQueue=null,Ps(e,n))));break;case 19:Ns(t,e),Ms(e),4&r&&(null!==(r=e.updateQueue)&&(e.updateQueue=null,Ps(e,r)));case 30:case 21:}}function Ms(e){var t=e.flags;if(2&t){try{for(var n,r=e.return;null!==r;){if(ms(r)){n=r;break}r=r.return}if(null==n)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;ys(e,hs(e),a);break;case 5:var o=n.stateNode;32&n.flags&&(St(o,""),n.flags&=-33),ys(e,hs(e),o);break;case 3:case 4:var l=n.stateNode.containerInfo;gs(e,hs(e),l);break;default:throw Error(i(161))}}catch(s){cc(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function Ds(e){if(1024&e.subtreeFlags)for(e=e.child;null!==e;){var t=e;Ds(t),5===t.tag&&1024&t.flags&&t.stateNode.reset(),e=e.sibling}}function Fs(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)_s(e,t.alternate,t),t=t.sibling}function Is(e){for(e=e.child;null!==e;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:ls(4,t,t.return),Is(t);break;case 1:ds(t,t.return);var n=t.stateNode;"function"==typeof n.componentWillUnmount&&us(t,t.return,n),Is(t);break;case 27:kd(t.stateNode);case 26:case 5:ds(t,t.return),Is(t);break;case 22:null===t.memoizedState&&Is(t);break;default:Is(t)}e=e.sibling}}function Bs(e,t,n){for(n=n&&!!(8772&t.subtreeFlags),t=t.child;null!==t;){var r=t.alternate,a=e,o=t,i=o.flags;switch(o.tag){case 0:case 11:case 15:Bs(a,o,n),is(4,o);break;case 1:if(Bs(a,o,n),"function"==typeof(a=(r=o).stateNode).componentDidMount)try{a.componentDidMount()}catch(u){cc(r,r.return,u)}if(null!==(a=(r=o).updateQueue)){var l=r.stateNode;try{var s=a.shared.hiddenCallbacks;if(null!==s)for(a.shared.hiddenCallbacks=null,a=0;a<s.length;a++)fo(s[a],l)}catch(u){cc(r,r.return,u)}}n&&64&i&&ss(o),cs(o,o.return);break;case 27:bs(o);case 26:case 5:Bs(a,o,n),n&&null===r&&4&i&&fs(o),cs(o,o.return);break;case 12:Bs(a,o,n);break;case 13:Bs(a,o,n),n&&4&i&&js(a,o);break;case 22:null===o.memoizedState&&Bs(a,o,n),cs(o,o.return);break;case 30:break;default:Bs(a,o,n)}t=t.sibling}}function zs(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&Ra(n))}function $s(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&Ra(e))}function Us(e,t,n,r){if(10256&t.subtreeFlags)for(t=t.child;null!==t;)qs(e,t,n,r),t=t.sibling}function qs(e,t,n,r){var a=t.flags;switch(t.tag){case 0:case 11:case 15:Us(e,t,n,r),2048&a&&is(9,t);break;case 1:case 13:default:Us(e,t,n,r);break;case 3:Us(e,t,n,r),2048&a&&(e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&Ra(e)));break;case 12:if(2048&a){Us(e,t,n,r),e=t.stateNode;try{var o=t.memoizedProps,i=o.id,l=o.onPostCommit;"function"==typeof l&&l(i,null===t.alternate?"mount":"update",e.passiveEffectDuration,-0)}catch(s){cc(t,t.return,s)}}else Us(e,t,n,r);break;case 23:break;case 22:o=t.stateNode,i=t.alternate,null!==t.memoizedState?2&o._visibility?Us(e,t,n,r):Gs(e,t):2&o._visibility?Us(e,t,n,r):(o._visibility|=2,Hs(e,t,n,r,!!(10256&t.subtreeFlags))),2048&a&&zs(i,t);break;case 24:Us(e,t,n,r),2048&a&&$s(t.alternate,t)}}function Hs(e,t,n,r,a){for(a=a&&!!(10256&t.subtreeFlags),t=t.child;null!==t;){var o=e,i=t,l=n,s=r,u=i.flags;switch(i.tag){case 0:case 11:case 15:Hs(o,i,l,s,a),is(8,i);break;case 23:break;case 22:var c=i.stateNode;null!==i.memoizedState?2&c._visibility?Hs(o,i,l,s,a):Gs(o,i):(c._visibility|=2,Hs(o,i,l,s,a)),a&&2048&u&&zs(i.alternate,i);break;case 24:Hs(o,i,l,s,a),a&&2048&u&&$s(i.alternate,i);break;default:Hs(o,i,l,s,a)}t=t.sibling}}function Gs(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=e,r=t,a=r.flags;switch(r.tag){case 22:Gs(n,r),2048&a&&zs(r.alternate,r);break;case 24:Gs(n,r),2048&a&&$s(r.alternate,r);break;default:Gs(n,r)}t=t.sibling}}var Vs=8192;function Ws(e){if(e.subtreeFlags&Vs)for(e=e.child;null!==e;)Qs(e),e=e.sibling}function Qs(e){switch(e.tag){case 26:Ws(e),e.flags&Vs&&null!==e.memoizedState&&function(e,t,n){if(null===Ud)throw Error(i(475));var r=Ud;if(!("stylesheet"!==t.type||"string"==typeof n.media&&!1===matchMedia(n.media).matches||4&t.state.loading)){if(null===t.instance){var a=Ld(n.href),o=e.querySelector(jd(a));if(o)return null!==(e=o._p)&&"object"==typeof e&&"function"==typeof e.then&&(r.count++,r=Hd.bind(r),e.then(r,r)),t.state.loading|=4,t.instance=o,void Ge(o);o=e.ownerDocument||e,n=Pd(n),(a=Sd.get(a))&&Dd(n,a),Ge(o=o.createElement("link"));var l=o;l._p=new Promise((function(e,t){l.onload=e,l.onerror=t})),ed(o,"link",n),t.instance=o}null===r.stylesheets&&(r.stylesheets=new Map),r.stylesheets.set(t,e),(e=t.state.preload)&&!(3&t.state.loading)&&(r.count++,t=Hd.bind(r),e.addEventListener("load",t),e.addEventListener("error",t))}}(Os,e.memoizedState,e.memoizedProps);break;case 5:default:Ws(e);break;case 3:case 4:var t=Os;Os=_d(e.stateNode.containerInfo),Ws(e),Os=t;break;case 22:null===e.memoizedState&&(null!==(t=e.alternate)&&null!==t.memoizedState?(t=Vs,Vs=16777216,Ws(e),Vs=t):Ws(e))}}function Ks(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do{t=e.sibling,e.sibling=null,e=t}while(null!==e)}}function Ys(e){var t=e.deletions;if(16&e.flags){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];xs=r,Js(r,e)}Ks(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)Xs(e),e=e.sibling}function Xs(e){switch(e.tag){case 0:case 11:case 15:Ys(e),2048&e.flags&&ls(9,e,e.return);break;case 3:case 12:default:Ys(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,Zs(e)):Ys(e)}}function Zs(e){var t=e.deletions;if(16&e.flags){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];xs=r,Js(r,e)}Ks(e)}for(e=e.child;null!==e;){switch((t=e).tag){case 0:case 11:case 15:ls(8,t,t.return),Zs(t);break;case 22:2&(n=t.stateNode)._visibility&&(n._visibility&=-3,Zs(t));break;default:Zs(t)}e=e.sibling}}function Js(e,t){for(;null!==xs;){var n=xs;switch(n.tag){case 0:case 11:case 15:ls(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var r=n.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:Ra(n.memoizedState.cache)}if(null!==(r=n.child))r.return=n,xs=r;else e:for(n=e;null!==xs;){var a=(r=xs).sibling,o=r.return;if(Es(r),r===n){xs=null;break e}if(null!==a){a.return=o,xs=a;break e}xs=o}}}var eu={getCacheForType:function(e){var t=Ca(Na),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n}},tu="function"==typeof WeakMap?WeakMap:Map,nu=0,ru=null,au=null,ou=0,iu=0,lu=null,su=!1,uu=!1,cu=!1,du=0,fu=0,pu=0,mu=0,hu=0,gu=0,yu=0,bu=null,vu=null,wu=!1,ku=0,Su=1/0,xu=null,_u=null,Eu=0,Cu=null,Au=null,Tu=0,Lu=0,ju=null,Pu=null,Nu=0,Ou=null;function Ru(){if(2&nu&&0!==ou)return ou&-ou;if(null!==R.T){return 0!==Fa?Fa:Lc()}return je()}function Mu(){0===gu&&(gu=536870912&ou&&!oa?536870912:Se());var e=al.current;return null!==e&&(e.flags|=32),gu}function Du(e,t,n){(e!==ru||2!==iu&&9!==iu)&&null===e.cancelPendingCommit||(qu(e,0),zu(e,ou,gu,!1)),Ee(e,n),2&nu&&e===ru||(e===ru&&(!(2&nu)&&(mu|=n),4===fu&&zu(e,ou,gu,!1)),Sc(e))}function Fu(e,t,n){if(6&nu)throw Error(i(327));for(var r=!n&&!(124&t)&&0===(t&e.expiredLanes)||we(e,t),a=r?function(e,t){var n=nu;nu|=2;var r=Gu(),a=Vu();ru!==e||ou!==t?(xu=null,Su=te()+500,qu(e,t)):uu=we(e,t);e:for(;;)try{if(0!==iu&&null!==au){t=au;var o=lu;t:switch(iu){case 1:iu=0,lu=null,Ju(e,t,o,1);break;case 2:case 9:if(Ka(o)){iu=0,lu=null,Zu(t);break}t=function(){2!==iu&&9!==iu||ru!==e||(iu=7),Sc(e)},o.then(t,t);break e;case 3:iu=7;break e;case 4:iu=5;break e;case 7:Ka(o)?(iu=0,lu=null,Zu(t)):(iu=0,lu=null,Ju(e,t,o,7));break;case 5:var l=null;switch(au.tag){case 26:l=au.memoizedState;case 5:case 27:var s=au;if(!l||$d(l)){iu=0,lu=null;var u=s.sibling;if(null!==u)au=u;else{var c=s.return;null!==c?(au=c,ec(c)):au=null}break t}}iu=0,lu=null,Ju(e,t,o,5);break;case 6:iu=0,lu=null,Ju(e,t,o,6);break;case 8:Uu(),fu=6;break e;default:throw Error(i(462))}}Yu();break}catch(d){Hu(e,d)}return ba=ya=null,R.H=r,R.A=a,nu=n,null!==au?0:(ru=null,ou=0,Tr(),fu)}(e,t):Qu(e,t,!0),o=r;;){if(0===a){uu&&!r&&zu(e,t,0,!1);break}if(n=e.current.alternate,!o||Bu(n)){if(2===a){if(o=t,e.errorRecoveryDisabledLanes&o)var l=0;else l=0!==(l=-536870913&e.pendingLanes)?l:536870912&l?536870912:0;if(0!==l){t=l;e:{var s=e;a=bu;var u=s.current.memoizedState.isDehydrated;if(u&&(qu(s,l).flags|=256),2!==(l=Qu(s,l,!1))){if(cu&&!u){s.errorRecoveryDisabledLanes|=o,mu|=o,a=4;break e}o=vu,vu=a,null!==o&&(null===vu?vu=o:vu.push.apply(vu,o))}a=l}if(o=!1,2!==a)continue}}if(1===a){qu(e,0),zu(e,t,0,!0);break}e:{switch(r=e,o=a){case 0:case 1:throw Error(i(345));case 4:if((4194048&t)!==t)break;case 6:zu(r,t,gu,!su);break e;case 2:vu=null;break;case 3:case 5:break;default:throw Error(i(329))}if((62914560&t)===t&&10<(a=ku+300-te())){if(zu(r,t,gu,!su),0!==ve(r,0,!0))break e;r.timeoutHandle=sd(Iu.bind(null,r,n,vu,xu,wu,t,gu,mu,yu,su,o,2,-0,0),a)}else Iu(r,n,vu,xu,wu,t,gu,mu,yu,su,o,0,-0,0)}break}a=Qu(e,t,!1),o=!1}Sc(e)}function Iu(e,t,n,r,a,o,l,s,u,c,d,f,p,m){if(e.timeoutHandle=-1,(8192&(f=t.subtreeFlags)||!(16785408&~f))&&(Ud={stylesheets:null,count:0,unsuspend:qd},Qs(t),null!==(f=function(){if(null===Ud)throw Error(i(475));var e=Ud;return e.stylesheets&&0===e.count&&Vd(e,e.stylesheets),0<e.count?function(t){var n=setTimeout((function(){if(e.stylesheets&&Vd(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}),6e4);return e.unsuspend=t,function(){e.unsuspend=null,clearTimeout(n)}}:null}())))return e.cancelPendingCommit=f(nc.bind(null,e,t,o,n,r,a,l,s,u,d,1,p,m)),void zu(e,o,l,!c);nc(e,t,o,n,r,a,l,s,u)}function Bu(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&(null!==(n=t.updateQueue)&&null!==(n=n.stores)))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!Kn(o(),a))return!1}catch(i){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function zu(e,t,n,r){t&=~hu,t&=~mu,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var a=t;0<a;){var o=31-pe(a),i=1<<o;r[o]=-1,a&=~i}0!==n&&Ce(e,n,t)}function $u(){return!!(6&nu)||(xc(0,!1),!1)}function Uu(){if(null!==au){if(0===iu)var e=au.return;else ba=ya=null,Io(e=au),Ki=null,Yi=0,e=au;for(;null!==e;)os(e.alternate,e),e=e.return;au=null}}function qu(e,t){var n=e.timeoutHandle;-1!==n&&(e.timeoutHandle=-1,ud(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),Uu(),ru=e,au=n=Ir(e.current,null),ou=t,iu=0,lu=null,su=!1,uu=we(e,t),cu=!1,yu=gu=hu=mu=pu=fu=0,vu=bu=null,wu=!1,8&t&&(t|=32&t);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=t;0<r;){var a=31-pe(r),o=1<<a;t|=e[a],r&=~o}return du=t,Tr(),n}function Hu(e,t){wo=null,R.H=Gi,t===Ga||t===Wa?(t=Ja(),iu=3):t===Va?(t=Ja(),iu=4):iu=t===Cl?8:null!==t&&"object"==typeof t&&"function"==typeof t.then?6:1,lu=t,null===au&&(fu=1,kl(e,_r(t,e.current)))}function Gu(){var e=R.H;return R.H=Gi,null===e?Gi:e}function Vu(){var e=R.A;return R.A=eu,e}function Wu(){fu=4,su||(4194048&ou)!==ou&&null!==al.current||(uu=!0),!(134217727&pu)&&!(134217727&mu)||null===ru||zu(ru,ou,gu,!1)}function Qu(e,t,n){var r=nu;nu|=2;var a=Gu(),o=Vu();ru===e&&ou===t||(xu=null,qu(e,t)),t=!1;var i=fu;e:for(;;)try{if(0!==iu&&null!==au){var l=au,s=lu;switch(iu){case 8:Uu(),i=6;break e;case 3:case 2:case 9:case 6:null===al.current&&(t=!0);var u=iu;if(iu=0,lu=null,Ju(e,l,s,u),n&&uu){i=0;break e}break;default:u=iu,iu=0,lu=null,Ju(e,l,s,u)}}Ku(),i=fu;break}catch(c){Hu(e,c)}return t&&e.shellSuspendCounter++,ba=ya=null,nu=r,R.H=a,R.A=o,null===au&&(ru=null,ou=0,Tr()),i}function Ku(){for(;null!==au;)Xu(au)}function Yu(){for(;null!==au&&!J();)Xu(au)}function Xu(e){var t=Xl(e.alternate,e,du);e.memoizedProps=e.pendingProps,null===t?ec(e):au=t}function Zu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Dl(n,t,t.pendingProps,t.type,void 0,ou);break;case 11:t=Dl(n,t,t.pendingProps,t.type.render,t.ref,ou);break;case 5:Io(t);default:os(n,t),t=Xl(n,t=au=Br(t,du),du)}e.memoizedProps=e.pendingProps,null===t?ec(e):au=t}function Ju(e,t,n,r){ba=ya=null,Io(t),Ki=null,Yi=0;var a=t.return;try{if(function(e,t,n,r,a){if(n.flags|=32768,null!==r&&"object"==typeof r&&"function"==typeof r.then){if(null!==(t=n.alternate)&&xa(t,n,a,!0),null!==(n=al.current)){switch(n.tag){case 13:return null===ol?Wu():null===n.alternate&&0===fu&&(fu=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Qa?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=new Set([r]):t.add(r),dc(e,r,a)),!1;case 22:return n.flags|=65536,r===Qa?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=new Set([r]):n.add(r),dc(e,r,a)),!1}throw Error(i(435,n.tag))}return dc(e,r,a),Wu(),!1}if(oa)return null!==(t=al.current)?(!(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==sa&&ha(_r(e=Error(i(422),{cause:r}),n))):(r!==sa&&ha(_r(t=Error(i(423),{cause:r}),n)),(e=e.current.alternate).flags|=65536,a&=-a,e.lanes|=a,r=_r(r,n),lo(e,a=xl(e.stateNode,r,a)),4!==fu&&(fu=2)),!1;var o=Error(i(520),{cause:r});if(o=_r(o,n),null===bu?bu=[o]:bu.push(o),4!==fu&&(fu=2),null===t)return!0;r=_r(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,lo(n,e=xl(n.stateNode,r,e)),!1;case 1:if(t=n.type,o=n.stateNode,!(128&n.flags||"function"!=typeof t.getDerivedStateFromError&&(null===o||"function"!=typeof o.componentDidCatch||null!==_u&&_u.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,El(a=_l(a),e,n,r),lo(n,a),!1}n=n.return}while(null!==n);return!1}(e,a,t,n,ou))return fu=1,kl(e,_r(n,e.current)),void(au=null)}catch(o){if(null!==a)throw au=a,o;return fu=1,kl(e,_r(n,e.current)),void(au=null)}32768&t.flags?(oa||1===r?e=!0:uu||536870912&ou?e=!1:(su=e=!0,(2===r||9===r||3===r||6===r)&&(null!==(r=al.current)&&13===r.tag&&(r.flags|=16384))),tc(t,e)):ec(t)}function ec(e){var t=e;do{if(32768&t.flags)return void tc(t,su);e=t.return;var n=rs(t.alternate,t,du);if(null!==n)return void(au=n);if(null!==(t=t.sibling))return void(au=t);au=t=e}while(null!==t);0===fu&&(fu=5)}function tc(e,t){do{var n=as(e.alternate,e);if(null!==n)return n.flags&=32767,void(au=n);if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling))return void(au=e);au=e=n}while(null!==e);fu=6,au=null}function nc(e,t,n,r,a,o,l,s,u){e.cancelPendingCommit=null;do{lc()}while(0!==Eu);if(6&nu)throw Error(i(327));if(null!==t){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,function(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(n=i&~n;0<n;){var c=31-pe(n),d=1<<c;l[c]=0,s[c]=-1;var f=u[c];if(null!==f)for(u[c]=null,c=0;c<f.length;c++){var p=f[c];null!==p&&(p.lane&=-536870913)}n&=~d}0!==r&&Ce(e,r,0),0!==o&&0===a&&0!==e.tag&&(e.suspendedLanes|=o&~(i&~t))}(e,n,o|=Ar,l,s,u),e===ru&&(au=ru=null,ou=0),Au=t,Cu=e,Tu=n,Lu=o,ju=a,Pu=r,10256&t.subtreeFlags||10256&t.flags?(e.callbackNode=null,e.callbackPriority=0,X(oe,(function(){return sc(),null}))):(e.callbackNode=null,e.callbackPriority=0),r=!!(13878&t.flags),13878&t.subtreeFlags||r){r=R.T,R.T=null,a=M.p,M.p=2,l=nu,nu|=4;try{!function(e,t){if(e=e.containerInfo,td=nf,tr(e=er(e))){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch(g){n=null;break e}var l=0,s=-1,u=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var m;f!==n||0!==a&&3!==f.nodeType||(s=l+a),f!==o||0!==r&&3!==f.nodeType||(u=l+r),3===f.nodeType&&(l+=f.nodeValue.length),null!==(m=f.firstChild);)p=f,f=m;for(;;){if(f===e)break t;if(p===n&&++c===a&&(s=l),p===o&&++d===r&&(u=l),null!==(m=f.nextSibling))break;p=(f=p).parentNode}f=m}n=-1===s||-1===u?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(nd={focusedElem:e,selectionRange:n},nf=!1,xs=t;null!==xs;)if(e=(t=xs).child,1024&t.subtreeFlags&&null!==e)e.return=t,xs=e;else for(;null!==xs;){switch(o=(t=xs).alternate,e=t.flags,t.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(1024&e&&null!==o){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=gl(n.type,a,(n.elementType,n.type));e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(y){cc(n,n.return,y)}}break;case 3:if(1024&e)if(9===(n=(e=t.stateNode.containerInfo).nodeType))hd(e);else if(1===n)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":hd(e);break;default:e.textContent=""}break;default:if(1024&e)throw Error(i(163))}if(null!==(e=t.sibling)){e.return=t.return,xs=e;break}xs=t.return}}(e,t)}finally{nu=l,M.p=a,R.T=r}}Eu=1,rc(),ac(),oc()}}function rc(){if(1===Eu){Eu=0;var e=Cu,t=Au,n=!!(13878&t.flags);if(13878&t.subtreeFlags||n){n=R.T,R.T=null;var r=M.p;M.p=2;var a=nu;nu|=4;try{Rs(t,e);var o=nd,i=er(e.containerInfo),l=o.focusedElem,s=o.selectionRange;if(i!==l&&l&&l.ownerDocument&&Jn(l.ownerDocument.documentElement,l)){if(null!==s&&tr(l)){var u=s.start,c=s.end;if(void 0===c&&(c=u),"selectionStart"in l)l.selectionStart=u,l.selectionEnd=Math.min(c,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=l.textContent.length,h=Math.min(s.start,m),g=void 0===s.end?h:Math.min(s.end,m);!p.extend&&h>g&&(i=g,g=h,h=i);var y=Zn(l,h),b=Zn(l,g);if(y&&b&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==b.node||p.focusOffset!==b.offset)){var v=d.createRange();v.setStart(y.node,y.offset),p.removeAllRanges(),h>g?(p.addRange(v),p.extend(b.node,b.offset)):(v.setEnd(b.node,b.offset),p.addRange(v))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var w=d[l];w.element.scrollLeft=w.left,w.element.scrollTop=w.top}}nf=!!td,nd=td=null}finally{nu=a,M.p=r,R.T=n}}e.current=t,Eu=2}}function ac(){if(2===Eu){Eu=0;var e=Cu,t=Au,n=!!(8772&t.flags);if(8772&t.subtreeFlags||n){n=R.T,R.T=null;var r=M.p;M.p=2;var a=nu;nu|=4;try{_s(e,t.alternate,t)}finally{nu=a,M.p=r,R.T=n}}Eu=3}}function oc(){if(4===Eu||3===Eu){Eu=0,ee();var e=Cu,t=Au,n=Tu,r=Pu;10256&t.subtreeFlags||10256&t.flags?Eu=5:(Eu=0,Au=Cu=null,ic(e,e.pendingLanes));var a=e.pendingLanes;if(0===a&&(_u=null),Le(n),t=t.stateNode,de&&"function"==typeof de.onCommitFiberRoot)try{de.onCommitFiberRoot(ce,t,void 0,!(128&~t.current.flags))}catch(s){}if(null!==r){t=R.T,a=M.p,M.p=2,R.T=null;try{for(var o=e.onRecoverableError,i=0;i<r.length;i++){var l=r[i];o(l.value,{componentStack:l.stack})}}finally{R.T=t,M.p=a}}3&Tu&&lc(),Sc(e),a=e.pendingLanes,4194090&n&&42&a?e===Ou?Nu++:(Nu=0,Ou=e):Nu=0,xc(0,!1)}}function ic(e,t){0===(e.pooledCacheLanes&=t)&&(null!=(t=e.pooledCache)&&(e.pooledCache=null,Ra(t)))}function lc(e){return rc(),ac(),oc(),sc()}function sc(){if(5!==Eu)return!1;var e=Cu,t=Lu;Lu=0;var n=Le(Tu),r=R.T,a=M.p;try{M.p=32>n?32:n,R.T=null,n=ju,ju=null;var o=Cu,l=Tu;if(Eu=0,Au=Cu=null,Tu=0,6&nu)throw Error(i(331));var s=nu;if(nu|=4,Xs(o.current),qs(o,o.current,l,n),nu=s,xc(0,!1),de&&"function"==typeof de.onPostCommitFiberRoot)try{de.onPostCommitFiberRoot(ce,o)}catch(u){}return!0}finally{M.p=a,R.T=r,ic(e,t)}}function uc(e,t,n){t=_r(n,t),null!==(e=oo(e,t=xl(e.stateNode,t,2),2))&&(Ee(e,2),Sc(e))}function cc(e,t,n){if(3===e.tag)uc(e,e,n);else for(;null!==t;){if(3===t.tag){uc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===_u||!_u.has(r))){e=_r(n,e),null!==(r=oo(t,n=_l(2),2))&&(El(n,r,t,e),Ee(r,2),Sc(r));break}}t=t.return}}function dc(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new tu;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(cu=!0,a.add(n),e=fc.bind(null,e,t,n),t.then(e,e))}function fc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ru===e&&(ou&n)===n&&(4===fu||3===fu&&(62914560&ou)===ou&&300>te()-ku?!(2&nu)&&qu(e,0):hu|=n,yu===ou&&(yu=0)),Sc(e)}function pc(e,t){0===t&&(t=xe()),null!==(e=Pr(e,t))&&(Ee(e,t),Sc(e))}function mc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),pc(e,n)}function hc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),pc(e,n)}var gc=null,yc=null,bc=!1,vc=!1,wc=!1,kc=0;function Sc(e){e!==yc&&null===e.next&&(null===yc?gc=yc=e:yc=yc.next=e),vc=!0,bc||(bc=!0,dd((function(){6&nu?X(re,_c):Ec()})))}function xc(e,t){if(!wc&&vc){wc=!0;do{for(var n=!1,r=gc;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var i=r.suspendedLanes,l=r.pingedLanes;o=(1<<31-pe(42|e)+1)-1,o=201326741&(o&=a&~(i&~l))?201326741&o|1:o?2|o:0}0!==o&&(n=!0,Tc(r,o))}else o=ou,!(3&(o=ve(r,r===ru?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||we(r,o)||(n=!0,Tc(r,o));r=r.next}}while(n);wc=!1}}function _c(){Ec()}function Ec(){vc=bc=!1;var e=0;0!==kc&&(function(){var e=window.event;if(e&&"popstate"===e.type)return e!==ld&&(ld=e,!0);return ld=null,!1}()&&(e=kc),kc=0);for(var t=te(),n=null,r=gc;null!==r;){var a=r.next,o=Cc(r,t);0===o?(r.next=null,null===n?gc=a:n.next=a,null===a&&(yc=n)):(n=r,(0!==e||3&o)&&(vc=!0)),r=a}xc(e,!1)}function Cc(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-62914561&e.pendingLanes;0<o;){var i=31-pe(o),l=1<<i,s=a[i];-1===s?0!==(l&n)&&0===(l&r)||(a[i]=ke(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}if(n=ou,n=ve(e,e===(t=ru)?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===n||e===t&&(2===iu||9===iu)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&Z(r),e.callbackNode=null,e.callbackPriority=0;if(!(3&n)||we(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==r&&Z(r),Le(n)){case 2:case 8:n=ae;break;case 32:default:n=oe;break;case 268435456:n=le}return r=Ac.bind(null,e),n=X(n,r),e.callbackPriority=t,e.callbackNode=n,t}return null!==r&&null!==r&&Z(r),e.callbackPriority=2,e.callbackNode=null,2}function Ac(e,t){if(0!==Eu&&5!==Eu)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(lc()&&e.callbackNode!==n)return null;var r=ou;return 0===(r=ve(e,e===ru?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(Fu(e,r,t),Cc(e,te()),null!=e.callbackNode&&e.callbackNode===n?Ac.bind(null,e):null)}function Tc(e,t){if(lc())return null;Fu(e,t,!0)}function Lc(){return 0===kc&&(kc=Se()),kc}function jc(e){return null==e||"symbol"==typeof e||"boolean"==typeof e?null:"function"==typeof e?e:Lt(""+e)}function Pc(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}for(var Nc=0;Nc<kr.length;Nc++){var Oc=kr[Nc];Sr(Oc.toLowerCase(),"on"+(Oc[0].toUpperCase()+Oc.slice(1)))}Sr(pr,"onAnimationEnd"),Sr(mr,"onAnimationIteration"),Sr(hr,"onAnimationStart"),Sr("dblclick","onDoubleClick"),Sr("focusin","onFocus"),Sr("focusout","onBlur"),Sr(gr,"onTransitionRun"),Sr(yr,"onTransitionStart"),Sr(br,"onTransitionCancel"),Sr(vr,"onTransitionEnd"),Ke("onMouseEnter",["mouseout","mouseover"]),Ke("onMouseLeave",["mouseout","mouseover"]),Ke("onPointerEnter",["pointerout","pointerover"]),Ke("onPointerLeave",["pointerout","pointerover"]),Qe("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Qe("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Qe("onBeforeInput",["compositionend","keypress","textInput","paste"]),Qe("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Qe("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Qe("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rc="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Mc=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Rc));function Dc(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=u;try{o(a)}catch(c){yl(c)}a.currentTarget=null,o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=u;try{o(a)}catch(c){yl(c)}a.currentTarget=null,o=s}}}}function Fc(e,t){var n=t[Me];void 0===n&&(n=t[Me]=new Set);var r=e+"__bubble";n.has(r)||($c(t,e,2,!1),n.add(r))}function Ic(e,t,n){var r=0;t&&(r|=4),$c(n,e,r,t)}var Bc="_reactListening"+Math.random().toString(36).slice(2);function zc(e){if(!e[Bc]){e[Bc]=!0,Ve.forEach((function(t){"selectionchange"!==t&&(Mc.has(t)||Ic(t,!1,e),Ic(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Bc]||(t[Bc]=!0,Ic("selectionchange",!1,t))}}function $c(e,t,n,r){switch(cf(t)){case 2:var a=rf;break;case 8:a=af;break;default:a=of}n=a.bind(null,t,n,e),a=void 0,!Bt||"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 Uc(e,t,n,r,a){var o=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a)break;if(4===i)for(i=r.return;null!==i;){var u=i.tag;if((3===u||4===u)&&i.stateNode.containerInfo===a)return;i=i.return}for(;null!==l;){if(null===(i=$e(l)))return;if(5===(u=i.tag)||6===u||26===u||27===u){r=o=i;continue e}l=l.parentNode}}r=r.return}Dt((function(){var r=o,a=Pt(n),i=[];e:{var l=wr.get(e);if(void 0!==l){var u=Jt,c=e;switch(e){case"keypress":if(0===Gt(n))break e;case"keydown":case"keyup":u=hn;break;case"focusin":c="focus",u=on;break;case"focusout":c="blur",u=on;break;case"beforeblur":case"afterblur":u=on;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":u=rn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=an;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=yn;break;case pr:case mr:case hr:u=ln;break;case vr:u=bn;break;case"scroll":case"scrollend":u=tn;break;case"wheel":u=vn;break;case"copy":case"cut":case"paste":u=sn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=gn;break;case"toggle":case"beforetoggle":u=wn}var d=!!(4&t),f=!d&&("scroll"===e||"scrollend"===e),p=d?null!==l?l+"Capture":null:l;d=[];for(var m,h=r;null!==h;){var g=h;if(m=g.stateNode,5!==(g=g.tag)&&26!==g&&27!==g||null===m||null===p||null!=(g=Ft(h,p))&&d.push(qc(h,g,m)),f)break;h=h.return}0<d.length&&(l=new u(l,c,null,n,a),i.push({event:l,listeners:d}))}}if(!(7&t)){if(u="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===jt||!(c=n.relatedTarget||n.fromElement)||!$e(c)&&!c[Re])&&(u||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,u?(u=r,null!==(c=(c=n.relatedTarget||n.toElement)?$e(c):null)&&(f=s(c),d=c.tag,c!==f||5!==d&&27!==d&&6!==d)&&(c=null)):(u=null,c=r),u!==c)){if(d=rn,g="onMouseLeave",p="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(d=gn,g="onPointerLeave",p="onPointerEnter",h="pointer"),f=null==u?l:qe(u),m=null==c?l:qe(c),(l=new d(g,h+"leave",u,n,a)).target=f,l.relatedTarget=m,g=null,$e(a)===r&&((d=new d(p,h+"enter",c,n,a)).target=m,d.relatedTarget=f,g=d),f=g,u&&c)e:{for(p=c,h=0,m=d=u;m;m=Gc(m))h++;for(m=0,g=p;g;g=Gc(g))m++;for(;0<h-m;)d=Gc(d),h--;for(;0<m-h;)p=Gc(p),m--;for(;h--;){if(d===p||null!==p&&d===p.alternate)break e;d=Gc(d),p=Gc(p)}d=null}else d=null;null!==u&&Vc(i,l,u,d,!1),null!==c&&null!==f&&Vc(i,f,c,d,!0)}if("select"===(u=(l=r?qe(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===u&&"file"===l.type)var y=In;else if(Nn(l))if(Bn)y=Qn;else{y=Vn;var b=Gn}else!(u=l.nodeName)||"input"!==u.toLowerCase()||"checkbox"!==l.type&&"radio"!==l.type?r&&Ct(r.elementType)&&(y=In):y=Wn;switch(y&&(y=y(e,r))?On(i,y,n,a):(b&&b(e,l,r),"focusout"===e&&r&&"number"===l.type&&null!=r.memoizedProps.value&&bt(l,"number",l.value)),b=r?qe(r):window,e){case"focusin":(Nn(b)||"true"===b.contentEditable)&&(rr=b,ar=r,or=null);break;case"focusout":or=ar=rr=null;break;case"mousedown":ir=!0;break;case"contextmenu":case"mouseup":case"dragend":ir=!1,lr(i,n,a);break;case"selectionchange":if(nr)break;case"keydown":case"keyup":lr(i,n,a)}var v;if(Sn)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else jn?Tn(e,n)&&(w="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(w="onCompositionStart");w&&(En&&"ko"!==n.locale&&(jn||"onCompositionStart"!==w?"onCompositionEnd"===w&&jn&&(v=Ht()):(Ut="value"in($t=a)?$t.value:$t.textContent,jn=!0)),0<(b=Hc(r,w)).length&&(w=new un(w,e,null,n,a),i.push({event:w,listeners:b}),v?w.data=v:null!==(v=Ln(n))&&(w.data=v))),(v=_n?function(e,t){switch(e){case"compositionend":return Ln(t);case"keypress":return 32!==t.which?null:(An=!0,Cn);case"textInput":return(e=t.data)===Cn&&An?null:e;default:return null}}(e,n):function(e,t){if(jn)return"compositionend"===e||!Sn&&Tn(e,t)?(e=Ht(),qt=Ut=$t=null,jn=!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 En&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(w=Hc(r,"onBeforeInput")).length&&(b=new un("onBeforeInput","beforeinput",null,n,a),i.push({event:b,listeners:w}),b.data=v)),function(e,t,n,r,a){if("submit"===t&&n&&n.stateNode===a){var o=jc((a[Oe]||null).action),i=r.submitter;i&&null!==(t=(t=i[Oe]||null)?jc(t.formAction):i.getAttribute("formAction"))&&(o=t,i=null);var l=new Jt("action","action",null,r,a);e.push({event:l,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(0!==kc){var e=i?Pc(a,i):new FormData(a);Pi(n,{pending:!0,data:e,method:a.method,action:o},null,e)}}else"function"==typeof o&&(l.preventDefault(),e=i?Pc(a,i):new FormData(a),Pi(n,{pending:!0,data:e,method:a.method,action:o},o,e))},currentTarget:a}]})}}(i,e,r,n,a)}Dc(i,t)}))}function qc(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Hc(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;if(5!==(a=a.tag)&&26!==a&&27!==a||null===o||(null!=(a=Ft(e,n))&&r.unshift(qc(e,a,o)),null!=(a=Ft(e,t))&&r.push(qc(e,a,o))),3===e.tag)return r;e=e.return}return[]}function Gc(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag&&27!==e.tag);return e||null}function Vc(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===u||(s=u,a?null!=(u=Ft(n,o))&&i.unshift(qc(n,u,s)):a||null!=(u=Ft(n,o))&&i.push(qc(n,u,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Wc=/\r\n?/g,Qc=/\u0000|\uFFFD/g;function Kc(e){return("string"==typeof e?e:""+e).replace(Wc,"\n").replace(Qc,"")}function Yc(e,t){return t=Kc(t),Kc(e)===t}function Xc(){}function Zc(e,t,n,r,a,o){switch(n){case"children":"string"==typeof r?"body"===t||"textarea"===t&&""===r||St(e,r):("number"==typeof r||"bigint"==typeof r)&&"body"!==t&&St(e,""+r);break;case"className":nt(e,"class",r);break;case"tabIndex":nt(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":nt(e,n,r);break;case"style":Et(e,r,o);break;case"data":if("object"!==t){nt(e,"data",r);break}case"src":case"href":if(""===r&&("a"!==t||"href"!==n)){e.removeAttribute(n);break}if(null==r||"function"==typeof r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=Lt(""+r),e.setAttribute(n,r);break;case"action":case"formAction":if("function"==typeof r){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}if("function"==typeof o&&("formAction"===n?("input"!==t&&Zc(e,t,"name",a.name,a,null),Zc(e,t,"formEncType",a.formEncType,a,null),Zc(e,t,"formMethod",a.formMethod,a,null),Zc(e,t,"formTarget",a.formTarget,a,null)):(Zc(e,t,"encType",a.encType,a,null),Zc(e,t,"method",a.method,a,null),Zc(e,t,"target",a.target,a,null))),null==r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=Lt(""+r),e.setAttribute(n,r);break;case"onClick":null!=r&&(e.onclick=Xc);break;case"onScroll":null!=r&&Fc("scroll",e);break;case"onScrollEnd":null!=r&&Fc("scrollend",e);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(i(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(i(60));e.innerHTML=n}}break;case"multiple":e.multiple=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"muted":e.muted=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":break;case"xlinkHref":if(null==r||"function"==typeof r||"boolean"==typeof r||"symbol"==typeof r){e.removeAttribute("xlink:href");break}n=Lt(""+r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""+r):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":!0===r?e.setAttribute(n,""):!1!==r&&null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":null!=r&&"function"!=typeof r&&"symbol"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case"rowSpan":case"start":null==r||"function"==typeof r||"symbol"==typeof r||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case"popover":Fc("beforetoggle",e),Fc("toggle",e),tt(e,"popover",r);break;case"xlinkActuate":rt(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":rt(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":rt(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":rt(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":rt(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":rt(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":rt(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":rt(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":rt(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":tt(e,"is",r);break;case"innerText":case"textContent":break;default:(!(2<n.length)||"o"!==n[0]&&"O"!==n[0]||"n"!==n[1]&&"N"!==n[1])&&tt(e,n=At.get(n)||n,r)}}function Jc(e,t,n,r,a,o){switch(n){case"style":Et(e,r,o);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(i(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(i(60));e.innerHTML=n}}break;case"children":"string"==typeof r?St(e,r):("number"==typeof r||"bigint"==typeof r)&&St(e,""+r);break;case"onScroll":null!=r&&Fc("scroll",e);break;case"onScrollEnd":null!=r&&Fc("scrollend",e);break;case"onClick":null!=r&&(e.onclick=Xc);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":break;default:We.hasOwnProperty(n)||("o"!==n[0]||"n"!==n[1]||(a=n.endsWith("Capture"),t=n.slice(2,a?n.length-7:void 0),"function"==typeof(o=null!=(o=e[Oe]||null)?o[n]:null)&&e.removeEventListener(t,o,a),"function"!=typeof r)?n in e?e[n]=r:!0===r?e.setAttribute(n,""):tt(e,n,r):("function"!=typeof o&&null!==o&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a)))}}function ed(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Fc("error",e),Fc("load",e);var r,a=!1,o=!1;for(r in n)if(n.hasOwnProperty(r)){var l=n[r];if(null!=l)switch(r){case"src":a=!0;break;case"srcSet":o=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(i(137,t));default:Zc(e,t,r,l,n,null)}}return o&&Zc(e,t,"srcSet",n.srcSet,n,null),void(a&&Zc(e,t,"src",n.src,n,null));case"input":Fc("invalid",e);var s=r=l=o=null,u=null,c=null;for(a in n)if(n.hasOwnProperty(a)){var d=n[a];if(null!=d)switch(a){case"name":o=d;break;case"type":l=d;break;case"checked":u=d;break;case"defaultChecked":c=d;break;case"value":r=d;break;case"defaultValue":s=d;break;case"children":case"dangerouslySetInnerHTML":if(null!=d)throw Error(i(137,t));break;default:Zc(e,t,a,d,n,null)}}return yt(e,r,s,u,c,l,o,!1),void dt(e);case"select":for(o in Fc("invalid",e),a=l=r=null,n)if(n.hasOwnProperty(o)&&null!=(s=n[o]))switch(o){case"value":r=s;break;case"defaultValue":l=s;break;case"multiple":a=s;default:Zc(e,t,o,s,n,null)}return t=r,n=l,e.multiple=!!a,void(null!=t?vt(e,!!a,t,!1):null!=n&&vt(e,!!a,n,!0));case"textarea":for(l in Fc("invalid",e),r=o=a=null,n)if(n.hasOwnProperty(l)&&null!=(s=n[l]))switch(l){case"value":a=s;break;case"defaultValue":o=s;break;case"children":r=s;break;case"dangerouslySetInnerHTML":if(null!=s)throw Error(i(91));break;default:Zc(e,t,l,s,n,null)}return kt(e,a,o,r),void dt(e);case"option":for(u in n)if(n.hasOwnProperty(u)&&null!=(a=n[u]))if("selected"===u)e.selected=a&&"function"!=typeof a&&"symbol"!=typeof a;else Zc(e,t,u,a,n,null);return;case"dialog":Fc("beforetoggle",e),Fc("toggle",e),Fc("cancel",e),Fc("close",e);break;case"iframe":case"object":Fc("load",e);break;case"video":case"audio":for(a=0;a<Rc.length;a++)Fc(Rc[a],e);break;case"image":Fc("error",e),Fc("load",e);break;case"details":Fc("toggle",e);break;case"embed":case"source":case"link":Fc("error",e),Fc("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in n)if(n.hasOwnProperty(c)&&null!=(a=n[c]))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(i(137,t));default:Zc(e,t,c,a,n,null)}return;default:if(Ct(t)){for(d in n)n.hasOwnProperty(d)&&(void 0!==(a=n[d])&&Jc(e,t,d,a,n,void 0));return}}for(s in n)n.hasOwnProperty(s)&&(null!=(a=n[s])&&Zc(e,t,s,a,n,null))}var td=null,nd=null;function rd(e){return 9===e.nodeType?e:e.ownerDocument}function ad(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function od(e,t){if(0===e)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return 1===e&&"foreignObject"===t?0:e}function id(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"bigint"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ld=null;var sd="function"==typeof setTimeout?setTimeout:void 0,ud="function"==typeof clearTimeout?clearTimeout:void 0,cd="function"==typeof Promise?Promise:void 0,dd="function"==typeof queueMicrotask?queueMicrotask:void 0!==cd?function(e){return cd.resolve(null).then(e).catch(fd)}:sd;function fd(e){setTimeout((function(){throw e}))}function pd(e){return"head"===e}function md(e,t){var n=t,r=0,a=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0<r&&8>r){n=r;var i=e.ownerDocument;if(1&n&&kd(i.documentElement),2&n&&kd(i.body),4&n)for(kd(n=i.head),i=n.firstChild;i;){var l=i.nextSibling,s=i.nodeName;i[Be]||"SCRIPT"===s||"STYLE"===s||"LINK"===s&&"stylesheet"===i.rel.toLowerCase()||n.removeChild(i),i=l}}if(0===a)return e.removeChild(o),void Tf(t);a--}else"$"===n||"$?"===n||"$!"===n?a++:r=n.charCodeAt(0)-48;else r=0;n=o}while(n);Tf(t)}function hd(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":hd(n),ze(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===n.rel.toLowerCase())continue}e.removeChild(n)}}function gd(e){return"$!"===e.data||"$?"===e.data&&"complete"===e.ownerDocument.readyState}function yd(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t||"F!"===t||"F"===t)break;if("/$"===t)return null}}return e}var bd=null;function vd(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}function wd(e,t,n){switch(t=rd(n),e){case"html":if(!(e=t.documentElement))throw Error(i(452));return e;case"head":if(!(e=t.head))throw Error(i(453));return e;case"body":if(!(e=t.body))throw Error(i(454));return e;default:throw Error(i(451))}}function kd(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ze(e)}var Sd=new Map,xd=new Set;function _d(e){return"function"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var Ed=M.d;M.d={f:function(){var e=Ed.f(),t=$u();return e||t},r:function(e){var t=Ue(e);null!==t&&5===t.tag&&"form"===t.type?Oi(t):Ed.r(e)},D:function(e){Ed.D(e),Ad("dns-prefetch",e,null)},C:function(e,t){Ed.C(e,t),Ad("preconnect",e,t)},L:function(e,t,n){Ed.L(e,t,n);var r=Cd;if(r&&e&&t){var a='link[rel="preload"][as="'+ht(t)+'"]';"image"===t&&n&&n.imageSrcSet?(a+='[imagesrcset="'+ht(n.imageSrcSet)+'"]',"string"==typeof n.imageSizes&&(a+='[imagesizes="'+ht(n.imageSizes)+'"]')):a+='[href="'+ht(e)+'"]';var o=a;switch(t){case"style":o=Ld(e);break;case"script":o=Nd(e)}Sd.has(o)||(e=f({rel:"preload",href:"image"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),Sd.set(o,e),null!==r.querySelector(a)||"style"===t&&r.querySelector(jd(o))||"script"===t&&r.querySelector(Od(o))||(ed(t=r.createElement("link"),"link",e),Ge(t),r.head.appendChild(t)))}},m:function(e,t){Ed.m(e,t);var n=Cd;if(n&&e){var r=t&&"string"==typeof t.as?t.as:"script",a='link[rel="modulepreload"][as="'+ht(r)+'"][href="'+ht(e)+'"]',o=a;switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=Nd(e)}if(!Sd.has(o)&&(e=f({rel:"modulepreload",href:e},t),Sd.set(o,e),null===n.querySelector(a))){switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Od(o)))return}ed(r=n.createElement("link"),"link",e),Ge(r),n.head.appendChild(r)}}},X:function(e,t){Ed.X(e,t);var n=Cd;if(n&&e){var r=He(n).hoistableScripts,a=Nd(e),o=r.get(a);o||((o=n.querySelector(Od(a)))||(e=f({src:e,async:!0},t),(t=Sd.get(a))&&Fd(e,t),Ge(o=n.createElement("script")),ed(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},r.set(a,o))}},S:function(e,t,n){Ed.S(e,t,n);var r=Cd;if(r&&e){var a=He(r).hoistableStyles,o=Ld(e);t=t||"default";var i=a.get(o);if(!i){var l={loading:0,preload:null};if(i=r.querySelector(jd(o)))l.loading=5;else{e=f({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Sd.get(o))&&Dd(e,n);var s=i=r.createElement("link");Ge(s),ed(s,"link",e),s._p=new Promise((function(e,t){s.onload=e,s.onerror=t})),s.addEventListener("load",(function(){l.loading|=1})),s.addEventListener("error",(function(){l.loading|=2})),l.loading|=4,Md(i,t,r)}i={type:"stylesheet",instance:i,count:1,state:l},a.set(o,i)}}},M:function(e,t){Ed.M(e,t);var n=Cd;if(n&&e){var r=He(n).hoistableScripts,a=Nd(e),o=r.get(a);o||((o=n.querySelector(Od(a)))||(e=f({src:e,async:!0,type:"module"},t),(t=Sd.get(a))&&Fd(e,t),Ge(o=n.createElement("script")),ed(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},r.set(a,o))}}};var Cd="undefined"==typeof document?null:document;function Ad(e,t,n){var r=Cd;if(r&&"string"==typeof t&&t){var a=ht(t);a='link[rel="'+e+'"][href="'+a+'"]',"string"==typeof n&&(a+='[crossorigin="'+n+'"]'),xd.has(a)||(xd.add(a),e={rel:e,crossOrigin:n,href:t},null===r.querySelector(a)&&(ed(t=r.createElement("link"),"link",e),Ge(t),r.head.appendChild(t)))}}function Td(e,t,n,r){var a,o,l,s,u=(u=H.current)?_d(u):null;if(!u)throw Error(i(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof n.precedence&&"string"==typeof n.href?(t=Ld(n.href),(r=(n=He(u).hoistableStyles).get(t))||(r={type:"style",instance:null,count:0,state:null},n.set(t,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===n.rel&&"string"==typeof n.href&&"string"==typeof n.precedence){e=Ld(n.href);var c=He(u).hoistableStyles,d=c.get(e);if(d||(u=u.ownerDocument||u,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},c.set(e,d),(c=u.querySelector(jd(e)))&&!c._p&&(d.instance=c,d.state.loading=5),Sd.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Sd.set(e,n),c||(a=u,o=e,l=n,s=d.state,a.querySelector('link[rel="preload"][as="style"]['+o+"]")?s.loading=1:(o=a.createElement("link"),s.preload=o,o.addEventListener("load",(function(){return s.loading|=1})),o.addEventListener("error",(function(){return s.loading|=2})),ed(o,"link",l),Ge(o),a.head.appendChild(o))))),t&&null===r)throw Error(i(528,""));return d}if(t&&null!==r)throw Error(i(529,""));return null;case"script":return t=n.async,"string"==typeof(n=n.src)&&t&&"function"!=typeof t&&"symbol"!=typeof t?(t=Nd(n),(r=(n=He(u).hoistableScripts).get(t))||(r={type:"script",instance:null,count:0,state:null},n.set(t,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Ld(e){return'href="'+ht(e)+'"'}function jd(e){return'link[rel="stylesheet"]['+e+"]"}function Pd(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function Nd(e){return'[src="'+ht(e)+'"]'}function Od(e){return"script[async]"+e}function Rd(e,t,n){if(t.count++,null===t.instance)switch(t.type){case"style":var r=e.querySelector('style[data-href~="'+ht(n.href)+'"]');if(r)return t.instance=r,Ge(r),r;var a=f({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return Ge(r=(e.ownerDocument||e).createElement("style")),ed(r,"style",a),Md(r,n.precedence,e),t.instance=r;case"stylesheet":a=Ld(n.href);var o=e.querySelector(jd(a));if(o)return t.state.loading|=4,t.instance=o,Ge(o),o;r=Pd(n),(a=Sd.get(a))&&Dd(r,a),Ge(o=(e.ownerDocument||e).createElement("link"));var l=o;return l._p=new Promise((function(e,t){l.onload=e,l.onerror=t})),ed(o,"link",r),t.state.loading|=4,Md(o,n.precedence,e),t.instance=o;case"script":return o=Nd(n.src),(a=e.querySelector(Od(o)))?(t.instance=a,Ge(a),a):(r=n,(a=Sd.get(o))&&Fd(r=f({},n),a),Ge(a=(e=e.ownerDocument||e).createElement("script")),ed(a,"link",r),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(i(443,t.type))}else"stylesheet"===t.type&&!(4&t.state.loading)&&(r=t.instance,t.state.loading|=4,Md(r,n.precedence,e));return t.instance}function Md(e,t,n){for(var r=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=r.length?r[r.length-1]:null,o=a,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===t)o=l;else if(o!==a)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function Dd(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function Fd(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var Id=null;function Bd(e,t,n){if(null===Id){var r=new Map,a=Id=new Map;a.set(n,r)}else(r=(a=Id).get(n))||(r=new Map,a.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),a=0;a<n.length;a++){var o=n[a];if(!(o[Be]||o[Ne]||"link"===e&&"stylesheet"===o.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==o.namespaceURI){var i=o.getAttribute(t)||"";i=e+i;var l=r.get(i);l?l.push(o):r.set(i,[o])}}return r}function zd(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,"title"===t?e.querySelector("head > title"):null)}function $d(e){return!!("stylesheet"!==e.type||3&e.state.loading)}var Ud=null;function qd(){}function Hd(){if(this.count--,0===this.count)if(this.stylesheets)Vd(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var Gd=null;function Vd(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,Gd=new Map,t.forEach(Wd,e),Gd=null,Hd.call(e))}function Wd(e,t){if(!(4&t.state.loading)){var n=Gd.get(e);if(n)var r=n.get(null);else{n=new Map,Gd.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<a.length;o++){var i=a[o];"LINK"!==i.nodeName&&"not all"===i.getAttribute("media")||(n.set(i.dataset.precedence,i),r=i)}r&&n.set(null,r)}i=(a=t.instance).getAttribute("data-precedence"),(o=n.get(i)||r)===r&&n.set(null,a),n.set(i,a),this.count++,r=Hd.bind(this),a.addEventListener("load",r),a.addEventListener("error",r),o?o.parentNode.insertBefore(a,o.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(a,e.firstChild),t.state.loading|=4}}var Qd={$$typeof:k,Provider:null,Consumer:null,_currentValue:D,_currentValue2:D,_threadCount:0};function Kd(e,t,n,r,a,o,i,l){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=_e(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=_e(0),this.hiddenUpdates=_e(null),this.identifierPrefix=r,this.onUncaughtError=a,this.onCaughtError=o,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=l,this.incompleteTransitions=new Map}function Yd(e,t,n,r,a,o,i,l,s,u,c,d){return e=new Kd(e,t,n,i,l,s,u,d),t=1,!0===o&&(t|=24),o=Dr(3,null,null,t),e.current=o,o.stateNode=e,(t=Oa()).refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:r,isDehydrated:n,cache:t},no(o),e}function Xd(e){return e?e=Rr:Rr}function Zd(e,t,n,r,a,o){a=Xd(a),null===r.context?r.context=a:r.pendingContext=a,(r=ao(t)).payload={element:n},null!==(o=void 0===o?null:o)&&(r.callback=o),null!==(n=oo(e,r,t))&&(Du(n,0,t),io(n,e,t))}function Jd(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ef(e,t){Jd(e,t),(e=e.alternate)&&Jd(e,t)}function tf(e){if(13===e.tag){var t=Pr(e,67108864);null!==t&&Du(t,0,67108864),ef(e,67108864)}}var nf=!0;function rf(e,t,n,r){var a=R.T;R.T=null;var o=M.p;try{M.p=2,of(e,t,n,r)}finally{M.p=o,R.T=a}}function af(e,t,n,r){var a=R.T;R.T=null;var o=M.p;try{M.p=8,of(e,t,n,r)}finally{M.p=o,R.T=a}}function of(e,t,n,r){if(nf){var a=lf(r);if(null===a)Uc(e,t,r,sf,n),vf(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return ff=wf(ff,e,t,n,r,a),!0;case"dragenter":return pf=wf(pf,e,t,n,r,a),!0;case"mouseover":return mf=wf(mf,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return hf.set(o,wf(hf.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,gf.set(o,wf(gf.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(vf(e,r),4&t&&-1<bf.indexOf(e)){for(;null!==a;){var o=Ue(a);if(null!==o)switch(o.tag){case 3:if((o=o.stateNode).current.memoizedState.isDehydrated){var i=be(o.pendingLanes);if(0!==i){var l=o;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-pe(i);l.entanglements[1]|=s,i&=~s}Sc(o),!(6&nu)&&(Su=te()+500,xc(0,!1))}}break;case 13:null!==(l=Pr(o,2))&&Du(l,0,2),$u(),ef(o,2)}if(null===(o=lf(r))&&Uc(e,t,r,sf,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Uc(e,t,r,null,n)}}function lf(e){return uf(e=Pt(e))}var sf=null;function uf(e){if(sf=null,null!==(e=$e(e))){var t=s(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=u(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return sf=e,null}function cf(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(ne()){case re:return 2;case ae:return 8;case oe:case ie:return 32;case le:return 268435456;default:return 32}default:return 32}}var df=!1,ff=null,pf=null,mf=null,hf=new Map,gf=new Map,yf=[],bf="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function vf(e,t){switch(e){case"focusin":case"focusout":ff=null;break;case"dragenter":case"dragleave":pf=null;break;case"mouseover":case"mouseout":mf=null;break;case"pointerover":case"pointerout":hf.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":gf.delete(t.pointerId)}}function wf(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=Ue(t))&&tf(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function kf(e){var t=$e(e.target);if(null!==t){var n=s(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=u(n)))return e.blockedOn=t,void function(e,t){var n=M.p;try{return M.p=e,t()}finally{M.p=n}}(e.priority,(function(){if(13===n.tag){var e=Ru();e=Te(e);var t=Pr(n,e);null!==t&&Du(t,0,e),ef(n,e)}}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Sf(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=lf(e.nativeEvent);if(null!==n)return null!==(t=Ue(n))&&tf(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);jt=r,n.target.dispatchEvent(r),jt=null,t.shift()}return!0}function xf(e,t,n){Sf(e)&&n.delete(t)}function _f(){df=!1,null!==ff&&Sf(ff)&&(ff=null),null!==pf&&Sf(pf)&&(pf=null),null!==mf&&Sf(mf)&&(mf=null),hf.forEach(xf),gf.forEach(xf)}function Ef(e,t){e.blockedOn===t&&(e.blockedOn=null,df||(df=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,_f)))}var Cf=null;function Af(e){Cf!==e&&(Cf=e,r.unstable_scheduleCallback(r.unstable_NormalPriority,(function(){Cf===e&&(Cf=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],a=e[t+2];if("function"!=typeof r){if(null===uf(r||n))continue;break}var o=Ue(n);null!==o&&(e.splice(t,3),t-=3,Pi(o,{pending:!0,data:a,method:n.method,action:r},r,a))}})))}function Tf(e){function t(t){return Ef(t,e)}null!==ff&&Ef(ff,e),null!==pf&&Ef(pf,e),null!==mf&&Ef(mf,e),hf.forEach(t),gf.forEach(t);for(var n=0;n<yf.length;n++){var r=yf[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<yf.length&&null===(n=yf[0]).blockedOn;)kf(n),null===n.blockedOn&&yf.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<n.length;r+=3){var a=n[r],o=n[r+1],i=a[Oe]||null;if("function"==typeof o)i||Af(n);else if(i){var l=null;if(o&&o.hasAttribute("formAction")){if(a=o,i=o[Oe]||null)l=i.formAction;else if(null!==uf(a))continue}else l=i.action;"function"==typeof l?n[r+1]=l:(n.splice(r,3),r-=3),Af(n)}}}function Lf(e){this._internalRoot=e}function jf(e){this._internalRoot=e}jf.prototype.render=Lf.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(i(409));Zd(t.current,Ru(),e,t,null,null)},jf.prototype.unmount=Lf.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;Zd(e.current,2,null,e,null,null),$u(),t[Re]=null}},jf.prototype.unstable_scheduleHydration=function(e){if(e){var t=je();e={blockedOn:null,target:e,priority:t};for(var n=0;n<yf.length&&0!==t&&t<yf[n].priority;n++);yf.splice(n,0,e),0===n&&kf(e)}};var Pf=a.version;if("19.1.0"!==Pf)throw Error(i(527,Pf,"19.1.0"));M.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw e=Object.keys(e).join(","),Error(i(268,e))}return e=function(e){var t=e.alternate;if(!t){if(null===(t=s(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 c(a),e;if(o===r)return c(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,u=a.child;u;){if(u===n){l=!0,n=a,r=o;break}if(u===r){l=!0,r=a,n=o;break}u=u.sibling}if(!l){for(u=o.child;u;){if(u===n){l=!0,n=o,r=a;break}if(u===r){l=!0,r=o,n=a;break}u=u.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}(t),e=null===(e=null!==e?d(e):null)?null:e.stateNode};var Nf={bundleType:0,version:"19.1.0",rendererPackageName:"react-dom",currentDispatcherRef:R,reconcilerVersion:"19.1.0"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var Of=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Of.isDisabled&&Of.supportsFiber)try{ce=Of.inject(Nf),de=Of}catch(Mf){}}t.createRoot=function(e,t){if(!l(e))throw Error(i(299));var n=!1,r="",a=bl,o=vl,s=wl;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(a=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(s=t.onRecoverableError),void 0!==t.unstable_transitionCallbacks&&t.unstable_transitionCallbacks),t=Yd(e,1,!1,null,0,n,r,a,o,s,0,null),e[Re]=t.current,zc(e),new Lf(t)},t.hydrateRoot=function(e,t,n){if(!l(e))throw Error(i(299));var r=!1,a="",o=bl,s=vl,u=wl,c=null;return null!=n&&(!0===n.unstable_strictMode&&(r=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(s=n.onCaughtError),void 0!==n.onRecoverableError&&(u=n.onRecoverableError),void 0!==n.unstable_transitionCallbacks&&n.unstable_transitionCallbacks,void 0!==n.formState&&(c=n.formState)),(t=Yd(e,1,!0,t,0,r,a,o,s,u,0,c)).context=Xd(null),n=t.current,(a=ao(r=Te(r=Ru()))).callback=null,oo(n,a,r),n=r,t.current.lanes=n,Ee(t,n),Sc(t),e[Re]=t.current,zc(e),new jf(t)},t.version="19.1.0"},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(6540),a=n(4848);function o(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 i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal <Translate> children",e),new Error("The Docusaurus <Translate> component only accept simple string values");const r=l({message:e,id:t});return(0,a.jsx)(a.Fragment,{children:o(r,n)})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>h,u:()=>s});var r=n(6540),a=n(205),o=n(3109),i=n(4848);const l="ease-in-out";function s({initialState:e}){const[t,n]=(0,r.useState)(e??!1),a=(0,r.useCallback)((()=>{n((e=>!e))}),[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f({collapsibleRef:e,collapsed:t,animation:n}){const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const r=e.current;function i(){const e=r.scrollHeight,t=n?.duration??function(e){if((0,o.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(e);return{transition:`height ${t}ms ${n?.easing??l}`,height:`${e}px`}}function s(){const e=i();r.style.transition=e.transition,r.style.height=e.height}if(!a.current)return d(r,t),void(a.current=!0);return r.style.willChange="height",function(){const e=requestAnimationFrame((()=>{t?(s(),requestAnimationFrame((()=>{r.style.height=u.height,r.style.overflow=u.overflow}))):(r.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(e)}()}),[e,t,n])}function p({as:e="div",collapsed:t,children:n,animation:a,onCollapseTransitionEnd:o,className:l}){const s=(0,r.useRef)(null);return f({collapsibleRef:s,collapsed:t,animation:a}),(0,i.jsx)(e,{ref:s,onTransitionEnd:e=>{"height"===e.propertyName&&(d(s.current,t),o?.(t))},className:l,children:n})}function m({collapsed:e,...t}){const[n,o]=(0,r.useState)(!e),[l,s]=(0,r.useState)(e);return(0,a.A)((()=>{e||o(!0)}),[e]),(0,a.A)((()=>{n&&s(e)}),[n,e]),n?(0,i.jsx)(p,{...t,collapsed:l}):null}function h({lazy:e,...t}){const n=e?m:p;return(0,i.jsx)(n,{...t})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(5260),a=n(4848);function o({locale:e,version:t,tag:n}){const o=e;return(0,a.jsxs)(r.A,{children:[e&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,a.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:language",content:o}),t&&(0,a.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>p,sC:()=>T,AO:()=>f});var r=n(8168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}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 m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"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.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(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 m(){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 h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var y="popstate",b="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,x=i.keyLength,_=void 0===x?6:x,E=e.basename?d(s(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 E&&(o=c(o,E)),p(o,r,n)}function A(){return Math.random().toString(36).substr(2,_)}var T=m();function L(e){(0,r.A)($,e),$.length=n.length,T.notifyListeners($.location,$.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(v()))}var N=!1;function O(e){if(N)N=!1,L();else{T.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=$.location,n=M.indexOf(t.key);-1===n&&(n=0);var r=M.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var R=C(v()),M=[R.key];function D(e){return E+f(e)}function F(e){n.go(e)}var I=0;function B(e){1===(I+=e)&&1===e?(window.addEventListener(y,j),o&&window.addEventListener(b,P)):0===I&&(window.removeEventListener(y,j),o&&window.removeEventListener(b,P))}var z=!1;var $={length:n.length,action:"POP",location:R,createHref:D,push:function(e,t){var r="PUSH",o=p(e,t,A(),$.location);T.confirmTransitionTo(o,r,S,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=M.indexOf($.location.key),u=M.slice(0,s+1);u.push(o.key),M=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,A(),$.location);T.confirmTransitionTo(o,r,S,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=M.indexOf($.location.key);-1!==s&&(M[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return $}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function x(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function _(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function E(e){window.location.replace(x(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,y=e.basename?d(s(e.basename)):"",b=S[u],v=b.encodePath,w=b.decodePath;function C(){var e=w(_());return y&&(e=c(e,y)),p(e)}var A=m();function T(e){(0,r.A)(z,e),z.length=t.length,A.notifyListeners(z.location,z.action)}var L=!1,j=null;function P(){var e,t,n=_(),r=v(n);if(n!==r)E(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===f(a))return;j=null,function(e){if(L)L=!1,T();else{var t="POP";A.confirmTransitionTo(e,t,o,(function(n){n?T({action:t,location:e}):function(e){var t=z.location,n=M.lastIndexOf(f(t));-1===n&&(n=0);var r=M.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,D(a))}(e)}))}}(a)}}var N=_(),O=v(N);N!==O&&E(O);var R=C(),M=[f(R)];function D(e){t.go(e)}var F=0;function I(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var B=!1;var z={length:t.length,action:"POP",location:R,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=x(window.location.href)),n+"#"+v(y+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=v(y+t);if(_()!==a){j=t,function(e){window.location.hash=e}(a);var o=M.lastIndexOf(f(z.location)),i=M.slice(0,o+1);i.push(t),M=i,T({action:n,location:r})}else T()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=v(y+t);_()!==a&&(j=t,E(a));var o=M.indexOf(f(z.location));-1!==o&&(M[o]=t),T({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return B||(I(1),B=!0),function(){return B&&(B=!1,I(-1)),t()}},listen:function(e){var t=A.appendListener(e);return I(1),function(){I(-1),t()}}};return z}function A(e,t,n){return Math.min(Math.max(e,t),n)}function T(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=m();function d(e){(0,r.A)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=A(l,0,o.length-1),y=o.map((function(e){return p(e,void 0,"string"==typeof e?h():e.key||h())})),b=f;function v(e){var t=A(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:y.length,action:"POP",location:y[g],index:g,entries:y,createHref:b,push:function(e,t){var r="PUSH",a=p(e,t,h(),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=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(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}},1561:(e,t,n)=>{"use strict";n.d(t,{A:()=>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)}}},1635:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>M,__assign:()=>o,__asyncDelegator:()=>E,__asyncGenerator:()=>_,__asyncValues:()=>C,__await:()=>x,__awaiter:()=>m,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>O,__createBinding:()=>g,__decorate:()=>l,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>a,__generator:()=>h,__importDefault:()=>P,__importStar:()=>j,__makeTemplateObject:()=>A,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>I,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>S,__spreadArrays:()=>k,__values:()=>b,default:()=>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 m={};for(var h in r)m[h]="access"===h?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.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],m);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.unshift(l)}else(l=i(g))&&("field"===s?a.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a<t.length;a++)n=r?t[a].call(e,n):t[a].call(e);return r?n:void 0}function d(e){return"symbol"==typeof e?e:"".concat(e)}function f(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function m(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(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 h(e,t){var n,r,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,l[0]&&(o=0)),o;)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 o.label++,{value:l[1],done:!1};case 5:o.label++,r=l[1],l=[0];continue;case 7:l=o.ops.pop(),o.trys.pop();continue;default:if(!(a=o.trys,(a=a.length>0&&a[a.length-1])||6!==l[0]&&2!==l[0])){o=0;continue}if(3===l[0]&&(!a||l[1]>a[0]&&l[1]<a[3])){o.label=l[1];break}if(6===l[0]&&o.label<a[1]){o.label=a[1],a=l;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(l);break}a[2]&&o.ops.pop(),o.trys.pop();continue}l=t.call(e,o)}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 y(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 v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(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(v(arguments[t]));return e}function k(){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 S(e,t,n){if(n||2===arguments.length)for(var r,a=0,o=t.length;a<o;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function x(e){return this instanceof x?(this.v=e,this):new x(e)}function _(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),i("next"),i("throw"),i("return",(function(e){return function(t){return Promise.resolve(t).then(e,u)}})),r[Symbol.asyncIterator]=function(){return this},r;function i(e,t){a[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||l(e,t)}))},t&&(r[e]=t(r[e])))}function l(e,t){try{(n=a[e](t)).value instanceof x?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 E(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:x(e[r](t)),done:!1}:a?a(t):t}:a}}function 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 A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var T=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},L=function(e){return L=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},L(e)};function j(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=L(e),r=0;r<n.length;r++)"default"!==n[r]&&g(t,e,n[r]);return T(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 O(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 R(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)}function M(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var r,a;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(a=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");a&&(r=function(){try{a.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var D="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function F(e){function t(t){e.error=e.hasError?new D(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function a(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(a);if(n.dispose){var o=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(o).then(a,(function(e){return t(e),a()}))}else r|=1}catch(i){t(i)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function I(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,(function(e,n,r,a,o){return n?t?".jsx":".js":!r||a&&o?r+a+"."+o.toLowerCase()+"js":e})):e}const B={__extends:a,__assign:o,__rest:i,__decorate:l,__param:s,__esDecorate:u,__runInitializers:c,__propKey:d,__setFunctionName:f,__metadata:p,__awaiter:m,__generator:h,__createBinding:g,__exportStar:y,__values:b,__read:v,__spread:w,__spreadArrays:k,__spreadArray:S,__await:x,__asyncGenerator:_,__asyncDelegator:E,__asyncValues:C,__makeTemplateObject:A,__importStar:j,__importDefault:P,__classPrivateFieldGet:N,__classPrivateFieldSet:O,__classPrivateFieldIn:R,__addDisposableResource:M,__disposeResources:F,__rewriteRelativeImportExtension:I}},1656:(e,t,n)=>{"use strict";n.d(t,{A:()=>At});var r=n(6540),a=n(4164),o=n(7489),i=n(5500),l=n(6347),s=n(1312),u=n(5062),c=n(4848);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.$)((({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:r}=p();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(7559),y=n(4090);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(h,{className:b.skipToContent})}var w=n(6342),k=n(5041);function S({width:e=21,height:t=21,color:n="currentColor",strokeWidth:r=1.2,className:a,...o}){return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...o,children:(0,c.jsx)("g",{stroke:n,strokeWidth:r,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const x={closeButton:"closeButton_CVFx"};function _(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",x.closeButton,e.className),children:(0,c.jsx)(S,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.M)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:i}=e;return(0,c.jsxs)("div",{className:(0,a.A)(g.G.announcementBar.container,A.announcementBar),style:{backgroundColor:r,color:o},role:"banner",children:[i&&(0,c.jsx)("div",{className:A.announcementBarPlaceholder}),(0,c.jsx)(C,{className:A.announcementBarContent}),i&&(0,c.jsx)(_,{onClick:n,className:A.announcementBarClose})]})}var L=n(9876),j=n(3104);var P=n(9532),N=n(5600);const O=r.createContext(null);function R({children:e}){const t=function(){const e=(0,L.M)(),t=(0,N.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.ZC)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(O.Provider,{value:t,children:e})}function M(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(O);if(!e)throw new P.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:M(o)})),[a,o,t])}function F(e){return parseInt(r.version.split(".")[0],10)<19?{inert:e?"":void 0}:{inert:e}}function I({children:e,inert:t}){return(0,c.jsx)("div",{className:(0,a.A)(g.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...F(t),children:e})}function B({header:e,primaryMenu:t,secondaryMenu:n}){const{shown:r}=D();return(0,c.jsxs)("div",{className:(0,a.A)(g.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,c.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":r}),children:[(0,c.jsx)(I,{inert:r,children:t}),(0,c.jsx)(I,{inert:!r,children:n})]})]})}var z=n(5293),$=n(2303);function U(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function q(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}function H(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}const G="toggle_vylO",V="toggleButton_gllP",W="toggleIcon_g3eP",Q="systemToggleIcon_QzmC",K="lightToggleIcon_pyhR",Y="darkToggleIcon_wfgR",X="toggleButtonDisabled_aARS";function Z(e){switch(e){case null:return(0,s.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw new Error(`unexpected color mode ${e}`)}}function J(e){return(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:Z(e)})}function ee(){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(U,{"aria-hidden":!0,className:(0,a.A)(W,K)}),(0,c.jsx)(q,{"aria-hidden":!0,className:(0,a.A)(W,Y)}),(0,c.jsx)(H,{"aria-hidden":!0,className:(0,a.A)(W,Q)})]})}function te({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:r,onChange:o}){const i=(0,$.A)();return(0,c.jsx)("div",{className:(0,a.A)(G,e),children:(0,c.jsx)("button",{className:(0,a.A)("clean-btn",V,!i&&X,t),type:"button",onClick:()=>o(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw new Error(`unexpected color mode ${e}`)}}(r,n)),disabled:!i,title:Z(r),"aria-label":J(r),children:(0,c.jsx)(ee,{})})})}const ne=r.memo(te),re={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function ae({className:e}){const t=(0,w.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:r}=(0,w.p)().colorMode,{colorModeChoice:a,setColorMode:o}=(0,z.G)();return n?null:(0,c.jsx)(ne,{className:e,buttonClassName:"dark"===t?re.darkNavbarColorModeToggle:void 0,respectPrefersColorScheme:r,value:a,onChange:o})}var oe=n(3465);function ie(){return(0,c.jsx)(oe.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function le(){const e=(0,L.M)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(S,{color:"var(--ifm-color-emphasis-600)"})})}function se(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(ie,{}),(0,c.jsx)(ae,{className:"margin-right--md"}),(0,c.jsx)(le,{})]})}var ue=n(8774),ce=n(6025),de=n(6654);function fe(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var pe=n(3186);function me({activeBasePath:e,activeBaseRegex:t,to:n,href:r,label:a,html:o,isDropdownLink:i,prependBaseUrlToHref:l,...s}){const u=(0,ce.Ay)(n),d=(0,ce.Ay)(e),f=(0,ce.Ay)(r,{forcePrependBaseUrl:!0}),p=a&&r&&!(0,de.A)(r),m=o?{dangerouslySetInnerHTML:{__html:o}}:{children:(0,c.jsxs)(c.Fragment,{children:[a,p&&(0,c.jsx)(pe.A,{...i&&{width:12,height:12}})]})};return r?(0,c.jsx)(ue.A,{href:l?f:r,...s,...m}):(0,c.jsx)(ue.A,{to:u,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?fe(t,n.pathname):n.pathname.startsWith(d)},...s,...m})}function he({className:e,isDropdownItem:t,...n}){return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(me,{className:(0,a.A)("menu__link",e),...n})})}function ge({className:e,isDropdownItem:t=!1,...n}){const r=(0,c.jsx)(me,{className:(0,a.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,c.jsx)("li",{children:r}):r}function ye({mobile:e=!1,position:t,...n}){const r=e?he:ge;return(0,c.jsx)(r,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var be=n(1422),ve=n(9169),we=n(4586);const ke="dropdownNavbarItemMobile_J0Sd";function Se(e,t){return e.some((e=>function(e,t){return!!(0,ve.ys)(e.to,t)||!!fe(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function xe({collapsed:e,onClick:t}){return(0,c.jsx)("button",{"aria-label":e?(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function _e({items:e,className:t,position:n,onClick:o,...i}){const s=function(){const{siteConfig:{baseUrl:e}}=(0,we.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),u=(0,ve.ys)(i.to,s),d=Se(e,s),{collapsed:f,toggleCollapsed:p}=function({active:e}){const{collapsed:t,toggleCollapsed:n,setCollapsed:a}=(0,be.u)({initialState:()=>!e});return(0,r.useEffect)((()=>{e&&a(!1)}),[e,a]),{collapsed:t,toggleCollapsed:n}}({active:u||d}),m=i.to?void 0:"#";return(0,c.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,c.jsxs)("div",{className:(0,a.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":u}),children:[(0,c.jsx)(me,{role:"button",className:(0,a.A)(ke,"menu__link menu__link--sublist",t),href:m,...i,onClick:e=>{"#"===m&&e.preventDefault(),p()},children:i.children??i.label}),(0,c.jsx)(xe,{collapsed:f,onClick:e=>{e.preventDefault(),p()}})]}),(0,c.jsx)(be.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:e.map(((e,t)=>(0,r.createElement)(Be,{mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active",...e,key:t})))})]})}function Ee({items:e,position:t,className:n,onClick:o,...i}){const l=(0,r.useRef)(null),[s,u]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&u(!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)}}),[l]),(0,c.jsxs)("div",{ref:l,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":s}),children:[(0,c.jsx)(me,{"aria-haspopup":"true","aria-expanded":s,role:"button",href:i.to?void 0:"#",className:(0,a.A)("navbar__link",n),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u(!s))},children:i.children??i.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:e.map(((e,t)=>(0,r.createElement)(Be,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function Ce({mobile:e=!1,...t}){const n=e?_e:Ee;return(0,c.jsx)(n,{...t})}var Ae=n(2131);function Te({width:e=20,height:t=20,...n}){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const Le="iconLanguage_nlXk";var je=n(418);const Pe={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Ne({children:e,className:t}){return(0,c.jsx)("div",{className:(0,a.A)(t,Pe.navbarSearchContainer),children:e})}var Oe=n(4070),Re=n(6972);var Me=n(3886);function De({docsPluginId:e,configs:t}){return function(e,t){if(t){const n=new Map(e.map((e=>[e.name,e]))),r=(t,r)=>{const a=n.get(t);if(!a)throw new Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config.\nAvailable version names:\n- ${e.map((e=>`${e.name}`)).join("\n- ")}`);return{version:a,label:r?.label??a.label}};return Array.isArray(t)?t.map((e=>r(e,void 0))):Object.entries(t).map((([e,t])=>r(e,t)))}return e.map((e=>({version:e,label:e.label})))}((0,Oe.jh)(e),t)}function Fe(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find((t=>t.id===e.mainDocId))}(e)}const Ie={default:ye,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:r="",...a}){const{i18n:{currentLocale:o,locales:i,localeConfigs:u}}=(0,we.A)(),d=(0,Ae.o)(),{search:f,hash:p}=(0,l.zy)(),m=[...t,...i.map((t=>{const n=`${`pathname://${d.createUrl({locale:t,fullyQualified:!1})}`}${f}${p}${r}`;return{label:u[t].label,lang:u[t].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:t===o?e?"menu__link--active":"dropdown__link--active":""}})),...n],h=e?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):u[o].label;return(0,c.jsx)(Ce,{...a,mobile:e,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(Te,{className:Le}),h]}),items:m})},search:function({mobile:e,className:t}){return e?null:(0,c.jsx)(Ne,{className:t,children:(0,c.jsx)(je.A,{})})},dropdown:Ce,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:r=!1}){const o=r?"li":"div";return(0,c.jsx)(o,{className:(0,a.A)({navbar__item:!n&&!r,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...r}){const{activeDoc:a}=(0,Oe.zK)(n),o=(0,Re.QB)(e,n),i=a?.path===o?.path;return null===o||o.unlisted&&!i?null:(0,c.jsx)(ye,{exact:!0,...r,isActive:()=>i||!!a?.sidebar&&a.sidebar===o.sidebar,label:t??o.id,to:o.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...r}){const{activeDoc:a}=(0,Oe.zK)(n),o=(0,Re.fW)(e,n).link;if(!o)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,c.jsx)(ye,{exact:!0,...r,isActive:()=>a?.sidebar===e,label:t??o.label,to:o.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...r}){const a=(0,Re.Vd)(n)[0],o=e??a.label,i=t??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,c.jsx)(ye,{...r,label:o,to:i})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:r,dropdownItemsAfter:a,versions:o,...i}){const{search:u,hash:d}=(0,l.zy)(),f=(0,Oe.zK)(t),{savePreferredVersionName:p}=(0,Me.g1)(t),m=De({docsPluginId:t,configs:o}),h=function({docsPluginId:e,versionItems:t}){return(0,Re.Vd)(e).map((e=>t.find((t=>t.version===e)))).filter((e=>void 0!==e))[0]??t[0]}({docsPluginId:t,versionItems:m}),g=[...r,...m.map((function({version:e,label:t}){return{label:t,to:`${Fe(e,f).path}${u}${d}`,isActive:()=>e===f.activeVersion,onClick:()=>p(e.name)}})),...a],y=e&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,b=e&&g.length>1?void 0:Fe(h.version,f).path;return g.length<=1?(0,c.jsx)(ye,{...i,mobile:e,label:y,to:b,isActive:n?()=>!1:void 0}):(0,c.jsx)(Ce,{...i,mobile:e,label:y,to:b,items:g,isActive:n?()=>!1:void 0})}};function Be({type:e,...t}){const n=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(e,t),r=Ie[n];if(!r)throw new Error(`No NavbarItem component found for type "${e}".`);return(0,c.jsx)(r,{...t})}function ze(){const e=(0,L.M)(),t=(0,w.p)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Be,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function $e(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ue(){const e=0===(0,w.p)().navbar.items.length,t=D();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)($e,{onClick:()=>t.hide()}),t.content]})}function qe(){const e=(0,L.M)();return function(e=!0){(0,r.useEffect)((()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[e])}(e.shown),e.shouldRender?(0,c.jsx)(B,{header:(0,c.jsx)(se,{}),primaryMenu:(0,c.jsx)(ze,{}),secondaryMenu:(0,c.jsx)(Ue,{})}):null}const He={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ge(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function Ve({children:e}){const{navbar:{hideOnScroll:t,style:n}}=(0,w.p)(),o=(0,L.M)(),{navbarRef:i,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,j.Mq)((({scrollY:t},r)=>{if(!e)return;if(t<o.current)return void n(!0);if(a.current)return void(a.current=!1);const i=r?.scrollY,l=document.documentElement.scrollHeight-o.current,s=window.innerHeight;i&&t>=i?n(!1):t+s<l&&n(!0)})),(0,u.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(t);return(0,c.jsxs)("nav",{ref:i,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)(g.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&[He.navbarHideable,!l&&He.navbarHidden],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":o.shown}),children:[e,(0,c.jsx)(Ge,{onClick:o.toggle}),(0,c.jsx)(qe,{})]})}var We=n(440);const Qe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Ke(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ye({error:e}){const t=(0,We.rA)(e).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:Qe.errorBoundaryError,children:t})}class Xe extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Ze="right";function Je({width:e=30,height:t=30,className:n,...r}){return(0,c.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...r,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function et(){const{toggle:e,shown:t}=(0,L.M)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(Je,{})})}const tt={colorModeToggle:"colorModeToggle_DEke"};function nt({items:e}){return(0,c.jsx)(c.Fragment,{children:e.map(((e,t)=>(0,c.jsx)(Xe,{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}),children:(0,c.jsx)(Be,{...e})},t)))})}function rt({left:e,right:t}){return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:(0,a.A)(g.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,c.jsx)("div",{className:(0,a.A)(g.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function at(){const e=(0,L.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Ze)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(rt,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(et,{}),(0,c.jsx)(ie,{}),(0,c.jsx)(nt,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(nt,{items:r}),(0,c.jsx)(ae,{className:tt.colorModeToggle}),!a&&(0,c.jsx)(Ne,{children:(0,c.jsx)(je.A,{})})]})})}function ot(){return(0,c.jsx)(Ve,{children:(0,c.jsx)(at,{})})}function it({item:e}){const{to:t,href:n,label:r,prependBaseUrlToHref:o,className:i,...l}=e,s=(0,ce.Ay)(t),u=(0,ce.Ay)(n,{forcePrependBaseUrl:!0});return(0,c.jsxs)(ue.A,{className:(0,a.A)("footer__link-item",i),...n?{href:o?u:n}:{to:s},...l,children:[r,n&&!(0,de.A)(n)&&(0,c.jsx)(pe.A,{})]})}function lt({item:e}){return e.html?(0,c.jsx)("li",{className:(0,a.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(it,{item:e})},e.href??e.to)}function st({column:e}){return(0,c.jsxs)("div",{className:(0,a.A)(g.G.layout.footer.column,"col footer__col",e.className),children:[(0,c.jsx)("div",{className:"footer__title",children:e.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:e.items.map(((e,t)=>(0,c.jsx)(lt,{item:e},t)))})]})}function ut({columns:e}){return(0,c.jsx)("div",{className:"row footer__links",children:e.map(((e,t)=>(0,c.jsx)(st,{column:e},t)))})}function ct(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function dt({item:e}){return e.html?(0,c.jsx)("span",{className:(0,a.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,c.jsx)(it,{item:e})}function ft({links:e}){return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:e.map(((t,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(dt,{item:t}),e.length!==n+1&&(0,c.jsx)(ct,{})]},n)))})})}function pt({links:e}){return function(e){return"title"in e[0]}(e)?(0,c.jsx)(ut,{columns:e}):(0,c.jsx)(ft,{links:e})}var mt=n(1122);const ht="footerLogoLink_BH7S";function gt({logo:e}){const{withBaseUrl:t}=(0,ce.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,c.jsx)(mt.A,{className:(0,a.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function yt({logo:e}){return e.href?(0,c.jsx)(ue.A,{href:e.href,className:ht,target:e.target,children:(0,c.jsx)(gt,{logo:e})}):(0,c.jsx)(gt,{logo:e})}function bt({copyright:e}){return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function vt({style:e,links:t,logo:n,copyright:r}){return(0,c.jsx)("footer",{className:(0,a.A)(g.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[t,(n||r)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:n}),r]})]})})}function wt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(vt,{style:a,links:n&&n.length>0&&(0,c.jsx)(pt,{links:n}),logo:r&&(0,c.jsx)(yt,{logo:r}),copyright:t&&(0,c.jsx)(bt,{copyright:t})})}const kt=r.memo(wt),St=(0,P.fM)([z.a,k.o,j.Tv,Me.VQ,i.Jx,function({children:e}){return(0,c.jsx)(N.y_,{children:(0,c.jsx)(L.e,{children:(0,c.jsx)(R,{children:e})})})}]);function xt({children:e}){return(0,c.jsx)(St,{children:e})}var _t=n(1107);function Et({error:e,tryAgain:t}){return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(_t.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(Ke,{onClick:t,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(Ye,{error:e})})]})})})}const Ct={mainWrapper:"mainWrapper_z2l0"};function At(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,y.J)(),(0,c.jsxs)(xt,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(T,{}),(0,c.jsx)(ot,{}),(0,c.jsx)("div",{id:d,className:(0,a.A)(g.G.layout.main.container,g.G.wrapper.main,Ct.mainWrapper,r),children:(0,c.jsx)(o.A,{fallback:e=>(0,c.jsx)(Et,{...e}),children:t})}),!n&&(0,c.jsx)(kt,{})]})}},1682:(e,t,n)=>{"use strict";function r(e){return Array.from(new Set(e))}function a(e,t){const n={};let r=0;for(const a of e){const e=t(a,r);n[e]??=[],n[e].push(a),r+=1}return n}n.d(t,{$z:()=>a,sb:()=>r})},1765:(e,t,n)=>{"use strict";n.d(t,{My:()=>A,f4:()=>ne});var r,a,o,i,l,s,u,c=n(6540),d=n(4164),f=Object.create,p=Object.defineProperty,m=Object.defineProperties,h=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,S=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,x=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&S(e,n,t[n]);if(b)for(var n of b(t))k.call(t,n)&&S(e,n,t[n]);return e},_=(e,t)=>m(e,g(t)),E=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&b)for(var r of b(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(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};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var 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){for(var t=[],n=e.head.next;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 m=0;m<p.length;++m){if(d&&d.cause==f+","+m)return;var h=p[m],g=h.inside,y=!!h.lookbehind,b=!!h.greedy,v=h.alias;if(b&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,x=c;S!==t.tail&&!(d&&x>=d.reach);x+=S.value.length,S=S.next){var _=S.value;if(t.length>e.length)return;if(!(_ instanceof a)){var E,C=1;if(b){if(!(E=o(k,x,e,y))||E.index>=e.length)break;var A=E.index,T=E.index+E[0].length,L=x;for(L+=S.value.length;A>=L;)L+=(S=S.next).value.length;if(x=L-=S.value.length,S.value instanceof a)continue;for(var j=S;j!==t.tail&&(L<T||"string"==typeof j.value);j=j.next)C++,L+=j.value.length;C--,_=e.slice(x,L),E.index-=x}else if(!(E=o(k,0,_,y)))continue;A=E.index;var P=E[0],N=_.slice(0,A),O=_.slice(A+P.length),R=x+_.length;d&&R>d.reach&&(d.reach=R);var M=S.prev;if(N&&(M=s(t,M,N),x+=N.length),u(t,M,C),S=s(t,M,new a(f,g?r.tokenize(P,g):P,v,P)),O&&s(t,S,O),C>1){var D={cause:f+","+m,reach:R};i(e,t,n,S.prev,x,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function 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}();t.exports=n,n.default=n}},function(){return a||(0,r[y(r)[0]])((a={exports:{}}).exports,a),a.exports}),A=((e,t,n)=>(n=null!=e?f(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of y(t))w.call(e,a)||a===n||p(e,a,{get:()=>t[a],enumerable:!(r=h(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:p(n,"default",{value:e,enumerable:!0}),e)))(C());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"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},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;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:A.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:A.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},A.languages.insertBefore("markup","cdata",t)}}),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,o=A,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":u}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},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.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:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside: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,A.languages.actionscript=A.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),A.languages.actionscript["class-name"].alias="function",delete A.languages.actionscript.parameter,delete A.languages.actionscript["literal-property"],A.languages.markup&&A.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:A.languages.markup}}),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=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(A),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+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,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(A),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(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("\\[(?:[^[\\]\"']|"+t.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":[t,{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}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{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|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(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,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var u,c=e.languages[n];c?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e})),c,n):n&&"none"!==n&&e.plugins.autoloader&&(u="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=u,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(u);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),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"),0<a.length)){var l=f(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&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}return 1}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(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},d=(s=l(s.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n})).join(""),n,i),Object.keys(c));return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,f,p,m,h,g,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(g=(h="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=h.substring(0,g),m=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=h.substring(g+i.length),m=[],s&&m.push(s),m.push(f),p&&(t(h=[p]),m.push.apply(m,h)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):y.content=m)):(g=y.content,Array.isArray(g)?t(g):t([g]))}}(s),new e.Token(i,s,"language-"+i,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 u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function c(e){return"string"==typeof e?e:Array.isArray(e)?e.map(c).join(""):c(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,l,u=n[r];"string"!=typeof u&&(o=u.content,Array.isArray(o)?"template-string"===u.type?(u=o[1],3===o.length&&"string"!=typeof u&&"embedded-code"===u.type&&(i=c(u),u=u.alias,u=Array.isArray(u)?u[0]:u,l=e.languages[u])&&(o[1]=s(i,l,u))):t(o):"string"!=typeof o&&t([o]))}}(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){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(A),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(A),A.languages.n4js=A.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),A.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),A.languages.n4jsd=A.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(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)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=l(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=l(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}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 l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(A),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(A),A.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},A.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=A.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(A),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,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.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){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(A),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){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),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.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;((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>T,duotoneDark:()=>L,duotoneLight:()=>j,github:()=>P,gruvboxMaterialDark:()=>Q,gruvboxMaterialLight:()=>K,jettwaveDark:()=>H,jettwaveLight:()=>G,nightOwl:()=>N,nightOwlLight:()=>O,oceanicNext:()=>D,okaidia:()=>F,oneDark:()=>V,oneLight:()=>W,palenight:()=>I,shadesOfPurple:()=>B,synthwave84:()=>z,ultramin:()=>$,vsDark:()=>U,vsLight:()=>q});var T={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},L={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},j={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},P={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},N={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},O={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},R="#c5a5c5",M="#8dc891",D={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:R}},{types:["attr-value"],style:{color:M}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:M}},{types:["punctuation"],style:{color:M}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:R}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},F={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},I={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},B={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},z={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},H={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Q={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},K={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},Y=/\r\n|\r|\n/,X=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Z=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},J=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i];const c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=Z(u,c.type),c.alias&&(u=Z(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(Y),f=d.length;l.push({types:u,content:d[0]});for(let t=1;t<f;t++)X(l),s.push(l=[]),l.push({types:u,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return X(l),s},ee=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=x(x({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=_(x({},n),{backgroundColor:void 0}),r},te=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=ee(r,o),l=(e=>(0,c.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=E(n,["className","style","line"]);const l=_(x({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=x(x({},l.style||{}),a)),l}),[e]))(i),s=(e=>{const t=(0,c.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,c.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=E(n,["token","className","style"]);const l=_(x({},i),{className:(0,d.A)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(l.style=x(x({},l.style||{}),o)),l}),[t])})(i),u=(({prism:e,code:t,grammar:n,language:r})=>(0,c.useMemo)((()=>{if(null==n)return J([t]);const a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),J(a.tokens)}),[t,n,r,e]))({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:u,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ne=e=>(0,c.createElement)(te,_(x({},e),{prism:e.prism||A,theme:e.theme||U,code:e.code,language:e.language}))},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),a=n(6347),o=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,a.zy)(),u=(0,o.Ks)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function({locale:e,fullyQualified:n}){return`${n?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(e)}${d}`}}}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},2566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){if(""===t)return e;return e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},2654:e=>{"use strict";e.exports={}},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=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}},2799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(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 h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(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=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=k},2831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>l});var r=n(6347),a=n(8168),o=n(6540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.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.dO,n,e.map((function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})}))):null}},2833:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},2892:(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,{A:()=>a})},2983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,u=n,u?a(s):o(s));var s,u;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;const r=n(2566);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},3001:(e,t,n)=>{"use strict";n.r(t)},3025:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l({children:e,version:t}){return(0,o.jsx)(i.Provider,{value:t,children:e})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(6540),a=n(4848);const o=r.createContext(null);function i({children:e,value:t}){const n=r.useContext(o),i=(0,r.useMemo)((()=>function({parent:e,value:t}){if(!e){if(!t)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in t))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return t}const n={...e.data,...t?.data};return{plugin:e.plugin,data:n}}({parent:n,value:t})),[n,t]);return(0,a.jsx)(o.Provider,{value:i,children:e})}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>u,gk:()=>p});var r=n(6540),a=n(8193),o=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function u({children:e}){const t=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:t,children:e})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t=[]){const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();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 p(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"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?.()}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},3157:(e,t,n)=>{var r={"./":8722};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=3157},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(4848);const o="#theme-svg-external-link";function i({width:e=13.5,height:t=13.5}){return(0,a.jsx)("svg",{width:e,height:t,"aria-hidden":"true",className:r.iconExternalLink,children:(0,a.jsx)("use",{href:o})})}},3259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw 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(6540),s=[],u=[];var c=l.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(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 m(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return s.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),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}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextType",c),f}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return l.createElement(c.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component);function y(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return y(e)}))}h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){y(s).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){y(u).then(e,e)}))},e.exports=h},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(8774),a=n(6025),o=n(4586),i=n(6342),l=n(1122),s=n(4848);function u({logo:e,alt:t,imageClassName:n}){const r={light:(0,a.Ay)(e.src),dark:(0,a.Ay)(e.srcDark||e.src)},o=(0,s.jsx)(l.A,{className:e.className,sources:r,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,s.jsx)("div",{className:n,children:o}):o}function c(e){const{siteConfig:{title:t}}=(0,o.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,a.Ay)(l?.href||"/"),m=n?"":t,h=l?.alt??m;return(0,s.jsxs)(r.A,{to:p,...f,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:h,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},3886:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>g,g1:()=>b});var r=n(6540),a=n(4070),o=n(7065),i=n(6342),l=n(679),s=n(9532),u=n(4848);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,l.Wf)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,l.Wf)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,l.Wf)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function({pluginIds:e,versionPersistence:t,allDocsData:n}){function r(e){const r=d.read(e,t);return n[e].versions.some((e=>e.name===r))?{preferredVersionName:r}:(d.clear(e,t),{preferredVersionName:null})}return Object.fromEntries(e.map((e=>[e,r(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 h({children:e}){const t=m();return(0,u.jsx)(p.Provider,{value:t,children:e})}function g({children:e}){return(0,u.jsx)(h,{children:e})}function y(){const e=(0,r.useContext)(p);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function b(e=o.W){const t=(0,a.ht)(e),[n,i]=y(),{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])}}},4054:e=>{"use strict";e.exports=JSON.parse('{"/BharatMLStack/blog-170":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f2c141e4"}],"__props":"f994c8da"},"/BharatMLStack/blog/archive-dde":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"6479fb86"},"/BharatMLStack/blog/authors-f47":{"__comp":"621db11d","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","__props":"2d865531"},"/BharatMLStack/blog/post-one-e5f":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"09dd5be9"},"/BharatMLStack/blog/tags-8af":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"7fa80e1c"},"/BharatMLStack/blog/tags/interaction-store-4b6":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f2c141e4"}],"__props":"3980073a"},"/BharatMLStack/blog/tags/meesho-316":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f2c141e4"}],"__props":"1a64de69"},"/BharatMLStack/blog/tags/mlplatform-48f":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f2c141e4"}],"__props":"479eb034"},"/BharatMLStack/blog/tags/online-feature-store-44b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"f2c141e4"}],"__props":"3e1c5046"},"/BharatMLStack/markdown-page-747":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"393be207"},"/BharatMLStack/-e34":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/BharatMLStack/-fd6":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/BharatMLStack/-098":{"__comp":"a7bd4aaa","__props":"4137b431"},"/BharatMLStack/-925":{"__comp":"a94703ab"},"/BharatMLStack/category/go-sdk-6b0":{"__comp":"14eb3368","__props":"c7b64fcc"},"/BharatMLStack/category/online-feature-store-7ee":{"__comp":"14eb3368","__props":"8ac6191a"},"/BharatMLStack/category/python-sdk-1fd":{"__comp":"14eb3368","__props":"44d1c015"},"/BharatMLStack/category/quick-start-dff":{"__comp":"14eb3368","__props":"14064408"},"/BharatMLStack/category/sdks-532":{"__comp":"14eb3368","__props":"616111d3"},"/BharatMLStack/category/trufflebox-ui-5f5":{"__comp":"14eb3368","__props":"fcf4f6ca"},"/BharatMLStack/category/v100-ddd":{"__comp":"14eb3368","__props":"fa31f022"},"/BharatMLStack/online-feature-store/v1.0.0-218":{"__comp":"14eb3368","__props":"72dc5b25"},"/BharatMLStack/online-feature-store/v1.0.0/architecture-0af":{"__comp":"17896441","content":"e66382f6"},"/BharatMLStack/online-feature-store/v1.0.0/benchmarks-889":{"__comp":"17896441","content":"67d4782a"},"/BharatMLStack/online-feature-store/v1.0.0/data-formats-46e":{"__comp":"17896441","content":"4caa95bf"},"/BharatMLStack/online-feature-store/v1.0.0/functionalities-415":{"__comp":"17896441","content":"c4822c4f"},"/BharatMLStack/online-feature-store/v1.0.0/release-notes-36c":{"__comp":"17896441","content":"d152284c"},"/BharatMLStack/quick-start/v1.0.0/quick-start-b19":{"__comp":"17896441","content":"0fff8dc8"},"/BharatMLStack/sdks/go/v1.0.0/feature_client-1df":{"__comp":"17896441","content":"4af50aac"},"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client-9dc":{"__comp":"17896441","content":"0413d9af"},"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client-1bc":{"__comp":"17896441","content":"ac51638e"},"/BharatMLStack/trufflebox-ui/v1.0.0/userguide-65e":{"__comp":"17896441","content":"176d210f"}}')},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>h,vT:()=>f,Gy:()=>c,HW:()=>g,ht:()=>d,r7:()=>m,jh:()=>p});var r=n(6347),a=n(4586),o=n(7065);function i(e,t={}){const n=function(){const{globalData:e}=(0,a.A)();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=function(e,t){return[...e.versions].sort(((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0)).find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.B6)(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 u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t=o.W,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})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function f(e={}){const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1}))),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw 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 p(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(6540);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)}}),[])}},4146:(e,t,n)=>{"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var y=i[g];if(!(o[y]||r&&r[y]||h&&h[y]||l&&l[y])){var b=f(n,y);try{u(t,y,b)}catch(v){}}}}return t}},4164:(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)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}n.d(t,{A:()=>a});const a=function(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},4363:(e,t,n)=>{"use strict";e.exports=n(2799)},4477:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else{if(!(u<a&&0>o(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var u=[],c=[],d=1,f=null,p=3,m=!1,h=!1,g=!1,y=!1,b="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function k(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function S(e){if(g=!1,k(e),!h)if(null!==r(u))h=!0,_||(_=!0,x());else{var t=r(c);null!==t&&N(S,t.startTime-e)}}var x,_=!1,E=-1,C=5,A=-1;function T(){return!!y||!(t.unstable_now()-A<C)}function L(){if(y=!1,_){var e=t.unstable_now();A=e;var n=!0;try{e:{h=!1,g&&(g=!1,v(E),E=-1),m=!0;var o=p;try{t:{for(k(e),f=r(u);null!==f&&!(f.expirationTime>e&&T());){var i=f.callback;if("function"==typeof i){f.callback=null,p=f.priorityLevel;var l=i(f.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof l){f.callback=l,k(e),n=!0;break t}f===r(u)&&a(u),k(e)}else a(u);f=r(u)}if(null!==f)n=!0;else{var s=r(c);null!==s&&N(S,s.startTime-e),n=!1}}break e}finally{f=null,p=o,m=!1}n=void 0}}finally{n?x():_=!1}}}if("function"==typeof w)x=function(){w(L)};else if("undefined"!=typeof MessageChannel){var j=new MessageChannel,P=j.port2;j.port1.onmessage=L,x=function(){P.postMessage(null)}}else x=function(){b(L,0)};function N(e,n){E=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},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_requestPaint=function(){y=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>i?(e.sortIndex=o,n(c,e),null===r(u)&&e===r(c)&&(g?(v(E),E=-1):g=!0,N(S,o-i))):(e.sortIndex=l,n(u,e),h||m||(h=!0,_||(_=!0,x()))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},4563:(e,t,n)=>{"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(6540),a=n(4586),o=n(6803),i=n(9532),l=n(4848);const s=({title:e,siteTitle:t,titleDelimiter:n})=>{const r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,r.createContext)(null);function c({formatter:e,children:t}){return(0,l.jsx)(u.Provider,{value:e,children:t})}function d(){const e=function(){const e=(0,r.useContext)(u);if(null===e)throw new i.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,a.A)(),{title:n,titleDelimiter:l}=t,{plugin:c}=(0,o.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:l,plugin:c,defaultFormatter:s})}}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(6540),a=n(8193);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l({desktopBreakpoint:e=i}={}){const[t,n]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}}),[e]),t}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6988);function o(){return(0,r.useContext)(a.o)}},4625:(e,t,n)=>{"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>y,k2:()=>w});var r=n(6347),a=n(2892),o=n(6540),i=n(1513),l=n(8168),s=n(8587),u=n(1561),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.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var d=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.TM)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var f=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},m=function(e){return e},h=o.forwardRef;void 0===h&&(h=m);var g=h((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=m!==h&&t||n,o.createElement("a",c)}));var y=h((function(e,t){var n=e.component,a=void 0===n?g:n,c=e.replace,d=e.to,y=e.innerRef,b=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=e.history,r=p(f(d,e.location),e.location),s=r?n.createHref(r):"",g=(0,l.A)({},b,{href:s,navigate:function(){var t=f(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(c||r?n.replace:n.push)(t)}});return m!==h?g.ref=t||y:g.innerRef=y,o.createElement(a,g)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var w=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,d=e.activeStyle,m=e.className,h=e.exact,g=e.isActive,w=e.location,k=e.sensitive,S=e.strict,x=e.style,_=e.to,E=e.innerRef,C=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=w||e.location,i=p(f(_,n),n),s=i.pathname,A=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),T=A?(0,r.B6)(n.pathname,{path:A,exact:h,sensitive:k,strict:S}):null,L=!!(g?g(T,n):T),j="function"==typeof m?m(L):m,P="function"==typeof x?x(L):x;L&&(j=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(" ")}(j,c),P=(0,l.A)({},P,d));var N=(0,l.A)({"aria-current":L&&a||null,className:j,style:P,to:i},C);return b!==v?N.ref=t||E:N.innerRef=E,o.createElement(y,N)}))}))},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"BharatMLStack",tagline:"BharatMLStack is a comprehensive, production-ready machine learning infrastructure platform designed to democratize ML capabilities across India and beyond. Our mission is to provide a robust, scalable, and accessible ML stack that empowers organizations to build, deploy, and manage machine learning solutions at massive scale.",favicon:"img/favicon.ico",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0},experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1,rspackPersistentCache:!1,ssgWorkerThreads:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},url:"https://meesho.github.io",baseUrl:"/BharatMLStack/",organizationName:"Meesho Ltd.",projectName:"BharatMLStack",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/Meesho/BharatMLStack/tree/main/docs",routeBasePath:"/"},blog:{showReadingTime:!0,feedOptions:{type:["rss","atom"],xslt:!0},editUrl:"https://github.com/Meesho/BharatMLStack/tree/main/docs",onInlineTags:"warn",onInlineAuthors:"warn",onUntruncatedBlogPosts:"warn"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/docusaurus-social-card.jpg",navbar:{title:"BharatMLStack",items:[{type:"docSidebar",sidebarId:"tutorialSidebar",position:"left",label:"Docs"},{to:"/blog",label:"Blog",position:"left"},{href:"https://github.com/Meesho/BharatMLStack",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Community",items:[{label:"Github Discussions",href:"https://github.com/Meesho/BharatMLStack/discussions"},{label:"Discord",href:"https://discord.gg/XkT7XsV2AU"}]},{title:"More",items:[{label:"Blog",to:"/blog"},{label:"GitHub",href:"https://github.com/Meesho/BharatMLStack"}]}],copyright:"Copyright \xa9 2025 Meesho Ltd. Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},4848:(e,t,n)=>{"use strict";e.exports=n(9698)},5041:(e,t,n)=>{"use strict";n.d(t,{M:()=>h,o:()=>m});var r=n(6540),a=n(2303),o=n(679),i=n(9532),l=n(6342),s=n(4848);const u=(0,o.Wf)("docusaurus.announcement.dismiss"),c=(0,o.Wf)("docusaurus.announcement.id"),d=()=>"true"===u.get(),f=e=>u.set(String(e)),p=r.createContext(null);function m({children:e}){const t=function(){const{announcementBar:e}=(0,l.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{f(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&f(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(p.Provider,{value:t,children:e})}function h(){const e=(0,r.useContext)(p);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(9532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(545),a=n(4848);function o(e){return(0,a.jsx)(r.mg,{...e})}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(6540),a=n(9532),o=n(679),i=n(6342),l=n(4848);function s(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function u(e){return function(e,t){const n=window.matchMedia(e);return n.addEventListener("change",t),()=>n.removeEventListener("change",t)}("(prefers-color-scheme: dark)",(()=>e(s())))}const c=r.createContext(void 0),d=(0,o.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",m=e=>null===e||e===f?null:p(e),h={get:()=>p(document.documentElement.getAttribute("data-theme")),set:e=>{document.documentElement.setAttribute("data-theme",p(e))}},g={get:()=>m(document.documentElement.getAttribute("data-theme-choice")),set:e=>{document.documentElement.setAttribute("data-theme-choice",m(e)??f)}},y=e=>{null===e?d.del():d.set(p(e))};function b(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,i.p)(),{colorMode:a,setColorModeState:o,colorModeChoice:l,setColorModeChoiceState:c}=function(){const{colorMode:{defaultMode:e}}=(0,i.p)(),[t,n]=(0,r.useState)(e),[a,o]=(0,r.useState)(null);return(0,r.useEffect)((()=>{n(h.get()),o(g.get())}),[]),{colorMode:t,setColorModeState:n,colorModeChoice:a,setColorModeChoiceState:o}}();(0,r.useEffect)((()=>{t&&d.del()}),[t]);const f=(0,r.useCallback)(((t,r={})=>{const{persist:a=!0}=r;if(null===t){const t=n?s():e;h.set(t),o(t),g.set(null),c(null)}else h.set(t),g.set(t),o(t),c(t);a&&y(t)}),[o,c,n,e]);return(0,r.useEffect)((()=>d.listen((e=>{f(m(e.newValue))}))),[f]),(0,r.useEffect)((()=>{if(null===l&&n)return u((e=>{o(e),h.set(e)}))}),[n,l,o]),(0,r.useMemo)((()=>({colorMode:a,colorModeChoice:l,setColorMode:f,get isDarkTheme(){return"dark"===a},setLightTheme(){f("light")},setDarkTheme(){f("dark")}})),[a,l,f])}function v({children:e}){const t=b();return(0,l.jsx)(c.Provider,{value:t,children:e})}function w(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5302:(e,t,n)=>{var r=n(4634);e.exports=m,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,l=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(s+=e.slice(l,p),l=p+d.length,f)s+=f[1];else{var m=e[l],h=n[2],g=n[3],y=n[4],b=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,S="+"===v||"*"===v,x="?"===v||"*"===v,_=h||u,E=y||b,C=h||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:g||o++,prefix:h||"",delimiter:_,optional:x,repeat:S,partial:k,asterisk:!!w,pattern:E?c(E):w?".*":i(_,C)})}}return l<e.length&&(s+=e.substr(l)),s&&r.push(s),r}function i(e,t){return!t||t.indexOf(e)>-1?"[^"+u(e)+"]+?":u(t)+"|(?:(?!"+u(t)+")[^"+u(e)+"])+?"}function l(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",f(t)));return function(t,a){for(var o="",i=t||{},s=(a||{}).pretty?l:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=i[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 u(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function d(e,t){return e.keys=t,e}function f(e){return e&&e.sensitive?"":"i"}function p(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 s=e[l];if("string"==typeof s)i+=u(s);else{var c=u(s.prefix),p="(?:"+s.pattern+")";t.push(s),s.repeat&&(p+="(?:"+c+p+")*"),i+=p=s.optional?s.partial?c+"("+p+")?":"(?:"+c+"("+p+"))?":c+"("+p+")"}}var m=u(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",d(new RegExp("^"+i,f(n)),t)}function m(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 d(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(m(e[a],t,n).source);return d(new RegExp("(?:"+r.join("|")+")",f(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},5338:(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(1247)},5500:(e,t,n)=>{"use strict";n.d(t,{Jx:()=>y,be:()=>m,e3:()=>g});var r=n(6540),a=n(4164),o=n(5260),i=n(6803),l=n(6025),s=n(4563),u=n(4848);function c({title:e}){const t=(0,s.s$)().format(e);return(0,u.jsxs)(o.A,{children:[(0,u.jsx)("title",{children:t}),(0,u.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,u.jsxs)(o.A,{children:[(0,u.jsx)("meta",{name:"description",content:e}),(0,u.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){const{withBaseUrl:t}=(0,l.hH)(),n=t(e,{absolute:!0});return(0,u.jsxs)(o.A,{children:[(0,u.jsx)("meta",{property:"og:image",content:n}),(0,u.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,u.jsx)(o.A,{children:(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:r,children:a}){return(0,u.jsxs)(u.Fragment,{children:[e&&(0,u.jsx)(c,{title:e}),t&&(0,u.jsx)(d,{description:t}),n&&(0,u.jsx)(p,{keywords:n}),r&&(0,u.jsx)(f,{image:r}),a&&(0,u.jsx)(o.A,{children:a})]})}const h=r.createContext(void 0);function g({className:e,children:t}){const n=r.useContext(h),i=(0,a.A)(n,e);return(0,u.jsxs)(h.Provider,{value:i,children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("html",{className:i})}),t]})}function y({children:e}){const t=(0,i.A)(),n=`plugin-${t.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const r=`plugin-id-${t.plugin.id}`;return(0,u.jsx)(g,{className:(0,a.A)(n,r),children:e})}},5556:(e,t,n)=>{e.exports=n(2694)()},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l({children:e}){const t=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:t,children:e})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){const n=(0,r.useContext)(i);if(!n)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,o]=n,l=(0,a.Be)(t);return(0,r.useEffect)((()=>{o({component:e,props:l})}),[o,e,l]),(0,r.useEffect)((()=>()=>o({component:null,props:null})),[o]),null}},5947: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)},6025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(6540),a=n(4586),o=n(6654);function i(){const{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,l=(0,r.useCallback)(((e,r)=>function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:l}}function l(e,t={}){const{withBaseUrl:n}=i();return n(e,t)}},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(6540),a=n(4848);const o=r.createContext(!1);function i({children:e}){const[t,n]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{n(!0)}),[]),(0,a.jsx)(o.Provider,{value:t,children:e})}},6134:(e,t,n)=>{"use strict";var r=n(1765),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t,o=globalThis.Prism;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=e)}(r.My)},6221:(e,t,n)=>{"use strict";var r=n(6540);function a(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var i={d:{f:o,r:function(){throw Error(a(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},l=Symbol.for("react.portal");var s=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function u(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(a(299));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},t.preconnect=function(e,t){"string"==typeof e&&(t?t="string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:t=null,i.d.C(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&i.d.D(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var n=t.as,r=u(n,t.crossOrigin),a="string"==typeof t.integrity?t.integrity:void 0,o="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===n?i.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):"script"===n&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var n=u(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&i.d.M(e)},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var n=t.as,r=u(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e)if(t){var n=u(t.as,t.crossOrigin);i.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else i.d.m(e)},t.requestFormReset=function(e){i.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},t.useFormStatus=function(){return s.H.useHostTransitionStatus()},t.version="19.1.0"},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(4586);function a(){return(0,r.A)().siteConfig.themeConfig}},6347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>x,Ix:()=>v,W6:()=>N,XZ:()=>b,dO:()=>j,qh:()=>_,zy:()=>O});var r=n(2892),a=n(6540),o=n(5556),i=n.n(o),l=n(1513),s=n(1561),u=n(8168),c=n(5302),d=n.n(c),f=(n(4363),n(8587)),p=(n(4146),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[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.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((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.A)(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=h();return t.displayName=e,t},y=g("Router-History"),b=g("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function x(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=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),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 _=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?x(n.pathname,e.props):t.match,o=(0,u.A)({},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 E(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,u.A)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.AO)(e)}function T(e){return function(){(0,s.A)(!1)}}function L(){}a.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?x(o.pathname,(0,u.A)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(y)}function O(){return P(b).location}},6540:(e,t,n)=>{"use strict";e.exports=n(9869)},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6803:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(3102);function o(){const e=r.useContext(a.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>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,o])=>{const i=a?`${a}.${n}`:n;r(o)?e(o,i):t[i]=o}))}(e),t}},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},6972:(e,t,n)=>{"use strict";n.d(t,{$S:()=>m,B5:()=>C,Nr:()=>p,OF:()=>S,QB:()=>E,Vd:()=>x,Y:()=>w,a4:()=>h,cC:()=>f,d1:()=>A,fW:()=>_,w8:()=>b});var r=n(6540),a=n(6347),o=n(2831),i=n(4070),l=n(9169),s=n(1682),u=n(3886),c=n(3025),d=n(609);function f(e){const t=(0,c.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function p(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=p(t);if(e)return e}}(e):void 0:e.href}function m(){const{pathname:e}=(0,a.zy)(),t=(0,d.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({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}function h(){const{pathname:e}=(0,a.zy)(),t=(0,d.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];return n?.items??t.items}const g=(e,t)=>void 0!==e&&(0,l.ys)(e,t),y=(e,t)=>e.some((e=>b(e,t)));function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||y(e.items,t))}function v(e,t){switch(e.type){case"category":return b(e,t)||void 0!==e.href&&!e.linkUnlisted||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||b(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k({sidebarItems:e,pathname:t,onlyCategories:n=!1}){const r=[];return function e(a){for(const o of a)if("category"===o.type&&((0,l.ys)(o.href,t)||e(o.items))||"link"===o.type&&(0,l.ys)(o.href,t)){return n&&"category"!==o.type||r.unshift(o),!0}return!1}(e),r}function S(){const e=(0,d.t)(),{pathname:t}=(0,a.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function x(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)((()=>(0,s.sb)([t,n,a].filter(Boolean))),[t,n,a])}function _(e,t){const n=x(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=x(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,s.sb)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function C({route:e}){const t=(0,a.zy)(),n=(0,c.r)(),r=e.routes,i=r.find((e=>(0,a.B6)(t.pathname,e)));if(!i)return null;const l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.v)(r),sidebarName:l,sidebarItems:s}}function A(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!p(e)))}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>f});var r=n(6540),a=n(4784);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/BharatMLStack/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/BharatMLStack/","mainDocId":"online-feature-store/v1.0.0/architecture","docs":[{"id":"online-feature-store/v1.0.0/architecture","path":"/BharatMLStack/online-feature-store/v1.0.0/architecture","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/benchmarks","path":"/BharatMLStack/online-feature-store/v1.0.0/benchmarks","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/data-formats","path":"/BharatMLStack/online-feature-store/v1.0.0/data-formats","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/functionalities","path":"/BharatMLStack/online-feature-store/v1.0.0/functionalities","sidebar":"tutorialSidebar"},{"id":"online-feature-store/v1.0.0/release-notes","path":"/BharatMLStack/online-feature-store/v1.0.0/release-notes","sidebar":"tutorialSidebar"},{"id":"quick-start/v1.0.0/quick-start","path":"/BharatMLStack/quick-start/v1.0.0/quick-start","sidebar":"tutorialSidebar"},{"id":"sdks/go/v1.0.0/feature_client","path":"/BharatMLStack/sdks/go/v1.0.0/feature_client","sidebar":"tutorialSidebar"},{"id":"sdks/python/v1.0.0/grpc_feature_client","path":"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client","sidebar":"tutorialSidebar"},{"id":"sdks/python/v1.0.0/spark_feature_push_client","path":"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client","sidebar":"tutorialSidebar"},{"id":"trufflebox-ui/v1.0.0/userguide","path":"/BharatMLStack/trufflebox-ui/v1.0.0/userguide","sidebar":"tutorialSidebar"},{"id":"/category/online-feature-store","path":"/BharatMLStack/category/online-feature-store","sidebar":"tutorialSidebar"},{"id":"/online-feature-store/v1.0.0","path":"/BharatMLStack/online-feature-store/v1.0.0","sidebar":"tutorialSidebar"},{"id":"/category/quick-start","path":"/BharatMLStack/category/quick-start","sidebar":"tutorialSidebar"},{"id":"/category/trufflebox-ui","path":"/BharatMLStack/category/trufflebox-ui","sidebar":"tutorialSidebar"},{"id":"/category/sdks","path":"/BharatMLStack/category/sdks","sidebar":"tutorialSidebar"},{"id":"/category/go-sdk","path":"/BharatMLStack/category/go-sdk","sidebar":"tutorialSidebar"},{"id":"/category/python-sdk","path":"/BharatMLStack/category/python-sdk","sidebar":"tutorialSidebar"},{"id":"/category/v100","path":"/BharatMLStack/category/v100","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/BharatMLStack/category/online-feature-store","label":"Online Feature Store"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.8.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.8.1"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.8.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.8.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.8.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.8.1"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.8.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.8.1"}}}');var u=n(4848);const c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(c);function f({children:e}){return(0,u.jsx)(d.Provider,{value:c,children:e})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(6540),a=n(8193),o=n(5260),i=n(440),l=n(1656),s=n(3102),u=n(4848);function c({error:e,tryAgain:t}){return(0,u.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,u.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,u.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,u.jsx)(d,{error:e})]})}function d({error:e}){const t=(0,i.rA)(e).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,u.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,u.jsx)(f,{children:(0,u.jsxs)(h,{fallback:()=>(0,u.jsx)(c,{error:e,tryAgain:t}),children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("title",{children:"Page Error"})}),(0,u.jsx)(l.A,{children:(0,u.jsx)(c,{error:e,tryAgain:t})})]})})}const m=e=>(0,u.jsx)(p,{...e});class h extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.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??m)(e)}return e??null}}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},8168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:()=>r})},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>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}},8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});n(6540);var r=n(3259),a=n.n(r),o=n(4054);const i={"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,9158)),"@theme/BlogTagsListPage",9158],"0413d9af":[()=>n.e(9919).then(n.bind(n,7114)),"@site/docs/sdks/python/v1.0.0/grpc_feature_client.md",7114],"09dd5be9":[()=>n.e(6273).then(n.bind(n,8831)),"@site/blog/bharatmlstack-history/post-one/index.md",8831],"0fff8dc8":[()=>n.e(9596).then(n.bind(n,5958)),"@site/docs/quick-start/v1.0.0/quick-start.md",5958],14064408:[()=>n.e(4582).then(n.t.bind(n,9416,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-quick-start-b0e.json",9416],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,477)),"@theme/DocCategoryGeneratedIndexPage",477],"176d210f":[()=>n.e(6100).then(n.bind(n,753)),"@site/docs/trufflebox-ui/v1.0.0/userguide.md",753],17896441:[()=>Promise.all([n.e(1869),n.e(6870),n.e(8401)]).then(n.bind(n,833)),"@theme/DocItem",833],"1a64de69":[()=>n.e(3645).then(n.t.bind(n,1694,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-meesho-214.json",1694],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(6870),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"2d865531":[()=>n.e(9197).then(n.t.bind(n,4153,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-authors-eb6.json",4153],"36994c47":[()=>n.e(9858).then(n.t.bind(n,5516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",5516],"393be207":[()=>n.e(4134).then(n.bind(n,591)),"@site/src/pages/markdown-page.md",591],"3980073a":[()=>n.e(940).then(n.t.bind(n,3840,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-interaction-store-62d.json",3840],"3e1c5046":[()=>n.e(690).then(n.t.bind(n,8750,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-online-feature-store-e01.json",8750],"4137b431":[()=>n.e(6054).then(n.t.bind(n,4019,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-aad.json",4019],"44d1c015":[()=>n.e(1065).then(n.t.bind(n,6725,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-python-sdk-f96.json",6725],"479eb034":[()=>n.e(5425).then(n.t.bind(n,9341,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-mlplatform-b63.json",9341],"4af50aac":[()=>n.e(1964).then(n.bind(n,6220)),"@site/docs/sdks/go/v1.0.0/feature_client.md",6220],"4caa95bf":[()=>n.e(2344).then(n.bind(n,9584)),"@site/docs/online-feature-store/v1.0.0/data-formats.md",9584],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"616111d3":[()=>n.e(9158).then(n.t.bind(n,9470,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-sdks-291.json",9470],"621db11d":[()=>Promise.all([n.e(1869),n.e(7518),n.e(4212)]).then(n.bind(n,3250)),"@theme/Blog/Pages/BlogAuthorsListPage",3250],"6479fb86":[()=>n.e(5579).then(n.t.bind(n,3751,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-archive-553.json",3751],"67d4782a":[()=>n.e(8588).then(n.bind(n,8769)),"@site/docs/online-feature-store/v1.0.0/benchmarks.md",8769],"6875c492":[()=>Promise.all([n.e(1869),n.e(6870),n.e(7518),n.e(4813)]).then(n.bind(n,3069)),"@theme/BlogTagsPostsPage",3069],"72dc5b25":[()=>n.e(8261).then(n.t.bind(n,3613,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-online-feature-store-v-1-0-0-a94.json",3613],"7fa80e1c":[()=>n.e(3322).then(n.t.bind(n,9189,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-tags-853.json",9189],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"8ac6191a":[()=>n.e(8465).then(n.t.bind(n,4540,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-online-feature-store-8eb.json",4540],"9e4087bc":[()=>n.e(2711).then(n.bind(n,9331)),"@theme/BlogArchivePage",9331],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(6870),n.e(7518),n.e(7643)]).then(n.bind(n,5124)),"@theme/BlogListPage",5124],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,1723)),"@theme/DocVersionRoot",1723],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,1377)),"@theme/DocRoot",1377],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],ac51638e:[()=>n.e(9473).then(n.bind(n,6692)),"@site/docs/sdks/python/v1.0.0/spark_feature_push_client.md",6692],acecf23e:[()=>n.e(1903).then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],c4822c4f:[()=>n.e(1915).then(n.bind(n,3649)),"@site/docs/online-feature-store/v1.0.0/functionalities.md",3649],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,6467)),"@site/src/pages/index.js",6467],c7b64fcc:[()=>n.e(8933).then(n.t.bind(n,9997,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-go-sdk-b5b.json",9997],ccc49370:[()=>Promise.all([n.e(1869),n.e(6870),n.e(7518),n.e(3249)]).then(n.bind(n,3858)),"@theme/BlogPostPage",3858],d152284c:[()=>n.e(1606).then(n.bind(n,5876)),"@site/docs/online-feature-store/v1.0.0/release-notes.md",5876],e66382f6:[()=>n.e(1405).then(n.bind(n,9563)),"@site/docs/online-feature-store/v1.0.0/architecture.md",9563],f2c141e4:[()=>n.e(1909).then(n.bind(n,161)),"@site/blog/bharatmlstack-history/post-one/index.md?truncated=true",161],f994c8da:[()=>n.e(1999).then(n.t.bind(n,38,19)),"@generated/docusaurus-plugin-content-blog/default/p/bharat-ml-stack-blog-7a3.json",38],fa31f022:[()=>n.e(6062).then(n.t.bind(n,6096,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-v-100-ae3.json",6096],fcf4f6ca:[()=>n.e(7720).then(n.t.bind(n,4041,19)),"@generated/docusaurus-plugin-content-docs/default/p/bharat-ml-stack-category-trufflebox-ui-b39.json",4041]};var l=n(4848);function s({error:e,retry:t,pastDelay:n}){return e?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(e)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(6921),c=n(3102);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},f=[],p=[],m=(0,u.A)(r);return Object.entries(m).forEach((([e,t])=>{const n=i[t];n&&(d[e]=n[0],f.push(n[1]),p.push(n[2]))})),a().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((([t,n])=>{const r=n.default;if(!r)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof r&&"function"!=typeof r||Object.keys(n).filter((e=>"default"!==e)).forEach((e=>{r[e]=n[e]}));let o=a;const i=t.split(".");i.slice(0,-1).forEach((e=>{o=o[e]})),o[i[i.length-1]]=r}));const o=a.__comp;delete a.__comp;const i=a.__context;delete a.__context;const s=a.__props;return delete a.__props,(0,l.jsx)(c.W,{value:i,children:(0,l.jsx)(o,{...a,...s,...n})})}})}const f=[{path:"/BharatMLStack/blog",component:d("/BharatMLStack/blog","170"),exact:!0},{path:"/BharatMLStack/blog/archive",component:d("/BharatMLStack/blog/archive","dde"),exact:!0},{path:"/BharatMLStack/blog/authors",component:d("/BharatMLStack/blog/authors","f47"),exact:!0},{path:"/BharatMLStack/blog/post-one",component:d("/BharatMLStack/blog/post-one","e5f"),exact:!0},{path:"/BharatMLStack/blog/tags",component:d("/BharatMLStack/blog/tags","8af"),exact:!0},{path:"/BharatMLStack/blog/tags/interaction-store",component:d("/BharatMLStack/blog/tags/interaction-store","4b6"),exact:!0},{path:"/BharatMLStack/blog/tags/meesho",component:d("/BharatMLStack/blog/tags/meesho","316"),exact:!0},{path:"/BharatMLStack/blog/tags/mlplatform",component:d("/BharatMLStack/blog/tags/mlplatform","48f"),exact:!0},{path:"/BharatMLStack/blog/tags/online-feature-store",component:d("/BharatMLStack/blog/tags/online-feature-store","44b"),exact:!0},{path:"/BharatMLStack/markdown-page",component:d("/BharatMLStack/markdown-page","747"),exact:!0},{path:"/BharatMLStack/",component:d("/BharatMLStack/","e34"),exact:!0},{path:"/BharatMLStack/",component:d("/BharatMLStack/","fd6"),routes:[{path:"/BharatMLStack/",component:d("/BharatMLStack/","098"),routes:[{path:"/BharatMLStack/",component:d("/BharatMLStack/","925"),routes:[{path:"/BharatMLStack/category/go-sdk",component:d("/BharatMLStack/category/go-sdk","6b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/online-feature-store",component:d("/BharatMLStack/category/online-feature-store","7ee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/python-sdk",component:d("/BharatMLStack/category/python-sdk","1fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/quick-start",component:d("/BharatMLStack/category/quick-start","dff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/sdks",component:d("/BharatMLStack/category/sdks","532"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/trufflebox-ui",component:d("/BharatMLStack/category/trufflebox-ui","5f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/category/v100",component:d("/BharatMLStack/category/v100","ddd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0",component:d("/BharatMLStack/online-feature-store/v1.0.0","218"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/architecture",component:d("/BharatMLStack/online-feature-store/v1.0.0/architecture","0af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/benchmarks",component:d("/BharatMLStack/online-feature-store/v1.0.0/benchmarks","889"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/data-formats",component:d("/BharatMLStack/online-feature-store/v1.0.0/data-formats","46e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/functionalities",component:d("/BharatMLStack/online-feature-store/v1.0.0/functionalities","415"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/online-feature-store/v1.0.0/release-notes",component:d("/BharatMLStack/online-feature-store/v1.0.0/release-notes","36c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/quick-start/v1.0.0/quick-start",component:d("/BharatMLStack/quick-start/v1.0.0/quick-start","b19"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/sdks/go/v1.0.0/feature_client",component:d("/BharatMLStack/sdks/go/v1.0.0/feature_client","1df"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client",component:d("/BharatMLStack/sdks/python/v1.0.0/grpc_feature_client","9dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client",component:d("/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_client","1bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/BharatMLStack/trufflebox-ui/v1.0.0/userguide",component:d("/BharatMLStack/trufflebox-ui/v1.0.0/userguide","65e"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"*",component:d("*")}]},8380: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),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var y in d)if(!(y in c))for(var b in p(y))if(b in c){f[y]=!0;break}for(var v in m=f)c[v]=!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},8587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},8600:(e,t,n)=>{"use strict";var r=n(6540),a=n(5338),o=n(545),i=n(4625),l=n(4784),s=n(8193);const u=[n(3001),n(119),n(6134),n(6294),n(1043)];var c=n(8328),d=n(6347),f=n(2831),p=n(4848);function m({children:e}){return(0,p.jsx)(p.Fragment,{children:e})}var h=n(4563);const g=e=>e.defaultFormatter(e);function y({children:e}){return(0,p.jsx)(h.AL,{formatter:g,children:e})}function b({children:e}){return(0,p.jsx)(y,{children:e})}var v=n(5260),w=n(4586),k=n(6025),S=n(6342),x=n(5500),_=n(2131),E=n(4090);var C=n(440),A=n(1463);function T(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),r=(0,_.o)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(v.A,{children:[Object.entries(n).map((([e,{htmlLang:t}])=>(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e))),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function L({permalink:e}){const{siteConfig:{url:t}}=(0,w.A)(),n=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,d.zy)();return e+(0,C.Ks)((0,k.Ay)(r),{trailingSlash:n,baseUrl:t})}(),r=e?`${t}${e}`:n;return(0,p.jsxs)(v.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:r}),(0,p.jsx)("link",{rel:"canonical",href:r})]})}function j(){const{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,S.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(v.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:E.w})]}),n&&(0,p.jsx)(x.be,{image:n}),(0,p.jsx)(L,{}),(0,p.jsx)(T,{}),(0,p.jsx)(A.A,{tag:"default",locale:e}),(0,p.jsx)(v.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const P=new Map;var N=n(6125),O=n(6988),R=n(205);function M(e,...t){const n=u.map((n=>{const r=n.default?.[e]??n[e];return r?.(...t)}));return()=>n.forEach((e=>e?.()))}const D=function({children:e,location:t,previousLocation:n}){return(0,R.A)((()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;const n=e.pathname===t.pathname,r=e.hash===t.hash,a=e.search===t.search;if(n&&r&&!a)return;const{hash:o}=e;if(o){const e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),M("onRouteDidUpdate",{previousLocation:n,location:t}))}),[n,t]),e};function F(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,f.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?M("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=M("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),F(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(0,p.jsx)(D,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(d.qh,{location:t,render:()=>e})})}}const B=I,z="__docusaurus-base-url-issue-banner-suggestion-container";function $(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="__docusaurus-base-url-issue-banner" 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="${z}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function U(){const{siteConfig:{baseUrl:e}}=(0,w.A)();return(0,p.jsx)(p.Fragment,{children:!s.A.canUseDOM&&(0,p.jsx)(v.A,{children:(0,p.jsx)("script",{children:$(e)})})})}function q(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,d.zy)();return t&&n===e?(0,p.jsx)(U,{}):null}function H(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,w.A)(),o=(0,k.Ay)(e),{htmlLang:i,direction:l}=a[r];return(0,p.jsxs)(v.A,{children:[(0,p.jsx)("html",{lang:i,dir:l}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:o})]})}var G=n(7489),V=n(2303);function W(){const e=(0,V.A)();return(0,p.jsx)(v.A,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}const Q=(0,f.v)(c.A);function K(){const e=function(e){if(P.has(e.pathname))return{...e,pathname:P.get(e.pathname)};if((0,f.u)(c.A,e.pathname).some((({route:e})=>!0===e.exact)))return P.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return P.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,p.jsx)(B,{location:e,children:Q})}function Y(){return(0,p.jsx)(G.A,{children:(0,p.jsx)(O.l,{children:(0,p.jsxs)(N.x,{children:[(0,p.jsx)(m,{children:(0,p.jsxs)(b,{children:[(0,p.jsx)(H,{}),(0,p.jsx)(j,{}),(0,p.jsx)(q,{}),(0,p.jsx)(K,{})]})}),(0,p.jsx)(W,{})]})})})}var X=n(4054);const Z=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 J=n(6921);const ee=new Set,te=new Set,ne=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,re={prefetch:e=>{if(!(e=>!ne()&&!te.has(e)&&!ee.has(e))(e))return!1;ee.add(e);const t=(0,f.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(X).filter((([e])=>e.replace(/-[^-]+$/,"")===t)).flatMap((([,e])=>Object.values((0,J.A)(e))));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!ne()&&!te.has(e))(e)&&(te.add(e),F(e))},ae=Object.freeze(re);function oe({children:e}){return"hash"===l.default.future.experimental_router?(0,p.jsx)(i.I9,{children:e}):(0,p.jsx)(i.Kd,{children:e})}const ie=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=ae;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(o.vd,{children:(0,p.jsx)(oe,{children:(0,p.jsx)(Y,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ie)window.docusaurusRoot=a.hydrateRoot(e,t,{onRecoverableError:n});else{const r=a.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};F(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},8692:(e,t,n)=>{var r={"./":8722};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=8692},8722:(e,t,n)=>{const r=n(6969),a=n(8380),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(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),o.add(e)}))}i.silent=!1,e.exports=i},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(6540),a=n(4625),o=n(440),i=n(4586),l=n(6654),s=n(8193),u=n(3427),c=n(6025),d=n(4848);function f({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},y){const{siteConfig:b}=(0,i.A)(),{trailingSlash:v,baseUrl:w}=b,k=b.future.experimental_router,{withBaseUrl:S}=(0,c.hH)(),x=(0,u.A)(),_=(0,r.useRef)(null);(0,r.useImperativeHandle)(y,(()=>_.current));const E=t||n;const C=(0,l.A)(E),A=E?.replace("pathname://","");let T=void 0!==A?(L=A,h&&(e=>e.startsWith("/"))(L)?S(L):L):void 0;var L;"hash"===k&&T?.startsWith("./")&&(T=T?.slice(1)),T&&C&&(T=(0,o.Ks)(T,{trailingSlash:v,baseUrl:w}));const j=(0,r.useRef)(!1),P=e?a.k2:a.N_,N=s.A.canUseIntersectionObserver,O=(0,r.useRef)(),R=()=>{j.current||null==T||(window.docusaurus.preload(T),j.current=!0)};(0,r.useEffect)((()=>(!N&&C&&s.A.canUseDOM&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&O.current&&O.current.disconnect()})),[O,T,N,C]);const M=T?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!T||!C||!D||M&&"hash"!==k;m||!M&&F||x.collectLink(T),g.id&&x.collectAnchor(g.id);const I={};return F?(0,d.jsx)("a",{ref:_,href:T,...E&&!C&&{target:"_blank",rel:"noopener noreferrer"},...g,...I}):(0,d.jsx)(P,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&C&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),O.current.observe(e))},to:T,...e&&{isActive:p,activeClassName:f},...I})}const p=r.forwardRef(f)},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8328),o=n(4586);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.A)().siteConfig;return(0,r.useMemo)((()=>function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;return t.find(n)||e(t.filter(r).flatMap((e=>e.routes??[])))}(t)}({routes:a.A,baseUrl:e})),[e])}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(6540),a=n(205),o=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,a.A)((()=>{t.current=e}),[e]),(0,r.useCallback)(((...e)=>t.current(...e)),[])}function l(e){const t=(0,r.useRef)();return(0,a.A)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return({children:t})=>(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),t)})}},9698:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function a(e,t,r){var a=null;if(void 0!==r&&(a=""+r),void 0!==t.key&&(a=""+t.key),"key"in t)for(var o in r={},t)"key"!==o&&(r[o]=t[o]);else r=t;return t=r.ref,{$$typeof:n,type:e,key:a,ref:void 0!==t?t:null,props:r}}t.Fragment=r,t.jsx=a,t.jsxs=a},9700:()=>{!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),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},9869:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=y.prototype;var w=v.prototype=new b;w.constructor=v,h(w,y.prototype),w.isPureReactComponent=!0;var k=Array.isArray,S={H:null,A:null,T:null,S:null,V:null},x=Object.prototype.hasOwnProperty;function _(e,t,r,a,o,i){return r=i.ref,{$$typeof:n,type:e,key:t,ref:void 0!==r?r:null,props:i}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var C=/\/+/g;function A(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,(function(e){return r[e]}))):t.toString(36);var n,r}function T(){}function L(e,t,a,o,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s,u,c=!1;if(null===e)c=!0;else switch(l){case"bigint":case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case n:case r:c=!0;break;case f:return L((c=e._init)(e._payload),t,a,o,i)}}if(c)return i=i(e),c=""===o?"."+A(e,0):o,k(i)?(a="",null!=c&&(a=c.replace(C,"$&/")+"/"),L(i,t,a,"",(function(e){return e}))):null!=i&&(E(i)&&(s=i,u=a+(null==i.key||e&&e.key===i.key?"":(""+i.key).replace(C,"$&/")+"/")+c,i=_(s.type,u,void 0,0,0,s.props)),t.push(i)),1;c=0;var d,m=""===o?".":o+":";if(k(e))for(var h=0;h<e.length;h++)c+=L(o=e[h],t,a,l=m+A(o,h),i);else if("function"==typeof(h=null===(d=e)||"object"!=typeof d?null:"function"==typeof(d=p&&d[p]||d["@@iterator"])?d:null))for(e=h.call(e),h=0;!(o=e.next()).done;)c+=L(o=o.value,t,a,l=m+A(o,h++),i);else if("object"===l){if("function"==typeof e.then)return L(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(T,T):(e.status="pending",e.then((function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)}),(function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)}))),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(e),t,a,o,i);throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return c}function j(e,t,n){if(null==e)return e;var r=[],a=0;return L(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function O(){}t.Children={map:j,forEach:function(e,t,n){j(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return j(e,(function(){t++})),t},toArray:function(e){return j(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=y,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=c,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=S,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return S.H.useMemoCache(e)}},t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cloneElement=function(e,t,n){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var r=h({},e.props),a=e.key;if(null!=t)for(o in void 0!==t.ref&&void 0,void 0!==t.key&&(a=""+t.key),t)!x.call(t,o)||"key"===o||"__self"===o||"__source"===o||"ref"===o&&void 0===t.ref||(r[o]=t[o]);var o=arguments.length-2;if(1===o)r.children=n;else if(1<o){for(var i=Array(o),l=0;l<o;l++)i[l]=arguments[l+2];r.children=i}return _(e.type,a,void 0,0,0,r)},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},t.createElement=function(e,t,n){var r,a={},o=null;if(null!=t)for(r in void 0!==t.key&&(o=""+t.key),t)x.call(t,r)&&"key"!==r&&"__self"!==r&&"__source"!==r&&(a[r]=t[r]);var i=arguments.length-2;if(1===i)a.children=n;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];a.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===a[r]&&(a[r]=i[r]);return _(e,o,void 0,0,0,a)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=S.T,n={};S.T=n;try{var r=e(),a=S.S;null!==a&&a(n,r),"object"==typeof r&&null!==r&&"function"==typeof r.then&&r.then(O,N)}catch(o){N(o)}finally{S.T=t}},t.unstable_useCacheRefresh=function(){return S.H.useCacheRefresh()},t.use=function(e){return S.H.use(e)},t.useActionState=function(e,t,n){return S.H.useActionState(e,t,n)},t.useCallback=function(e,t){return S.H.useCallback(e,t)},t.useContext=function(e){return S.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return S.H.useDeferredValue(e,t)},t.useEffect=function(e,t,n){var r=S.H;if("function"==typeof n)throw Error("useEffect CRUD overload is not enabled in this build of React.");return r.useEffect(e,t)},t.useId=function(){return S.H.useId()},t.useImperativeHandle=function(e,t,n){return S.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return S.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return S.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return S.H.useMemo(e,t)},t.useOptimistic=function(e,t){return S.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return S.H.useReducer(e,t,n)},t.useRef=function(e){return S.H.useRef(e)},t.useState=function(e){return S.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return S.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return S.H.useTransition()},t.version="19.1.0"},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>m,M:()=>h});var r=n(6540),a=n(5600),o=n(4581),i=n(6347),l=n(9532);function s(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6342),c=n(4848);const d=r.createContext(void 0);function f(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,u.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:s,shown:i})),[e,n,s,i])}function p({handler:e}){return s(e),null}function m({children:e}){const t=f();return(0,c.jsxs)(c.Fragment,{children:[t.shown&&(0,c.jsx)(p,{handler:()=>(t.toggle(),!1)}),(0,c.jsx)(d.Provider,{value:t,children:e})]})}function h(){const e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},9982:(e,t,n)=>{"use strict";e.exports=n(4477)}},e=>{e.O(0,[1869],(()=>{return t=8600,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/docs/assets/js/runtime~main.ac134f18.js b/docs/assets/js/runtime~main.ac134f18.js deleted file mode 100644 index 941cca7e..00000000 --- a/docs/assets/js/runtime~main.ac134f18.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,c,t,r,f={},d={};function o(e){var a=d[e];if(void 0!==a)return a.exports;var c=d[e]={id:e,loaded:!1,exports:{}};return f[e].call(c.exports,c,c.exports,o),c.loaded=!0,c.exports}o.m=f,o.c=d,e=[],o.O=(a,c,t,r)=>{if(!c){var f=1/0;for(i=0;i<e.length;i++){c=e[i][0],t=e[i][1],r=e[i][2];for(var d=!0,n=0;n<c.length;n++)(!1&r||f>=r)&&Object.keys(o.O).every((e=>o.O[e](c[n])))?c.splice(n--,1):(d=!1,r<f&&(f=r));if(d){e.splice(i--,1);var b=t();void 0!==b&&(a=b)}}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]=[c,t,r]},o.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return o.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);o.r(r);var f={};a=a||[null,c({}),c([]),c(c)];for(var d=2&t&&e;"object"==typeof d&&!~a.indexOf(d);d=c(d))Object.getOwnPropertyNames(d).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,o.d(r,f),r},o.d=(e,a)=>{for(var c in a)o.o(a,c)&&!o.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((a,c)=>(o.f[c](e,a),a)),[])),o.u=e=>"assets/js/"+({690:"3e1c5046",940:"3980073a",1065:"44d1c015",1235:"a7456010",1405:"e66382f6",1606:"d152284c",1903:"acecf23e",1909:"f2c141e4",1915:"c4822c4f",1964:"4af50aac",1999:"f994c8da",2344:"4caa95bf",2634:"c4f5d8e4",2711:"9e4087bc",3249:"ccc49370",3322:"7fa80e1c",3645:"1a64de69",4134:"393be207",4212:"621db11d",4582:"14064408",4813:"6875c492",5425:"479eb034",5579:"6479fb86",5742:"aba21aa0",6054:"4137b431",6061:"1f391b9e",6062:"fa31f022",6100:"176d210f",6273:"09dd5be9",6969:"14eb3368",7098:"a7bd4aaa",7472:"814f3328",7643:"a6aa9e1f",7720:"fcf4f6ca",8209:"01a85c17",8261:"72dc5b25",8401:"17896441",8465:"8ac6191a",8588:"67d4782a",8933:"c7b64fcc",9048:"a94703ab",9158:"616111d3",9197:"2d865531",9473:"ac51638e",9596:"0fff8dc8",9647:"5e95c892",9858:"36994c47",9919:"0413d9af"}[e]||e)+"."+{690:"22a78085",940:"4ab85476",1065:"4db6c425",1235:"5f9bbb01",1405:"aaa6c9c6",1606:"8adb699d",1903:"4b2b5a9c",1909:"e3b70339",1915:"9fe3ec4e",1964:"a113ce2d",1999:"90063f83",2237:"bfceba09",2344:"2e5bda05",2634:"f5d4db47",2711:"b154716b",3249:"8f9e0351",3322:"b5f726bf",3645:"22893b6e",4134:"81b456e5",4212:"515621df",4582:"be0f96be",4813:"72d20027",5425:"0c88dc68",5579:"d4723af3",5742:"ed09cce9",6054:"2e5cd4ca",6061:"8e4379a0",6062:"c62034f4",6100:"47d21595",6273:"9cd209bb",6870:"6d10e1d8",6969:"e9006523",7098:"8da7b7a1",7472:"b45803b6",7518:"6ac3b679",7643:"a34fe105",7720:"d9bac5e5",8209:"5487421a",8261:"e57720a7",8401:"e023d99a",8465:"6f3973a2",8588:"09ac845b",8933:"9ff95135",9048:"50a268a2",9158:"9f2925b1",9197:"a5005531",9473:"cd23cca0",9596:"7a470540",9647:"a6c239e7",9858:"337a7516",9919:"cb9ba41f"}[e]+".js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},r="docs:",o.l=(e,a,c,f)=>{if(t[e])t[e].push(a);else{var d,n;if(void 0!==c)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var u=b[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==r+c){d=u;break}}d||(n=!0,(d=document.createElement("script")).charset="utf-8",d.timeout=120,o.nc&&d.setAttribute("nonce",o.nc),d.setAttribute("data-webpack",r+c),d.src=e),t[e]=[a];var l=(a,c)=>{d.onerror=d.onload=null,clearTimeout(s);var r=t[e];if(delete t[e],d.parentNode&&d.parentNode.removeChild(d),r&&r.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=l.bind(null,d.onerror),d.onload=l.bind(null,d.onload),n&&document.head.appendChild(d)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.p="/BharatMLStack/",o.gca=function(e){return e={14064408:"4582",17896441:"8401","3e1c5046":"690","3980073a":"940","44d1c015":"1065",a7456010:"1235",e66382f6:"1405",d152284c:"1606",acecf23e:"1903",f2c141e4:"1909",c4822c4f:"1915","4af50aac":"1964",f994c8da:"1999","4caa95bf":"2344",c4f5d8e4:"2634","9e4087bc":"2711",ccc49370:"3249","7fa80e1c":"3322","1a64de69":"3645","393be207":"4134","621db11d":"4212","6875c492":"4813","479eb034":"5425","6479fb86":"5579",aba21aa0:"5742","4137b431":"6054","1f391b9e":"6061",fa31f022:"6062","176d210f":"6100","09dd5be9":"6273","14eb3368":"6969",a7bd4aaa:"7098","814f3328":"7472",a6aa9e1f:"7643",fcf4f6ca:"7720","01a85c17":"8209","72dc5b25":"8261","8ac6191a":"8465","67d4782a":"8588",c7b64fcc:"8933",a94703ab:"9048","616111d3":"9158","2d865531":"9197",ac51638e:"9473","0fff8dc8":"9596","5e95c892":"9647","36994c47":"9858","0413d9af":"9919"}[e]||e,o.p+o.u(e)},(()=>{var e={5354:0,1869:0};o.f.j=(a,c)=>{var t=o.o(e,a)?e[a]:void 0;if(0!==t)if(t)c.push(t[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var r=new Promise(((c,r)=>t=e[a]=[c,r]));c.push(t[2]=r);var f=o.p+o.u(a),d=new Error;o.l(f,(c=>{if(o.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var r=c&&("load"===c.type?"missing":c.type),f=c&&c.target&&c.target.src;d.message="Loading chunk "+a+" failed.\n("+r+": "+f+")",d.name="ChunkLoadError",d.type=r,d.request=f,t[1](d)}}),"chunk-"+a,a)}},o.O.j=a=>0===e[a];var a=(a,c)=>{var t,r,f=c[0],d=c[1],n=c[2],b=0;if(f.some((a=>0!==e[a]))){for(t in d)o.o(d,t)&&(o.m[t]=d[t]);if(n)var i=n(o)}for(a&&a(c);b<f.length;b++)r=f[b],o.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return o.O(i)},c=self.webpackChunkdocs=self.webpackChunkdocs||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/docs/assets/js/runtime~main.d5e46064.js b/docs/assets/js/runtime~main.d5e46064.js new file mode 100644 index 00000000..6ac5687e --- /dev/null +++ b/docs/assets/js/runtime~main.d5e46064.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,c,f,d,t={},r={};function b(e){var a=r[e];if(void 0!==a)return a.exports;var c=r[e]={id:e,loaded:!1,exports:{}};return t[e].call(c.exports,c,c.exports,b),c.loaded=!0,c.exports}b.m=t,b.c=r,e=[],b.O=(a,c,f,d)=>{if(!c){var t=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],d=e[i][2];for(var r=!0,o=0;o<c.length;o++)(!1&d||t>=d)&&Object.keys(b.O).every(e=>b.O[e](c[o]))?c.splice(o--,1):(r=!1,d<t&&(t=d));if(r){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.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 d=Object.create(null);b.r(d);var t={};a=a||[null,c({}),c([]),c(c)];for(var r=2&f&&e;("object"==typeof r||"function"==typeof r)&&!~a.indexOf(r);r=c(r))Object.getOwnPropertyNames(r).forEach(a=>t[a]=()=>e[a]);return t.default=()=>e,b.d(d,t),d},b.d=(e,a)=>{for(var c in a)b.o(a,c)&&!b.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,c)=>(b.f[c](e,a),a),[])),b.u=e=>"assets/js/"+({690:"3e1c5046",770:"aaabe254",940:"3980073a",974:"3aeb33c7",1009:"50899a24",1065:"44d1c015",1235:"a7456010",1405:"e66382f6",1537:"8dd2df60",1606:"d152284c",1686:"08daf6b6",1903:"acecf23e",1909:"f2c141e4",1915:"c4822c4f",1964:"4af50aac",1999:"f994c8da",2117:"fccc4c42",2344:"4caa95bf",2379:"4df0e30b",2634:"c4f5d8e4",2711:"9e4087bc",2771:"e8202a51",2951:"9aed321e",3249:"ccc49370",3322:"7fa80e1c",3645:"1a64de69",4064:"99009a21",4134:"393be207",4212:"621db11d",4340:"79ae4ea7",4416:"93f344c7",4424:"252a9097",4582:"14064408",4771:"3216e812",4813:"6875c492",5425:"479eb034",5503:"428aafcc",5579:"6479fb86",5742:"aba21aa0",5801:"2c62ead1",6054:"4137b431",6061:"1f391b9e",6062:"fa31f022",6100:"176d210f",6273:"09dd5be9",6724:"a97f18d9",6969:"14eb3368",7048:"00b12b9c",7098:"a7bd4aaa",7472:"814f3328",7508:"0a89f5c9",7609:"adb039a4",7643:"a6aa9e1f",7720:"fcf4f6ca",7871:"be9e6e2d",8014:"9d13045e",8209:"01a85c17",8261:"72dc5b25",8315:"f9755c6e",8401:"17896441",8465:"8ac6191a",8588:"67d4782a",8933:"c7b64fcc",9048:"a94703ab",9158:"616111d3",9197:"2d865531",9226:"6bb91276",9473:"ac51638e",9596:"0fff8dc8",9647:"5e95c892",9824:"8ea48c46",9858:"36994c47",9919:"0413d9af",9955:"45a03d07"}[e]||e)+"."+{690:"22a78085",770:"ba3e9f5f",940:"43116f8b",974:"b4a8c40f",1009:"c0cfae29",1065:"4db6c425",1235:"5f9bbb01",1405:"ad26fd04",1537:"f10b075c",1606:"0800e671",1686:"852abb6b",1903:"4b2b5a9c",1909:"7dc49a6b",1915:"c80625fe",1964:"f9b29cbf",1999:"256af20d",2117:"4690f84a",2237:"bfceba09",2344:"ca3bb1d0",2379:"00b3a0ff",2634:"41d5b3c8",2711:"342bf9bc",2771:"49541ad2",2951:"0ede45c0",3249:"1c88001f",3322:"78f6a21e",3645:"844e372c",4064:"1a57fa22",4134:"6e979fd2",4212:"1a835b77",4340:"1416ba4f",4416:"7cebeb9e",4424:"3acfe41e",4582:"74c23df4",4771:"877aa30c",4813:"7e263e94",5425:"fc01692f",5503:"2c1db158",5579:"96631f8d",5742:"ed09cce9",5801:"fc5c1b17",6054:"c6fedbd3",6061:"4acd5995",6062:"968b3373",6100:"21c450d1",6273:"be7fd2aa",6724:"ce4ddba2",6870:"25f53758",6969:"398ac934",7048:"ea8fba0b",7098:"8da7b7a1",7472:"bfb123e8",7508:"190be82b",7518:"9525ffbe",7609:"c0c263a3",7643:"e531d6c8",7720:"d9bac5e5",7871:"944ea2f0",8014:"3f255bd8",8209:"9618aedf",8261:"20421ae4",8315:"8811662b",8401:"4ff7d852",8465:"6f3973a2",8588:"96733ef0",8933:"9ff95135",9048:"3a38a667",9158:"9f2925b1",9197:"3ec70534",9226:"d5be09e8",9473:"ef64a004",9596:"fcba975a",9647:"7a2663a1",9824:"e52cd527",9858:"337a7516",9919:"aecac3d5",9955:"6212d749"}[e]+".js",b.miniCssF=e=>{},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="docs:",b.l=(e,a,c,t)=>{if(f[e])f[e].push(a);else{var r,o;if(void 0!==c)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")==d+c){r=u;break}}r||(o=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,b.nc&&r.setAttribute("nonce",b.nc),r.setAttribute("data-webpack",d+c),r.src=e),f[e]=[a];var l=(a,c)=>{r.onerror=r.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],r.parentNode&&r.parentNode.removeChild(r),d&&d.forEach(e=>e(c)),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=l.bind(null,r.onerror),r.onload=l.bind(null,r.onload),o&&document.head.appendChild(r)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/BharatMLStack/",b.gca=function(e){return e={14064408:"4582",17896441:"8401","3e1c5046":"690",aaabe254:"770","3980073a":"940","3aeb33c7":"974","50899a24":"1009","44d1c015":"1065",a7456010:"1235",e66382f6:"1405","8dd2df60":"1537",d152284c:"1606","08daf6b6":"1686",acecf23e:"1903",f2c141e4:"1909",c4822c4f:"1915","4af50aac":"1964",f994c8da:"1999",fccc4c42:"2117","4caa95bf":"2344","4df0e30b":"2379",c4f5d8e4:"2634","9e4087bc":"2711",e8202a51:"2771","9aed321e":"2951",ccc49370:"3249","7fa80e1c":"3322","1a64de69":"3645","99009a21":"4064","393be207":"4134","621db11d":"4212","79ae4ea7":"4340","93f344c7":"4416","252a9097":"4424","3216e812":"4771","6875c492":"4813","479eb034":"5425","428aafcc":"5503","6479fb86":"5579",aba21aa0:"5742","2c62ead1":"5801","4137b431":"6054","1f391b9e":"6061",fa31f022:"6062","176d210f":"6100","09dd5be9":"6273",a97f18d9:"6724","14eb3368":"6969","00b12b9c":"7048",a7bd4aaa:"7098","814f3328":"7472","0a89f5c9":"7508",adb039a4:"7609",a6aa9e1f:"7643",fcf4f6ca:"7720",be9e6e2d:"7871","9d13045e":"8014","01a85c17":"8209","72dc5b25":"8261",f9755c6e:"8315","8ac6191a":"8465","67d4782a":"8588",c7b64fcc:"8933",a94703ab:"9048","616111d3":"9158","2d865531":"9197","6bb91276":"9226",ac51638e:"9473","0fff8dc8":"9596","5e95c892":"9647","8ea48c46":"9824","36994c47":"9858","0413d9af":"9919","45a03d07":"9955"}[e]||e,b.p+b.u(e)},(()=>{var e={5354:0,1869:0};b.f.j=(a,c)=>{var f=b.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise((c,d)=>f=e[a]=[c,d]);c.push(f[2]=d);var t=b.p+b.u(a),r=new Error;b.l(t,c=>{if(b.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),t=c&&c.target&&c.target.src;r.message="Loading chunk "+a+" failed.\n("+d+": "+t+")",r.name="ChunkLoadError",r.type=d,r.request=t,f[1](r)}},"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,t=c[0],r=c[1],o=c[2],n=0;if(t.some(a=>0!==e[a])){for(f in r)b.o(r,f)&&(b.m[f]=r[f]);if(o)var i=o(b)}for(a&&a(c);n<t.length;n++)d=t[n],b.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return b.O(i)},c=self.webpackChunkdocs=self.webpackChunkdocs||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/docs/blog/archive/index.html b/docs/blog/archive/index.html index a0076431..614e27f6 100644 --- a/docs/blog/archive/index.html +++ b/docs/blog/archive/index.html @@ -4,14 +4,14 @@ <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v3.8.1"> <title data-rh="true">Archive | BharatMLStack - - - + + + - + \ No newline at end of file diff --git a/docs/blog/atom.xml b/docs/blog/atom.xml index 84514334..321c11b1 100644 --- a/docs/blog/atom.xml +++ b/docs/blog/atom.xml @@ -2,18 +2,673 @@ https://meesho.github.io/BharatMLStack/blog BharatMLStack Blog - 2022-11-15T00:00:00.000Z + 2025-06-02T00:00:00.000Z https://github.com/jpmonette/feed BharatMLStack Blog https://meesho.github.io/BharatMLStack/img/favicon.ico + + <![CDATA[LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale]]> + https://meesho.github.io/BharatMLStack/blog/post-five + + 2025-06-02T00:00:00.000Z + + BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

]]>
+ + Jaya Kumar + https://github.com/jayakommuru + + + + + + + +
+ + <![CDATA[Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving]]> + https://meesho.github.io/BharatMLStack/blog/post-three + + 2025-03-29T00:00:00.000Z + + BharatMLStack

+

Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving

+

Serving large language models in production introduces new challenges across infrastructure, performance optimization, and operational lifecycle management. The LLM Inference Platform addresses these challenges by providing a unified system for deploying and managing open-source and fine-tuned LLMs at scale.

+

The platform implements a complete LLMOps lifecycle — from model registration and automated compilation to deployment, runtime optimization, and monitoring. Designed as a self-service environment, users can onboard models directly from open repositories such as Hugging Face or upload custom fine-tuned models, and deploy them using a single-click workflow with no manual infrastructure or configuration steps required.

+

In addition to fully automated deployment, the platform allows users to select and apply custom inference optimization techniques — such as quantization strategies, batching configurations, and runtime-specific performance enhancements — enabling teams to balance latency, throughput, and cost based on their use case. The goal is to reduce operational friction while enabling high-performance, production-grade LLM inference.

+

Why LLM Inference Is not just bigger ML model serving

+

Large language model (LLM) inference introduces a fundamentally different set of challenges compared to traditional machine learning inference. While classical ML models typically perform a single forward pass to produce a fixed prediction, LLMs operate as autoregressive systems, generating outputs token by token based on previously generated context. This difference dramatically changes how inference systems must be designed, optimized, and scaled.

+

Autoregressive Generation and Sequential Computation:

+

Unlike traditional models such as classifiers or recommenders — where inference cost is relatively constant — LLMs generate responses incrementally. Each new token depends on all previously generated tokens, making inference inherently sequential and dynamic. This means latency and compute requirements vary significantly depending on prompt length and output size, introducing complexity in scheduling and resource allocation. +Because tokens cannot be generated fully in parallel during decoding, GPUs may become underutilized without specialized batching and scheduling strategies. This has led to the development of dedicated LLM inference engines optimized for token-level execution.

+

Prefill and Decode Phases:

+

LLM inference typically consists of two distinct stages:

+
    +
  • Prefill phase — the model processes the input prompt and builds internal representations. This stage is compute-heavy and highly parallelizable.
  • +
  • Decode phase — the model generates tokens sequentially, predicting one token at a time using previously generated context.
  • +
+

The decode stage often becomes memory-bound rather than compute-bound, which creates new performance bottlenecks compared to traditional ML workloads.

+

Context Management and KV Caching:

+

Another fundamental difference lies in how LLMs maintain context. Transformer-based models rely on attention mechanisms that require access to past token representations. To avoid recomputing these representations repeatedly, inference engines use key-value (KV) caching, which stores intermediate activations from previous tokens. +KV caching significantly improves performance by eliminating redundant computation, but it introduces new challenges:

+
    +
  • Memory consumption grows with sequence length and batch size
  • +
  • GPU memory becomes a critical bottleneck
  • +
  • Efficient memory management becomes essential for scaling concurrent requests
  • +
+

This tradeoff between compute efficiency and memory usage is unique to LLM inference workloads.

+

Dynamic and Irregular Workloads:

+

Traditional ML inference typically operates on fixed-size inputs with predictable latency. In contrast, LLM requests vary widely in prompt length, output length, and runtime behavior. As a result:

+
    +
  • Batch sizes must be dynamic rather than static
  • +
  • Requests may enter and leave batches asynchronously
  • +
  • Scheduling systems must continuously rebalance workloads to maximize GPU utilization
  • +
+

These characteristics require specialized serving architectures that differ significantly from standard ML serving pipelines.

+

Streaming and User Experience Constraints:

+

Another distinguishing factor is the expectation of real-time streaming responses. Instead of returning a single output, LLM systems often stream tokens to users as they are generated. +Because of these differences — sequential generation, growing memory requirements, dynamic workloads, and streaming constraints — LLM inference cannot be treated as a simple extension of existing ML serving systems. Production platforms must incorporate specialized runtime engines, advanced optimization techniques, and observability tailored specifically to LLM workloads.

+

LLMOps: High-Level Architecture

+

LLM Architecture

+

The LLM Inference Framework is designed as a fully automated, end-to-end system for deploying and operating open-source and fine-tuned large language models at scale. The architecture abstracts the complexity of model optimization, hardware selection, deployment, and runtime management into a unified workflow that enables users to move from raw model weights to production-ready inference endpoints with minimal manual intervention.

+

Our LLM Inference Framework is architected not just as a serving engine, but as a complete lifecycle management system. As illustrated in the high-level design below, the platform automates the journey of a model through seven distinct stages, ensuring reproducibility, performance, and scalability.

+
    +
  1. +

    Onboarding & Registration (The Source of Truth)

    +

    The lifecycle begins with the Data Scientist or engineer.

    +
      +
    • Model Ingestion: Users onboard models—whether open-source (Hugging Face, NeMo) or internally fine-tuned—via the Truffle Box SDK/UI.
    • +
    • LLM + Prompt Registry: Unlike traditional systems that only track model weights, our registry is a unified control plane. It stores both the Model Artifacts and the Prompt Templates. This allows Data Scientists to register and version-control prompts (e.g., "customer_support_v2") independently of the application code.
    • +
    +
  2. +
  3. +

    The "Black Box" Build Engine

    +

    Once a model is registered, the Automated LLM Compiler + Quantizer Module kicks off a background job on ephemeral GPU resources.

    +
      +
    • Transformation: The raw model is converted into a TRT-LLM Checkpoint.
    • +
    • Quantization: The system automatically applies quantization algorithms (like INT4 AWQ or FP8) to reduce memory footprint.
    • +
    • Engine Building: Finally, it compiles a highly optimized TRT Engine specifically tuned for the target hardware.
    • +
    +
  4. +
  5. +

    Intelligent Profiling & Validation

    +

    Before deployment, the new engine passes through the Hardware & Inference Runtime Profiler.

    +
      +
    • Benchmarking: This module empirically tests the engine against various hardware configurations (L4 vs. A100) and runtimes (TRT-LLM vs. vLLM).
    • +
    • Optimization: It recommends the optimal configuration that meets latency SLAs (Time-To-First-Token) while minimizing cost.
    • +
    +
  6. +
  7. +

    Smart Artifact Generation & Distribution

    +

    To solve the Kubernetes "Cold Start" problem, the LLM Serving Artifacts Generation module packages the model using a bifurcated strategy:

    +
      +
    • Standard Models: Artifacts are uploaded to Cloud Storage (GCS) and downloaded by pods at startup.
    • +
    • Very Large Models: For massive models (>8GB) where network downloads are too slow, the system pre-caches the model onto Secondary Boot Disks. These disks are attached directly to new GPU nodes during autoscaling, eliminating download wait times.
    • +
    +
  8. +
  9. +

    Image Streaming & Deployment

    +

    Simultaneously, the inference runtime container images are pulled from the Artifact Registry.

    +
      +
    • Image Streaming: We utilize container image streaming to allow pods to start initializing while the massive Triton/Dynamo container layers are still downloading, further shaving seconds off the startup time. link
    • +
    +
  10. +
  11. +

    The Inference Runtime (Kubernetes)

    +

    The workload lands on Kubernetes with Autoscaling.

    +
      +
    • Dynamic Backends: Depending on the profile generated in Stage 3, the pod initializes either TensorRT-LLM (for throughput) or vLLM (for flexibility), or spins up a Dynamo worker for distributed inference.
    • +
    • Data Loading: The pod either downloads the model from Cloud Storage or mounts the pre-warmed Secondary Boot Disk ("Pull from Disk").
    • +
    +
  12. +
  13. +

    Client Interaction & Observability

    +

    Finally, the LLM Inference Client executes the request.

    +
      +
    • Prompt Injection: The client pulls the specific prompt template ID from the Registry, ensuring the exact versioned instructions are used.
    • +
    • Streaming Response: The request is sent via gRPC, and tokens are streamed back to the user in real-time.
    • +
    +
  14. +
  15. +

    Observability: Monitoring the Pulse of GenAI

    +

    In traditional microservices, success is measured by CPU utilization and request latency (p99). For Large Language Models, these metrics are insufficient. A user doesn't care if the GPU is at 80% utilization; they care about how fast the first word appears and how smoothly the rest of the sentence follows.

    +

    To capture the true user experience, our platform instrumentation focuses on three critical LLM-specific metrics:

    +
      +
    1. +

      Time to First Token (TTFT)

      +
        +
      • Definition: TTFT measures the time elapsed from the moment a request is received until the very first token is generated and streamed back to the user.
      • +
      • Why it matters: This represents the "Prefill Phase" latency—the time the model takes to process the input prompt and load weights. A high TTFT makes the application feel unresponsive or "hung."
      • +
      • Optimization: We closely monitor TTFT to ensure our Prefix Caching is effective (aiming for high cache hitrates), which drastically lowers this metric by skipping redundant prompt processing.
      • +
      +
    2. +
    3. +

      Inter-Token Latency (ITL)

      +
        +
      • Definition: ITL measures the average time interval between the generation of consecutive tokens during the "Decode Phase".
      • +
      • Why it matters: This defines the "perceived speed" of reading. Even if the first token is fast (low TTFT), high ITL makes the text generation look "jerky" or slow to the user.
      • +
      • Benchmarks: In our testing with Llama 3.1, we track p99 ITL to ensure it stays below human reading speeds to maintain a natural conversational flow.
      • +
      +
    4. +
    5. +

      Token Throughput vs. Request Throughput

      +
        +
      • We distinguish between two types of throughput to balance system efficiency with user load:
      • +
      • Token Throughput (tokens/sec): The total number of tokens generated across all concurrent requests. This measures the raw compute efficiency of the GPU and the effectiveness of batching.
      • +
      • Request Throughput (req/sec): The number of distinct user queries served per second. We use this to determine autoscaling thresholds, ensuring we scale out before the queue depth impacts ITL.
      • +
      +
    6. +
    7. +

      The Monitoring Stack

      +
        +
      • Real-time Dashboards: We utilize Grafana to visualize these streaming metrics in real-time, allowing on-call engineers to spot "slow generation" incidents that generic "500 error" alerts would miss.
      • +
      • Request Tracing: Since Triton Inference Server does not log request payloads by default, we integrate a Helix Client to asynchronously publish request logs to Log Tables. This allows us to trace a specific "slow" request back to its prompt to understand if a complex input caused the latency spike.
      • +
      +
    8. +
    +
  16. +
+

Supported Inference backends (TensorRT LLM, Dynamo & vLLM)

+

Tailored for the Use Case: We do not believe in a "one-size-fits-all" approach to inference. Different use cases—whether a real-time voice bot requiring ultra-lowsub-second latency or a massive reasoning task requiring huge context windows—demand different runtime characteristics. Our platform is designed to be runtime-agnostic, allowing us to automatically select and tailor the best engine based on the specific requirements of the application:

+
    +
  1. +

    TensorRT-LLM: The High-Performance Standard

    +

    Suitable for: High-throughput production workloads where latency is critical (e.g., customer support chat, real-time voice bots).

    +

    TensorRT-LLM serves as our default backend for these scenarios. Our internal benchmarks on Llama 3.1 and 3.2 models demonstrated that a tuned TensorRT-LLM engine significantly outperforms standard runtimes, especially when utilizing INT4 AWQ and FP8 quantization .

    +

    Key optimizations we tailor for these high-load cases include:

    +
      +
    • Optimized execution via TensorRT engine compilation
    • +
    • Quantization-aware execution for reduced memory usage and improved throughput
    • +
    • Inflight Batching: Allowing requests to be processed continuously without waiting for the entire batch to finish, drastically improving GPU utilization .
    • +
    • Custom Plugins: Enabling specific NVIDIA plugins like the GEMM plugin and GPT Attention plugin to accelerate matrix multiplications and attention mechanisms .
    • +
    +
  2. +
  3. +

    Dynamo: Distributed Inference for Reasoning Models

    +

    Suitable for: Very large "reasoning" models (70B+) or scenarios requiring massive context windows where a single GPU's memory is insufficient.

    +

    For these memory-bound tasks, we utilize Dynamo, a low-latency distributed inference framework . Unlike monolithic servers, Dynamo disaggregates the inference process to scale resources horizontally:

    +
      +
    • KV Aware Routing: A specialized router directs requests to workers that already hold the relevant Key-Value (KV) cache, minimizing redundant computation .
    • +
    • Prefill vs. Decode Split: The workload is divided into Prefill Workers (processing the prompt) and Decode Workers (generating tokens), allowing us to scale the compute-heavy "reading" phase independently from the memory-heavy "writing" phase .
    • +
    • Distributed execution across multiple GPU resources
    • +
    +
  4. +
  5. +

    vLLM: The Flexible Baseline

    +

    Suitable for: Rapid prototyping, testing new model architectures, or low-traffic internal tools where ease of deployment outweighs raw throughput.

    +

    While TensorRT-LLM is optimized for maximum speed, vLLM provides a robust and flexible baseline .

    +
      +
    • High throughput through dynamic batching and efficient memory utilization
    • +
    • Paged KV cache management for handling long contexts and concurrent requests
    • +
    • Strong support for open-source model ecosystems
    • +
    • Rapid Adoption: It allows us to onboard new model architectures immediately without waiting for a custom TensorRT build.
    • +
    • Benchmarking Insight: In our internal tests, vLLM provided a strong baseline but often lacked the specific max-token optimizations present in our custom TRT engines . We use it strategically for initial testing before committing to a full TensorRT optimization pipeline.
    • +
    +
  6. +
+

Conclusion

+

Large language model inference introduces a fundamentally new class of infrastructure challenges—where performance is governed not just by raw compute, but by memory efficiency, intelligent scheduling, runtime specialization, and lifecycle automation. Unlike traditional ML serving, LLM inference requires systems that understand token-level execution, manage rapidly growing context state, and continuously balance latency, throughput, and cost under highly dynamic workloads.

+

The LLM Inference Framework addresses these challenges by transforming inference into a fully automated, reproducible lifecycle—from model onboarding and compilation to deployment, optimization, and observability. By integrating automated quantization and engine compilation, intelligent runtime selection, cold-start mitigation strategies, and LLM-specific observability metrics such as Time-to-First-Token and Inter-Token Latency, the platform ensures both high performance and operational simplicity.

+

Equally important, the framework is designed with flexibility and future evolution in mind. Its runtime-agnostic architecture enables seamless adoption of emerging inference engines, hardware accelerators, and optimization techniques without requiring platform redesign. This ensures that teams can continuously leverage advancements in the rapidly evolving LLM ecosystem while maintaining consistent operational workflows.

+

Ultimately, the goal of the platform is to make production-scale LLM deployment as seamless and reliable as traditional software deployment—allowing teams to focus on building intelligent applications rather than managing infrastructure complexity. By combining lifecycle automation, runtime optimization, and deep observability, the LLM Inference Framework provides a scalable foundation for delivering fast, cost-efficient, and production-ready LLM experiences.

+

Future Explorations

+

While we have achieved significant milestones in latency and throughput, the landscape of GenAI is evolving rapidly. Our roadmap focuses on increasing flexibility, reducing costs, and enhancing reliability for enterprise-grade workloads. Here is what we are building next:

+
    +
  • TPU Support: To diversify our hardware supply chain and further optimize cost-per-token, we are evaluating Google Cloud TPUs to bake it into our platform. By leveraging the JAX and PyTorch/XLA ecosystems, we aim to unlock the massive throughput potential of TPU v5e chips, particularly for our open-source Llama models. This will allow the hardware profiler to dynamically choose between NVIDIA GPUs and Google TPUs based on real-time availability and price-performance metrics.
  • +
  • Multi-LoRA Serving (Serverless Experience): Currently, deploying a fine-tuned model requires a dedicated GPU. We are building support for Multi-LoRA serving, which will allow us to serve hundreds of unique, fine-tuned adapters on top of a single frozen base model. This will drastically reduce costs for multi-tenant applications, enabling a "serverless" experience where specific fine-tunes are hot-swapped instantly per request.
  • +
  • Spot Instance Orchestration: To further optimize cloud costs, we are developing fault-tolerant mechanisms to run inference workloads on Spot Instances. By implementing aggressive checkpointing and seamless request draining, we aim to leverage cheaper, preemptible compute capacity without interrupting the user's streaming experience.
  • +
  • Semantic Caching Layer: We plan to move beyond standard Prefix Caching to implement Semantic Caching. By using a vector database to fetch responses for semantically similar queries (e.g., "How do I reset my password?" vs. "Password reset steps"), we can bypass the GPU entirely for repetitive queries, reducing latency to near-zero.
  • +
  • Context-Aware Autoscaling: Standard CPU/GPU utilization metrics are often insufficient signals for scaling LLMs. We are working on KV-cache pressure metrics for autoscaling. This ensures that we scale out before the memory fills up, preventing eviction-based slowdowns during traffic spikes.
  • +
  • Online Evaluation & Guardrails: We are integrating a lightweight "Trust Layer" into the proxy. This will allow for low-latency input/output filtering (Guardrails) and asynchronous "LLM-as-a-Judge" evaluation pipelines to monitor response quality in production, not just system health.
  • +
]]>
+ + Jaya Kumar + https://github.com/jayakommuru + + + + + + + +
+ + <![CDATA[Cracking the Code: Scaling Model Inference & Real-Time Embedding Search]]> + https://meesho.github.io/BharatMLStack/blog/post-three + + 2024-05-21T00:00:00.000Z + + BharatMLStack

+

Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving

+

Serving large language models in production introduces new challenges across infrastructure, performance optimization, and operational lifecycle management. The LLM Inference Platform addresses these challenges by providing a unified system for deploying and managing open-source and fine-tuned LLMs at scale.

+

The platform implements a complete LLMOps lifecycle — from model registration and automated compilation to deployment, runtime optimization, and monitoring. Designed as a self-service environment, users can onboard models directly from open repositories such as Hugging Face or upload custom fine-tuned models, and deploy them using a single-click workflow with no manual infrastructure or configuration steps required.

+

In addition to fully automated deployment, the platform allows users to select and apply custom inference optimization techniques — such as quantization strategies, batching configurations, and runtime-specific performance enhancements — enabling teams to balance latency, throughput, and cost based on their use case. The goal is to reduce operational friction while enabling high-performance, production-grade LLM inference.

+

Why LLM Inference Is not just bigger ML model serving

+

Large language model (LLM) inference introduces a fundamentally different set of challenges compared to traditional machine learning inference. While classical ML models typically perform a single forward pass to produce a fixed prediction, LLMs operate as autoregressive systems, generating outputs token by token based on previously generated context. This difference dramatically changes how inference systems must be designed, optimized, and scaled.

+

Autoregressive Generation and Sequential Computation:

+

Unlike traditional models such as classifiers or recommenders — where inference cost is relatively constant — LLMs generate responses incrementally. Each new token depends on all previously generated tokens, making inference inherently sequential and dynamic. This means latency and compute requirements vary significantly depending on prompt length and output size, introducing complexity in scheduling and resource allocation. +Because tokens cannot be generated fully in parallel during decoding, GPUs may become underutilized without specialized batching and scheduling strategies. This has led to the development of dedicated LLM inference engines optimized for token-level execution.

+

Prefill and Decode Phases:

+

LLM inference typically consists of two distinct stages:

+
    +
  • Prefill phase — the model processes the input prompt and builds internal representations. This stage is compute-heavy and highly parallelizable.
  • +
  • Decode phase — the model generates tokens sequentially, predicting one token at a time using previously generated context.
  • +
+

The decode stage often becomes memory-bound rather than compute-bound, which creates new performance bottlenecks compared to traditional ML workloads.

+

Context Management and KV Caching:

+

Another fundamental difference lies in how LLMs maintain context. Transformer-based models rely on attention mechanisms that require access to past token representations. To avoid recomputing these representations repeatedly, inference engines use key-value (KV) caching, which stores intermediate activations from previous tokens. +KV caching significantly improves performance by eliminating redundant computation, but it introduces new challenges:

+
    +
  • Memory consumption grows with sequence length and batch size
  • +
  • GPU memory becomes a critical bottleneck
  • +
  • Efficient memory management becomes essential for scaling concurrent requests
  • +
+

This tradeoff between compute efficiency and memory usage is unique to LLM inference workloads.

+

Dynamic and Irregular Workloads:

+

Traditional ML inference typically operates on fixed-size inputs with predictable latency. In contrast, LLM requests vary widely in prompt length, output length, and runtime behavior. As a result:

+
    +
  • Batch sizes must be dynamic rather than static
  • +
  • Requests may enter and leave batches asynchronously
  • +
  • Scheduling systems must continuously rebalance workloads to maximize GPU utilization
  • +
+

These characteristics require specialized serving architectures that differ significantly from standard ML serving pipelines.

+

Streaming and User Experience Constraints:

+

Another distinguishing factor is the expectation of real-time streaming responses. Instead of returning a single output, LLM systems often stream tokens to users as they are generated. +Because of these differences — sequential generation, growing memory requirements, dynamic workloads, and streaming constraints — LLM inference cannot be treated as a simple extension of existing ML serving systems. Production platforms must incorporate specialized runtime engines, advanced optimization techniques, and observability tailored specifically to LLM workloads.

+

LLMOps: High-Level Architecture

+

LLM Architecture

+

The LLM Inference Framework is designed as a fully automated, end-to-end system for deploying and operating open-source and fine-tuned large language models at scale. The architecture abstracts the complexity of model optimization, hardware selection, deployment, and runtime management into a unified workflow that enables users to move from raw model weights to production-ready inference endpoints with minimal manual intervention.

+

Our LLM Inference Framework is architected not just as a serving engine, but as a complete lifecycle management system. As illustrated in the high-level design below, the platform automates the journey of a model through seven distinct stages, ensuring reproducibility, performance, and scalability.

+
    +
  1. +

    Onboarding & Registration (The Source of Truth)

    +

    The lifecycle begins with the Data Scientist or engineer.

    +
      +
    • Model Ingestion: Users onboard models—whether open-source (Hugging Face, NeMo) or internally fine-tuned—via the Truffle Box SDK/UI.
    • +
    • LLM + Prompt Registry: Unlike traditional systems that only track model weights, our registry is a unified control plane. It stores both the Model Artifacts and the Prompt Templates. This allows Data Scientists to register and version-control prompts (e.g., "customer_support_v2") independently of the application code.
    • +
    +
  2. +
  3. +

    The "Black Box" Build Engine

    +

    Once a model is registered, the Automated LLM Compiler + Quantizer Module kicks off a background job on ephemeral GPU resources.

    +
      +
    • Transformation: The raw model is converted into a TRT-LLM Checkpoint.
    • +
    • Quantization: The system automatically applies quantization algorithms (like INT4 AWQ or FP8) to reduce memory footprint.
    • +
    • Engine Building: Finally, it compiles a highly optimized TRT Engine specifically tuned for the target hardware.
    • +
    +
  4. +
  5. +

    Intelligent Profiling & Validation

    +

    Before deployment, the new engine passes through the Hardware & Inference Runtime Profiler.

    +
      +
    • Benchmarking: This module empirically tests the engine against various hardware configurations (L4 vs. A100) and runtimes (TRT-LLM vs. vLLM).
    • +
    • Optimization: It recommends the optimal configuration that meets latency SLAs (Time-To-First-Token) while minimizing cost.
    • +
    +
  6. +
  7. +

    Smart Artifact Generation & Distribution

    +

    To solve the Kubernetes "Cold Start" problem, the LLM Serving Artifacts Generation module packages the model using a bifurcated strategy:

    +
      +
    • Standard Models: Artifacts are uploaded to Cloud Storage (GCS) and downloaded by pods at startup.
    • +
    • Very Large Models: For massive models (>8GB) where network downloads are too slow, the system pre-caches the model onto Secondary Boot Disks. These disks are attached directly to new GPU nodes during autoscaling, eliminating download wait times.
    • +
    +
  8. +
  9. +

    Image Streaming & Deployment

    +

    Simultaneously, the inference runtime container images are pulled from the Artifact Registry.

    +
      +
    • Image Streaming: We utilize container image streaming to allow pods to start initializing while the massive Triton/Dynamo container layers are still downloading, further shaving seconds off the startup time. link
    • +
    +
  10. +
  11. +

    The Inference Runtime (Kubernetes)

    +

    The workload lands on Kubernetes with Autoscaling.

    +
      +
    • Dynamic Backends: Depending on the profile generated in Stage 3, the pod initializes either TensorRT-LLM (for throughput) or vLLM (for flexibility), or spins up a Dynamo worker for distributed inference.
    • +
    • Data Loading: The pod either downloads the model from Cloud Storage or mounts the pre-warmed Secondary Boot Disk ("Pull from Disk").
    • +
    +
  12. +
  13. +

    Client Interaction & Observability

    +

    Finally, the LLM Inference Client executes the request.

    +
      +
    • Prompt Injection: The client pulls the specific prompt template ID from the Registry, ensuring the exact versioned instructions are used.
    • +
    • Streaming Response: The request is sent via gRPC, and tokens are streamed back to the user in real-time.
    • +
    +
  14. +
  15. +

    Observability: Monitoring the Pulse of GenAI

    +

    In traditional microservices, success is measured by CPU utilization and request latency (p99). For Large Language Models, these metrics are insufficient. A user doesn't care if the GPU is at 80% utilization; they care about how fast the first word appears and how smoothly the rest of the sentence follows.

    +

    To capture the true user experience, our platform instrumentation focuses on three critical LLM-specific metrics:

    +
      +
    1. +

      Time to First Token (TTFT)

      +
        +
      • Definition: TTFT measures the time elapsed from the moment a request is received until the very first token is generated and streamed back to the user.
      • +
      • Why it matters: This represents the "Prefill Phase" latency—the time the model takes to process the input prompt and load weights. A high TTFT makes the application feel unresponsive or "hung."
      • +
      • Optimization: We closely monitor TTFT to ensure our Prefix Caching is effective (aiming for high cache hitrates), which drastically lowers this metric by skipping redundant prompt processing.
      • +
      +
    2. +
    3. +

      Inter-Token Latency (ITL)

      +
        +
      • Definition: ITL measures the average time interval between the generation of consecutive tokens during the "Decode Phase".
      • +
      • Why it matters: This defines the "perceived speed" of reading. Even if the first token is fast (low TTFT), high ITL makes the text generation look "jerky" or slow to the user.
      • +
      • Benchmarks: In our testing with Llama 3.1, we track p99 ITL to ensure it stays below human reading speeds to maintain a natural conversational flow.
      • +
      +
    4. +
    5. +

      Token Throughput vs. Request Throughput

      +
        +
      • We distinguish between two types of throughput to balance system efficiency with user load:
      • +
      • Token Throughput (tokens/sec): The total number of tokens generated across all concurrent requests. This measures the raw compute efficiency of the GPU and the effectiveness of batching.
      • +
      • Request Throughput (req/sec): The number of distinct user queries served per second. We use this to determine autoscaling thresholds, ensuring we scale out before the queue depth impacts ITL.
      • +
      +
    6. +
    7. +

      The Monitoring Stack

      +
        +
      • Real-time Dashboards: We utilize Grafana to visualize these streaming metrics in real-time, allowing on-call engineers to spot "slow generation" incidents that generic "500 error" alerts would miss.
      • +
      • Request Tracing: Since Triton Inference Server does not log request payloads by default, we integrate a Helix Client to asynchronously publish request logs to Log Tables. This allows us to trace a specific "slow" request back to its prompt to understand if a complex input caused the latency spike.
      • +
      +
    8. +
    +
  16. +
+

Supported Inference backends (TensorRT LLM, Dynamo & vLLM)

+

Tailored for the Use Case: We do not believe in a "one-size-fits-all" approach to inference. Different use cases—whether a real-time voice bot requiring ultra-lowsub-second latency or a massive reasoning task requiring huge context windows—demand different runtime characteristics. Our platform is designed to be runtime-agnostic, allowing us to automatically select and tailor the best engine based on the specific requirements of the application:

+
    +
  1. +

    TensorRT-LLM: The High-Performance Standard

    +

    Suitable for: High-throughput production workloads where latency is critical (e.g., customer support chat, real-time voice bots).

    +

    TensorRT-LLM serves as our default backend for these scenarios. Our internal benchmarks on Llama 3.1 and 3.2 models demonstrated that a tuned TensorRT-LLM engine significantly outperforms standard runtimes, especially when utilizing INT4 AWQ and FP8 quantization .

    +

    Key optimizations we tailor for these high-load cases include:

    +
      +
    • Optimized execution via TensorRT engine compilation
    • +
    • Quantization-aware execution for reduced memory usage and improved throughput
    • +
    • Inflight Batching: Allowing requests to be processed continuously without waiting for the entire batch to finish, drastically improving GPU utilization .
    • +
    • Custom Plugins: Enabling specific NVIDIA plugins like the GEMM plugin and GPT Attention plugin to accelerate matrix multiplications and attention mechanisms .
    • +
    +
  2. +
  3. +

    Dynamo: Distributed Inference for Reasoning Models

    +

    Suitable for: Very large "reasoning" models (70B+) or scenarios requiring massive context windows where a single GPU's memory is insufficient.

    +

    For these memory-bound tasks, we utilize Dynamo, a low-latency distributed inference framework . Unlike monolithic servers, Dynamo disaggregates the inference process to scale resources horizontally:

    +
      +
    • KV Aware Routing: A specialized router directs requests to workers that already hold the relevant Key-Value (KV) cache, minimizing redundant computation .
    • +
    • Prefill vs. Decode Split: The workload is divided into Prefill Workers (processing the prompt) and Decode Workers (generating tokens), allowing us to scale the compute-heavy "reading" phase independently from the memory-heavy "writing" phase .
    • +
    • Distributed execution across multiple GPU resources
    • +
    +
  4. +
  5. +

    vLLM: The Flexible Baseline

    +

    Suitable for: Rapid prototyping, testing new model architectures, or low-traffic internal tools where ease of deployment outweighs raw throughput.

    +

    While TensorRT-LLM is optimized for maximum speed, vLLM provides a robust and flexible baseline .

    +
      +
    • High throughput through dynamic batching and efficient memory utilization
    • +
    • Paged KV cache management for handling long contexts and concurrent requests
    • +
    • Strong support for open-source model ecosystems
    • +
    • Rapid Adoption: It allows us to onboard new model architectures immediately without waiting for a custom TensorRT build.
    • +
    • Benchmarking Insight: In our internal tests, vLLM provided a strong baseline but often lacked the specific max-token optimizations present in our custom TRT engines . We use it strategically for initial testing before committing to a full TensorRT optimization pipeline.
    • +
    +
  6. +
+

Conclusion

+

Large language model inference introduces a fundamentally new class of infrastructure challenges—where performance is governed not just by raw compute, but by memory efficiency, intelligent scheduling, runtime specialization, and lifecycle automation. Unlike traditional ML serving, LLM inference requires systems that understand token-level execution, manage rapidly growing context state, and continuously balance latency, throughput, and cost under highly dynamic workloads.

+

The LLM Inference Framework addresses these challenges by transforming inference into a fully automated, reproducible lifecycle—from model onboarding and compilation to deployment, optimization, and observability. By integrating automated quantization and engine compilation, intelligent runtime selection, cold-start mitigation strategies, and LLM-specific observability metrics such as Time-to-First-Token and Inter-Token Latency, the platform ensures both high performance and operational simplicity.

+

Equally important, the framework is designed with flexibility and future evolution in mind. Its runtime-agnostic architecture enables seamless adoption of emerging inference engines, hardware accelerators, and optimization techniques without requiring platform redesign. This ensures that teams can continuously leverage advancements in the rapidly evolving LLM ecosystem while maintaining consistent operational workflows.

+

Ultimately, the goal of the platform is to make production-scale LLM deployment as seamless and reliable as traditional software deployment—allowing teams to focus on building intelligent applications rather than managing infrastructure complexity. By combining lifecycle automation, runtime optimization, and deep observability, the LLM Inference Framework provides a scalable foundation for delivering fast, cost-efficient, and production-ready LLM experiences.

+

Future Explorations

+

While we have achieved significant milestones in latency and throughput, the landscape of GenAI is evolving rapidly. Our roadmap focuses on increasing flexibility, reducing costs, and enhancing reliability for enterprise-grade workloads. Here is what we are building next:

+
    +
  • TPU Support: To diversify our hardware supply chain and further optimize cost-per-token, we are evaluating Google Cloud TPUs to bake it into our platform. By leveraging the JAX and PyTorch/XLA ecosystems, we aim to unlock the massive throughput potential of TPU v5e chips, particularly for our open-source Llama models. This will allow the hardware profiler to dynamically choose between NVIDIA GPUs and Google TPUs based on real-time availability and price-performance metrics.
  • +
  • Multi-LoRA Serving (Serverless Experience): Currently, deploying a fine-tuned model requires a dedicated GPU. We are building support for Multi-LoRA serving, which will allow us to serve hundreds of unique, fine-tuned adapters on top of a single frozen base model. This will drastically reduce costs for multi-tenant applications, enabling a "serverless" experience where specific fine-tunes are hot-swapped instantly per request.
  • +
  • Spot Instance Orchestration: To further optimize cloud costs, we are developing fault-tolerant mechanisms to run inference workloads on Spot Instances. By implementing aggressive checkpointing and seamless request draining, we aim to leverage cheaper, preemptible compute capacity without interrupting the user's streaming experience.
  • +
  • Semantic Caching Layer: We plan to move beyond standard Prefix Caching to implement Semantic Caching. By using a vector database to fetch responses for semantically similar queries (e.g., "How do I reset my password?" vs. "Password reset steps"), we can bypass the GPU entirely for repetitive queries, reducing latency to near-zero.
  • +
  • Context-Aware Autoscaling: Standard CPU/GPU utilization metrics are often insufficient signals for scaling LLMs. We are working on KV-cache pressure metrics for autoscaling. This ensures that we scale out before the memory fills up, preventing eviction-based slowdowns during traffic spikes.
  • +
  • Online Evaluation & Guardrails: We are integrating a lightweight "Trust Layer" into the proxy. This will allow for low-latency input/output filtering (Guardrails) and asynchronous "LLM-as-a-Judge" evaluation pipelines to monitor response quality in production, not just system health.
  • +
]]>
+ + Aditya Kumar + https://github.com/Adit2607 + + + Jaya Kumar + https://github.com/jayakommuru + + + Adarsha Das + https://github.com/a0d00kc + + + + + + +
+ + <![CDATA[Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)]]> + https://meesho.github.io/BharatMLStack/blog/post-two + + 2023-04-10T00:00:00.000Z + + BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

]]>
+ + Bhawani Singh + https://github.com/singh-bhawani + + + Jigar Dave + https://github.com/jigarpatel26 + + + Adarsha Das + https://github.com/a0d00kc + + + + + + +
<![CDATA[Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)]]> https://meesho.github.io/BharatMLStack/blog/post-one 2022-11-15T00:00:00.000Z - BharatMLStack

+ BharatMLStack

The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform

It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home:

"Why are we still crunching data for Monthly Active Users (MAU) when the next day it’s all about Daily Active Users (DAU)?"

diff --git a/docs/blog/authors/index.html b/docs/blog/authors/index.html index af01797d..441c4c45 100644 --- a/docs/blog/authors/index.html +++ b/docs/blog/authors/index.html @@ -4,14 +4,14 @@ Authors | BharatMLStack - - - + + + -

Authors

+ \ No newline at end of file diff --git a/docs/blog/index.html b/docs/blog/index.html index b033836d..6bfb6e82 100644 --- a/docs/blog/index.html +++ b/docs/blog/index.html @@ -3,16 +3,359 @@ -Blog | BharatMLStack - - - +Blog | BharatMLStack + + + -

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
SDE-III @ Meesho
Bhawani Singh
SDE-IV @ Meesho
Jigar Dave
SDE-IV @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

· 5 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

· 7 min read
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
Lead Software Engineer @ Meesho
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho

BharatMLStack

The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform

It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home:

"Why are we still crunching data for Monthly Active Users (MAU) when the next day it’s all about Daily Active Users (DAU)?"

@@ -204,6 +547,6 @@

+

This foundational work laid the path for a reliable and scalable real-time feature serving layer.

\ No newline at end of file diff --git a/docs/blog/post-five/index.html b/docs/blog/post-five/index.html new file mode 100644 index 00000000..01dc8558 --- /dev/null +++ b/docs/blog/post-five/index.html @@ -0,0 +1,81 @@ + + + + + +LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale | BharatMLStack + + + + + + + + +

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

· 5 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

+ + \ No newline at end of file diff --git a/docs/blog/post-one/index.html b/docs/blog/post-one/index.html index c202721c..2f484bd6 100644 --- a/docs/blog/post-one/index.html +++ b/docs/blog/post-one/index.html @@ -3,16 +3,16 @@ -Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1) | BharatMLStack - - - +Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1) | BharatMLStack + + + -

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
SDE-III @ Meesho
Bhawani Singh
SDE-IV @ Meesho
Jigar Dave
SDE-IV @ Meesho

BharatMLStack

+

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
Lead Software Engineer @ Meesho
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho

BharatMLStack

The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform

It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home:

"Why are we still crunching data for Monthly Active Users (MAU) when the next day it’s all about Daily Active Users (DAU)?"

@@ -204,6 +204,6 @@

+

This foundational work laid the path for a reliable and scalable real-time feature serving layer.

\ No newline at end of file diff --git a/docs/blog/post-three/index.html b/docs/blog/post-three/index.html new file mode 100644 index 00000000..a160d2ad --- /dev/null +++ b/docs/blog/post-three/index.html @@ -0,0 +1,206 @@ + + + + + +Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving | BharatMLStack + + + + + + + + +

Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving

· 14 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving

+

Serving large language models in production introduces new challenges across infrastructure, performance optimization, and operational lifecycle management. The LLM Inference Platform addresses these challenges by providing a unified system for deploying and managing open-source and fine-tuned LLMs at scale.

+

The platform implements a complete LLMOps lifecycle — from model registration and automated compilation to deployment, runtime optimization, and monitoring. Designed as a self-service environment, users can onboard models directly from open repositories such as Hugging Face or upload custom fine-tuned models, and deploy them using a single-click workflow with no manual infrastructure or configuration steps required.

+

In addition to fully automated deployment, the platform allows users to select and apply custom inference optimization techniques — such as quantization strategies, batching configurations, and runtime-specific performance enhancements — enabling teams to balance latency, throughput, and cost based on their use case. The goal is to reduce operational friction while enabling high-performance, production-grade LLM inference.

+

Why LLM Inference Is not just bigger ML model serving

+

Large language model (LLM) inference introduces a fundamentally different set of challenges compared to traditional machine learning inference. While classical ML models typically perform a single forward pass to produce a fixed prediction, LLMs operate as autoregressive systems, generating outputs token by token based on previously generated context. This difference dramatically changes how inference systems must be designed, optimized, and scaled.

+

Autoregressive Generation and Sequential Computation:

+

Unlike traditional models such as classifiers or recommenders — where inference cost is relatively constant — LLMs generate responses incrementally. Each new token depends on all previously generated tokens, making inference inherently sequential and dynamic. This means latency and compute requirements vary significantly depending on prompt length and output size, introducing complexity in scheduling and resource allocation. +Because tokens cannot be generated fully in parallel during decoding, GPUs may become underutilized without specialized batching and scheduling strategies. This has led to the development of dedicated LLM inference engines optimized for token-level execution.

+

Prefill and Decode Phases:

+

LLM inference typically consists of two distinct stages:

+
    +
  • Prefill phase — the model processes the input prompt and builds internal representations. This stage is compute-heavy and highly parallelizable.
  • +
  • Decode phase — the model generates tokens sequentially, predicting one token at a time using previously generated context.
  • +
+

The decode stage often becomes memory-bound rather than compute-bound, which creates new performance bottlenecks compared to traditional ML workloads.

+

Context Management and KV Caching:

+

Another fundamental difference lies in how LLMs maintain context. Transformer-based models rely on attention mechanisms that require access to past token representations. To avoid recomputing these representations repeatedly, inference engines use key-value (KV) caching, which stores intermediate activations from previous tokens. +KV caching significantly improves performance by eliminating redundant computation, but it introduces new challenges:

+
    +
  • Memory consumption grows with sequence length and batch size
  • +
  • GPU memory becomes a critical bottleneck
  • +
  • Efficient memory management becomes essential for scaling concurrent requests
  • +
+

This tradeoff between compute efficiency and memory usage is unique to LLM inference workloads.

+

Dynamic and Irregular Workloads:

+

Traditional ML inference typically operates on fixed-size inputs with predictable latency. In contrast, LLM requests vary widely in prompt length, output length, and runtime behavior. As a result:

+
    +
  • Batch sizes must be dynamic rather than static
  • +
  • Requests may enter and leave batches asynchronously
  • +
  • Scheduling systems must continuously rebalance workloads to maximize GPU utilization
  • +
+

These characteristics require specialized serving architectures that differ significantly from standard ML serving pipelines.

+

Streaming and User Experience Constraints:

+

Another distinguishing factor is the expectation of real-time streaming responses. Instead of returning a single output, LLM systems often stream tokens to users as they are generated. +Because of these differences — sequential generation, growing memory requirements, dynamic workloads, and streaming constraints — LLM inference cannot be treated as a simple extension of existing ML serving systems. Production platforms must incorporate specialized runtime engines, advanced optimization techniques, and observability tailored specifically to LLM workloads.

+

LLMOps: High-Level Architecture

+

LLM Architecture

+

The LLM Inference Framework is designed as a fully automated, end-to-end system for deploying and operating open-source and fine-tuned large language models at scale. The architecture abstracts the complexity of model optimization, hardware selection, deployment, and runtime management into a unified workflow that enables users to move from raw model weights to production-ready inference endpoints with minimal manual intervention.

+

Our LLM Inference Framework is architected not just as a serving engine, but as a complete lifecycle management system. As illustrated in the high-level design below, the platform automates the journey of a model through seven distinct stages, ensuring reproducibility, performance, and scalability.

+
    +
  1. +

    Onboarding & Registration (The Source of Truth)

    +

    The lifecycle begins with the Data Scientist or engineer.

    +
      +
    • Model Ingestion: Users onboard models—whether open-source (Hugging Face, NeMo) or internally fine-tuned—via the Truffle Box SDK/UI.
    • +
    • LLM + Prompt Registry: Unlike traditional systems that only track model weights, our registry is a unified control plane. It stores both the Model Artifacts and the Prompt Templates. This allows Data Scientists to register and version-control prompts (e.g., "customer_support_v2") independently of the application code.
    • +
    +
  2. +
  3. +

    The "Black Box" Build Engine

    +

    Once a model is registered, the Automated LLM Compiler + Quantizer Module kicks off a background job on ephemeral GPU resources.

    +
      +
    • Transformation: The raw model is converted into a TRT-LLM Checkpoint.
    • +
    • Quantization: The system automatically applies quantization algorithms (like INT4 AWQ or FP8) to reduce memory footprint.
    • +
    • Engine Building: Finally, it compiles a highly optimized TRT Engine specifically tuned for the target hardware.
    • +
    +
  4. +
  5. +

    Intelligent Profiling & Validation

    +

    Before deployment, the new engine passes through the Hardware & Inference Runtime Profiler.

    +
      +
    • Benchmarking: This module empirically tests the engine against various hardware configurations (L4 vs. A100) and runtimes (TRT-LLM vs. vLLM).
    • +
    • Optimization: It recommends the optimal configuration that meets latency SLAs (Time-To-First-Token) while minimizing cost.
    • +
    +
  6. +
  7. +

    Smart Artifact Generation & Distribution

    +

    To solve the Kubernetes "Cold Start" problem, the LLM Serving Artifacts Generation module packages the model using a bifurcated strategy:

    +
      +
    • Standard Models: Artifacts are uploaded to Cloud Storage (GCS) and downloaded by pods at startup.
    • +
    • Very Large Models: For massive models (>8GB) where network downloads are too slow, the system pre-caches the model onto Secondary Boot Disks. These disks are attached directly to new GPU nodes during autoscaling, eliminating download wait times.
    • +
    +
  8. +
  9. +

    Image Streaming & Deployment

    +

    Simultaneously, the inference runtime container images are pulled from the Artifact Registry.

    +
      +
    • Image Streaming: We utilize container image streaming to allow pods to start initializing while the massive Triton/Dynamo container layers are still downloading, further shaving seconds off the startup time. link
    • +
    +
  10. +
  11. +

    The Inference Runtime (Kubernetes)

    +

    The workload lands on Kubernetes with Autoscaling.

    +
      +
    • Dynamic Backends: Depending on the profile generated in Stage 3, the pod initializes either TensorRT-LLM (for throughput) or vLLM (for flexibility), or spins up a Dynamo worker for distributed inference.
    • +
    • Data Loading: The pod either downloads the model from Cloud Storage or mounts the pre-warmed Secondary Boot Disk ("Pull from Disk").
    • +
    +
  12. +
  13. +

    Client Interaction & Observability

    +

    Finally, the LLM Inference Client executes the request.

    +
      +
    • Prompt Injection: The client pulls the specific prompt template ID from the Registry, ensuring the exact versioned instructions are used.
    • +
    • Streaming Response: The request is sent via gRPC, and tokens are streamed back to the user in real-time.
    • +
    +
  14. +
  15. +

    Observability: Monitoring the Pulse of GenAI

    +

    In traditional microservices, success is measured by CPU utilization and request latency (p99). For Large Language Models, these metrics are insufficient. A user doesn't care if the GPU is at 80% utilization; they care about how fast the first word appears and how smoothly the rest of the sentence follows.

    +

    To capture the true user experience, our platform instrumentation focuses on three critical LLM-specific metrics:

    +
      +
    1. +

      Time to First Token (TTFT)

      +
        +
      • Definition: TTFT measures the time elapsed from the moment a request is received until the very first token is generated and streamed back to the user.
      • +
      • Why it matters: This represents the "Prefill Phase" latency—the time the model takes to process the input prompt and load weights. A high TTFT makes the application feel unresponsive or "hung."
      • +
      • Optimization: We closely monitor TTFT to ensure our Prefix Caching is effective (aiming for high cache hitrates), which drastically lowers this metric by skipping redundant prompt processing.
      • +
      +
    2. +
    3. +

      Inter-Token Latency (ITL)

      +
        +
      • Definition: ITL measures the average time interval between the generation of consecutive tokens during the "Decode Phase".
      • +
      • Why it matters: This defines the "perceived speed" of reading. Even if the first token is fast (low TTFT), high ITL makes the text generation look "jerky" or slow to the user.
      • +
      • Benchmarks: In our testing with Llama 3.1, we track p99 ITL to ensure it stays below human reading speeds to maintain a natural conversational flow.
      • +
      +
    4. +
    5. +

      Token Throughput vs. Request Throughput

      +
        +
      • We distinguish between two types of throughput to balance system efficiency with user load:
      • +
      • Token Throughput (tokens/sec): The total number of tokens generated across all concurrent requests. This measures the raw compute efficiency of the GPU and the effectiveness of batching.
      • +
      • Request Throughput (req/sec): The number of distinct user queries served per second. We use this to determine autoscaling thresholds, ensuring we scale out before the queue depth impacts ITL.
      • +
      +
    6. +
    7. +

      The Monitoring Stack

      +
        +
      • Real-time Dashboards: We utilize Grafana to visualize these streaming metrics in real-time, allowing on-call engineers to spot "slow generation" incidents that generic "500 error" alerts would miss.
      • +
      • Request Tracing: Since Triton Inference Server does not log request payloads by default, we integrate a Helix Client to asynchronously publish request logs to Log Tables. This allows us to trace a specific "slow" request back to its prompt to understand if a complex input caused the latency spike.
      • +
      +
    8. +
    +
  16. +
+

Supported Inference backends (TensorRT LLM, Dynamo & vLLM)

+

Tailored for the Use Case: We do not believe in a "one-size-fits-all" approach to inference. Different use cases—whether a real-time voice bot requiring ultra-lowsub-second latency or a massive reasoning task requiring huge context windows—demand different runtime characteristics. Our platform is designed to be runtime-agnostic, allowing us to automatically select and tailor the best engine based on the specific requirements of the application:

+
    +
  1. +

    TensorRT-LLM: The High-Performance Standard

    +

    Suitable for: High-throughput production workloads where latency is critical (e.g., customer support chat, real-time voice bots).

    +

    TensorRT-LLM serves as our default backend for these scenarios. Our internal benchmarks on Llama 3.1 and 3.2 models demonstrated that a tuned TensorRT-LLM engine significantly outperforms standard runtimes, especially when utilizing INT4 AWQ and FP8 quantization .

    +

    Key optimizations we tailor for these high-load cases include:

    +
      +
    • Optimized execution via TensorRT engine compilation
    • +
    • Quantization-aware execution for reduced memory usage and improved throughput
    • +
    • Inflight Batching: Allowing requests to be processed continuously without waiting for the entire batch to finish, drastically improving GPU utilization .
    • +
    • Custom Plugins: Enabling specific NVIDIA plugins like the GEMM plugin and GPT Attention plugin to accelerate matrix multiplications and attention mechanisms .
    • +
    +
  2. +
  3. +

    Dynamo: Distributed Inference for Reasoning Models

    +

    Suitable for: Very large "reasoning" models (70B+) or scenarios requiring massive context windows where a single GPU's memory is insufficient.

    +

    For these memory-bound tasks, we utilize Dynamo, a low-latency distributed inference framework . Unlike monolithic servers, Dynamo disaggregates the inference process to scale resources horizontally:

    +
      +
    • KV Aware Routing: A specialized router directs requests to workers that already hold the relevant Key-Value (KV) cache, minimizing redundant computation .
    • +
    • Prefill vs. Decode Split: The workload is divided into Prefill Workers (processing the prompt) and Decode Workers (generating tokens), allowing us to scale the compute-heavy "reading" phase independently from the memory-heavy "writing" phase .
    • +
    • Distributed execution across multiple GPU resources
    • +
    +
  4. +
  5. +

    vLLM: The Flexible Baseline

    +

    Suitable for: Rapid prototyping, testing new model architectures, or low-traffic internal tools where ease of deployment outweighs raw throughput.

    +

    While TensorRT-LLM is optimized for maximum speed, vLLM provides a robust and flexible baseline .

    +
      +
    • High throughput through dynamic batching and efficient memory utilization
    • +
    • Paged KV cache management for handling long contexts and concurrent requests
    • +
    • Strong support for open-source model ecosystems
    • +
    • Rapid Adoption: It allows us to onboard new model architectures immediately without waiting for a custom TensorRT build.
    • +
    • Benchmarking Insight: In our internal tests, vLLM provided a strong baseline but often lacked the specific max-token optimizations present in our custom TRT engines . We use it strategically for initial testing before committing to a full TensorRT optimization pipeline.
    • +
    +
  6. +
+

Conclusion

+

Large language model inference introduces a fundamentally new class of infrastructure challenges—where performance is governed not just by raw compute, but by memory efficiency, intelligent scheduling, runtime specialization, and lifecycle automation. Unlike traditional ML serving, LLM inference requires systems that understand token-level execution, manage rapidly growing context state, and continuously balance latency, throughput, and cost under highly dynamic workloads.

+

The LLM Inference Framework addresses these challenges by transforming inference into a fully automated, reproducible lifecycle—from model onboarding and compilation to deployment, optimization, and observability. By integrating automated quantization and engine compilation, intelligent runtime selection, cold-start mitigation strategies, and LLM-specific observability metrics such as Time-to-First-Token and Inter-Token Latency, the platform ensures both high performance and operational simplicity.

+

Equally important, the framework is designed with flexibility and future evolution in mind. Its runtime-agnostic architecture enables seamless adoption of emerging inference engines, hardware accelerators, and optimization techniques without requiring platform redesign. This ensures that teams can continuously leverage advancements in the rapidly evolving LLM ecosystem while maintaining consistent operational workflows.

+

Ultimately, the goal of the platform is to make production-scale LLM deployment as seamless and reliable as traditional software deployment—allowing teams to focus on building intelligent applications rather than managing infrastructure complexity. By combining lifecycle automation, runtime optimization, and deep observability, the LLM Inference Framework provides a scalable foundation for delivering fast, cost-efficient, and production-ready LLM experiences.

+

Future Explorations

+

While we have achieved significant milestones in latency and throughput, the landscape of GenAI is evolving rapidly. Our roadmap focuses on increasing flexibility, reducing costs, and enhancing reliability for enterprise-grade workloads. Here is what we are building next:

+
    +
  • TPU Support: To diversify our hardware supply chain and further optimize cost-per-token, we are evaluating Google Cloud TPUs to bake it into our platform. By leveraging the JAX and PyTorch/XLA ecosystems, we aim to unlock the massive throughput potential of TPU v5e chips, particularly for our open-source Llama models. This will allow the hardware profiler to dynamically choose between NVIDIA GPUs and Google TPUs based on real-time availability and price-performance metrics.
  • +
  • Multi-LoRA Serving (Serverless Experience): Currently, deploying a fine-tuned model requires a dedicated GPU. We are building support for Multi-LoRA serving, which will allow us to serve hundreds of unique, fine-tuned adapters on top of a single frozen base model. This will drastically reduce costs for multi-tenant applications, enabling a "serverless" experience where specific fine-tunes are hot-swapped instantly per request.
  • +
  • Spot Instance Orchestration: To further optimize cloud costs, we are developing fault-tolerant mechanisms to run inference workloads on Spot Instances. By implementing aggressive checkpointing and seamless request draining, we aim to leverage cheaper, preemptible compute capacity without interrupting the user's streaming experience.
  • +
  • Semantic Caching Layer: We plan to move beyond standard Prefix Caching to implement Semantic Caching. By using a vector database to fetch responses for semantically similar queries (e.g., "How do I reset my password?" vs. "Password reset steps"), we can bypass the GPU entirely for repetitive queries, reducing latency to near-zero.
  • +
  • Context-Aware Autoscaling: Standard CPU/GPU utilization metrics are often insufficient signals for scaling LLMs. We are working on KV-cache pressure metrics for autoscaling. This ensures that we scale out before the memory fills up, preventing eviction-based slowdowns during traffic spikes.
  • +
  • Online Evaluation & Guardrails: We are integrating a lightweight "Trust Layer" into the proxy. This will allow for low-latency input/output filtering (Guardrails) and asynchronous "LLM-as-a-Judge" evaluation pipelines to monitor response quality in production, not just system health.
  • +
+ + \ No newline at end of file diff --git a/docs/blog/post-two/index.html b/docs/blog/post-two/index.html new file mode 100644 index 00000000..3d7c40d7 --- /dev/null +++ b/docs/blog/post-two/index.html @@ -0,0 +1,144 @@ + + + + + +Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2) | BharatMLStack + + + + + + + + +

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

· 7 min read
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

+ + \ No newline at end of file diff --git a/docs/blog/rss.xml b/docs/blog/rss.xml index 2d52444d..a5b41193 100644 --- a/docs/blog/rss.xml +++ b/docs/blog/rss.xml @@ -4,17 +4,640 @@ BharatMLStack Blog https://meesho.github.io/BharatMLStack/blog BharatMLStack Blog - Tue, 15 Nov 2022 00:00:00 GMT + Mon, 02 Jun 2025 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en + + <![CDATA[LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale]]> + https://meesho.github.io/BharatMLStack/blog/post-five + https://meesho.github.io/BharatMLStack/blog/post-five + Mon, 02 Jun 2025 00:00:00 GMT + + BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

]]>
+ llm + vllm + tensorrt-llm + mlplatform + meesho + bharatmlstack +
+ + <![CDATA[Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving]]> + https://meesho.github.io/BharatMLStack/blog/post-three + https://meesho.github.io/BharatMLStack/blog/post-three + Sat, 29 Mar 2025 00:00:00 GMT + + BharatMLStack

+

Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving

+

Serving large language models in production introduces new challenges across infrastructure, performance optimization, and operational lifecycle management. The LLM Inference Platform addresses these challenges by providing a unified system for deploying and managing open-source and fine-tuned LLMs at scale.

+

The platform implements a complete LLMOps lifecycle — from model registration and automated compilation to deployment, runtime optimization, and monitoring. Designed as a self-service environment, users can onboard models directly from open repositories such as Hugging Face or upload custom fine-tuned models, and deploy them using a single-click workflow with no manual infrastructure or configuration steps required.

+

In addition to fully automated deployment, the platform allows users to select and apply custom inference optimization techniques — such as quantization strategies, batching configurations, and runtime-specific performance enhancements — enabling teams to balance latency, throughput, and cost based on their use case. The goal is to reduce operational friction while enabling high-performance, production-grade LLM inference.

+

Why LLM Inference Is not just bigger ML model serving

+

Large language model (LLM) inference introduces a fundamentally different set of challenges compared to traditional machine learning inference. While classical ML models typically perform a single forward pass to produce a fixed prediction, LLMs operate as autoregressive systems, generating outputs token by token based on previously generated context. This difference dramatically changes how inference systems must be designed, optimized, and scaled.

+

Autoregressive Generation and Sequential Computation:

+

Unlike traditional models such as classifiers or recommenders — where inference cost is relatively constant — LLMs generate responses incrementally. Each new token depends on all previously generated tokens, making inference inherently sequential and dynamic. This means latency and compute requirements vary significantly depending on prompt length and output size, introducing complexity in scheduling and resource allocation. +Because tokens cannot be generated fully in parallel during decoding, GPUs may become underutilized without specialized batching and scheduling strategies. This has led to the development of dedicated LLM inference engines optimized for token-level execution.

+

Prefill and Decode Phases:

+

LLM inference typically consists of two distinct stages:

+
    +
  • Prefill phase — the model processes the input prompt and builds internal representations. This stage is compute-heavy and highly parallelizable.
  • +
  • Decode phase — the model generates tokens sequentially, predicting one token at a time using previously generated context.
  • +
+

The decode stage often becomes memory-bound rather than compute-bound, which creates new performance bottlenecks compared to traditional ML workloads.

+

Context Management and KV Caching:

+

Another fundamental difference lies in how LLMs maintain context. Transformer-based models rely on attention mechanisms that require access to past token representations. To avoid recomputing these representations repeatedly, inference engines use key-value (KV) caching, which stores intermediate activations from previous tokens. +KV caching significantly improves performance by eliminating redundant computation, but it introduces new challenges:

+
    +
  • Memory consumption grows with sequence length and batch size
  • +
  • GPU memory becomes a critical bottleneck
  • +
  • Efficient memory management becomes essential for scaling concurrent requests
  • +
+

This tradeoff between compute efficiency and memory usage is unique to LLM inference workloads.

+

Dynamic and Irregular Workloads:

+

Traditional ML inference typically operates on fixed-size inputs with predictable latency. In contrast, LLM requests vary widely in prompt length, output length, and runtime behavior. As a result:

+
    +
  • Batch sizes must be dynamic rather than static
  • +
  • Requests may enter and leave batches asynchronously
  • +
  • Scheduling systems must continuously rebalance workloads to maximize GPU utilization
  • +
+

These characteristics require specialized serving architectures that differ significantly from standard ML serving pipelines.

+

Streaming and User Experience Constraints:

+

Another distinguishing factor is the expectation of real-time streaming responses. Instead of returning a single output, LLM systems often stream tokens to users as they are generated. +Because of these differences — sequential generation, growing memory requirements, dynamic workloads, and streaming constraints — LLM inference cannot be treated as a simple extension of existing ML serving systems. Production platforms must incorporate specialized runtime engines, advanced optimization techniques, and observability tailored specifically to LLM workloads.

+

LLMOps: High-Level Architecture

+

LLM Architecture

+

The LLM Inference Framework is designed as a fully automated, end-to-end system for deploying and operating open-source and fine-tuned large language models at scale. The architecture abstracts the complexity of model optimization, hardware selection, deployment, and runtime management into a unified workflow that enables users to move from raw model weights to production-ready inference endpoints with minimal manual intervention.

+

Our LLM Inference Framework is architected not just as a serving engine, but as a complete lifecycle management system. As illustrated in the high-level design below, the platform automates the journey of a model through seven distinct stages, ensuring reproducibility, performance, and scalability.

+
    +
  1. +

    Onboarding & Registration (The Source of Truth)

    +

    The lifecycle begins with the Data Scientist or engineer.

    +
      +
    • Model Ingestion: Users onboard models—whether open-source (Hugging Face, NeMo) or internally fine-tuned—via the Truffle Box SDK/UI.
    • +
    • LLM + Prompt Registry: Unlike traditional systems that only track model weights, our registry is a unified control plane. It stores both the Model Artifacts and the Prompt Templates. This allows Data Scientists to register and version-control prompts (e.g., "customer_support_v2") independently of the application code.
    • +
    +
  2. +
  3. +

    The "Black Box" Build Engine

    +

    Once a model is registered, the Automated LLM Compiler + Quantizer Module kicks off a background job on ephemeral GPU resources.

    +
      +
    • Transformation: The raw model is converted into a TRT-LLM Checkpoint.
    • +
    • Quantization: The system automatically applies quantization algorithms (like INT4 AWQ or FP8) to reduce memory footprint.
    • +
    • Engine Building: Finally, it compiles a highly optimized TRT Engine specifically tuned for the target hardware.
    • +
    +
  4. +
  5. +

    Intelligent Profiling & Validation

    +

    Before deployment, the new engine passes through the Hardware & Inference Runtime Profiler.

    +
      +
    • Benchmarking: This module empirically tests the engine against various hardware configurations (L4 vs. A100) and runtimes (TRT-LLM vs. vLLM).
    • +
    • Optimization: It recommends the optimal configuration that meets latency SLAs (Time-To-First-Token) while minimizing cost.
    • +
    +
  6. +
  7. +

    Smart Artifact Generation & Distribution

    +

    To solve the Kubernetes "Cold Start" problem, the LLM Serving Artifacts Generation module packages the model using a bifurcated strategy:

    +
      +
    • Standard Models: Artifacts are uploaded to Cloud Storage (GCS) and downloaded by pods at startup.
    • +
    • Very Large Models: For massive models (>8GB) where network downloads are too slow, the system pre-caches the model onto Secondary Boot Disks. These disks are attached directly to new GPU nodes during autoscaling, eliminating download wait times.
    • +
    +
  8. +
  9. +

    Image Streaming & Deployment

    +

    Simultaneously, the inference runtime container images are pulled from the Artifact Registry.

    +
      +
    • Image Streaming: We utilize container image streaming to allow pods to start initializing while the massive Triton/Dynamo container layers are still downloading, further shaving seconds off the startup time. link
    • +
    +
  10. +
  11. +

    The Inference Runtime (Kubernetes)

    +

    The workload lands on Kubernetes with Autoscaling.

    +
      +
    • Dynamic Backends: Depending on the profile generated in Stage 3, the pod initializes either TensorRT-LLM (for throughput) or vLLM (for flexibility), or spins up a Dynamo worker for distributed inference.
    • +
    • Data Loading: The pod either downloads the model from Cloud Storage or mounts the pre-warmed Secondary Boot Disk ("Pull from Disk").
    • +
    +
  12. +
  13. +

    Client Interaction & Observability

    +

    Finally, the LLM Inference Client executes the request.

    +
      +
    • Prompt Injection: The client pulls the specific prompt template ID from the Registry, ensuring the exact versioned instructions are used.
    • +
    • Streaming Response: The request is sent via gRPC, and tokens are streamed back to the user in real-time.
    • +
    +
  14. +
  15. +

    Observability: Monitoring the Pulse of GenAI

    +

    In traditional microservices, success is measured by CPU utilization and request latency (p99). For Large Language Models, these metrics are insufficient. A user doesn't care if the GPU is at 80% utilization; they care about how fast the first word appears and how smoothly the rest of the sentence follows.

    +

    To capture the true user experience, our platform instrumentation focuses on three critical LLM-specific metrics:

    +
      +
    1. +

      Time to First Token (TTFT)

      +
        +
      • Definition: TTFT measures the time elapsed from the moment a request is received until the very first token is generated and streamed back to the user.
      • +
      • Why it matters: This represents the "Prefill Phase" latency—the time the model takes to process the input prompt and load weights. A high TTFT makes the application feel unresponsive or "hung."
      • +
      • Optimization: We closely monitor TTFT to ensure our Prefix Caching is effective (aiming for high cache hitrates), which drastically lowers this metric by skipping redundant prompt processing.
      • +
      +
    2. +
    3. +

      Inter-Token Latency (ITL)

      +
        +
      • Definition: ITL measures the average time interval between the generation of consecutive tokens during the "Decode Phase".
      • +
      • Why it matters: This defines the "perceived speed" of reading. Even if the first token is fast (low TTFT), high ITL makes the text generation look "jerky" or slow to the user.
      • +
      • Benchmarks: In our testing with Llama 3.1, we track p99 ITL to ensure it stays below human reading speeds to maintain a natural conversational flow.
      • +
      +
    4. +
    5. +

      Token Throughput vs. Request Throughput

      +
        +
      • We distinguish between two types of throughput to balance system efficiency with user load:
      • +
      • Token Throughput (tokens/sec): The total number of tokens generated across all concurrent requests. This measures the raw compute efficiency of the GPU and the effectiveness of batching.
      • +
      • Request Throughput (req/sec): The number of distinct user queries served per second. We use this to determine autoscaling thresholds, ensuring we scale out before the queue depth impacts ITL.
      • +
      +
    6. +
    7. +

      The Monitoring Stack

      +
        +
      • Real-time Dashboards: We utilize Grafana to visualize these streaming metrics in real-time, allowing on-call engineers to spot "slow generation" incidents that generic "500 error" alerts would miss.
      • +
      • Request Tracing: Since Triton Inference Server does not log request payloads by default, we integrate a Helix Client to asynchronously publish request logs to Log Tables. This allows us to trace a specific "slow" request back to its prompt to understand if a complex input caused the latency spike.
      • +
      +
    8. +
    +
  16. +
+

Supported Inference backends (TensorRT LLM, Dynamo & vLLM)

+

Tailored for the Use Case: We do not believe in a "one-size-fits-all" approach to inference. Different use cases—whether a real-time voice bot requiring ultra-lowsub-second latency or a massive reasoning task requiring huge context windows—demand different runtime characteristics. Our platform is designed to be runtime-agnostic, allowing us to automatically select and tailor the best engine based on the specific requirements of the application:

+
    +
  1. +

    TensorRT-LLM: The High-Performance Standard

    +

    Suitable for: High-throughput production workloads where latency is critical (e.g., customer support chat, real-time voice bots).

    +

    TensorRT-LLM serves as our default backend for these scenarios. Our internal benchmarks on Llama 3.1 and 3.2 models demonstrated that a tuned TensorRT-LLM engine significantly outperforms standard runtimes, especially when utilizing INT4 AWQ and FP8 quantization .

    +

    Key optimizations we tailor for these high-load cases include:

    +
      +
    • Optimized execution via TensorRT engine compilation
    • +
    • Quantization-aware execution for reduced memory usage and improved throughput
    • +
    • Inflight Batching: Allowing requests to be processed continuously without waiting for the entire batch to finish, drastically improving GPU utilization .
    • +
    • Custom Plugins: Enabling specific NVIDIA plugins like the GEMM plugin and GPT Attention plugin to accelerate matrix multiplications and attention mechanisms .
    • +
    +
  2. +
  3. +

    Dynamo: Distributed Inference for Reasoning Models

    +

    Suitable for: Very large "reasoning" models (70B+) or scenarios requiring massive context windows where a single GPU's memory is insufficient.

    +

    For these memory-bound tasks, we utilize Dynamo, a low-latency distributed inference framework . Unlike monolithic servers, Dynamo disaggregates the inference process to scale resources horizontally:

    +
      +
    • KV Aware Routing: A specialized router directs requests to workers that already hold the relevant Key-Value (KV) cache, minimizing redundant computation .
    • +
    • Prefill vs. Decode Split: The workload is divided into Prefill Workers (processing the prompt) and Decode Workers (generating tokens), allowing us to scale the compute-heavy "reading" phase independently from the memory-heavy "writing" phase .
    • +
    • Distributed execution across multiple GPU resources
    • +
    +
  4. +
  5. +

    vLLM: The Flexible Baseline

    +

    Suitable for: Rapid prototyping, testing new model architectures, or low-traffic internal tools where ease of deployment outweighs raw throughput.

    +

    While TensorRT-LLM is optimized for maximum speed, vLLM provides a robust and flexible baseline .

    +
      +
    • High throughput through dynamic batching and efficient memory utilization
    • +
    • Paged KV cache management for handling long contexts and concurrent requests
    • +
    • Strong support for open-source model ecosystems
    • +
    • Rapid Adoption: It allows us to onboard new model architectures immediately without waiting for a custom TensorRT build.
    • +
    • Benchmarking Insight: In our internal tests, vLLM provided a strong baseline but often lacked the specific max-token optimizations present in our custom TRT engines . We use it strategically for initial testing before committing to a full TensorRT optimization pipeline.
    • +
    +
  6. +
+

Conclusion

+

Large language model inference introduces a fundamentally new class of infrastructure challenges—where performance is governed not just by raw compute, but by memory efficiency, intelligent scheduling, runtime specialization, and lifecycle automation. Unlike traditional ML serving, LLM inference requires systems that understand token-level execution, manage rapidly growing context state, and continuously balance latency, throughput, and cost under highly dynamic workloads.

+

The LLM Inference Framework addresses these challenges by transforming inference into a fully automated, reproducible lifecycle—from model onboarding and compilation to deployment, optimization, and observability. By integrating automated quantization and engine compilation, intelligent runtime selection, cold-start mitigation strategies, and LLM-specific observability metrics such as Time-to-First-Token and Inter-Token Latency, the platform ensures both high performance and operational simplicity.

+

Equally important, the framework is designed with flexibility and future evolution in mind. Its runtime-agnostic architecture enables seamless adoption of emerging inference engines, hardware accelerators, and optimization techniques without requiring platform redesign. This ensures that teams can continuously leverage advancements in the rapidly evolving LLM ecosystem while maintaining consistent operational workflows.

+

Ultimately, the goal of the platform is to make production-scale LLM deployment as seamless and reliable as traditional software deployment—allowing teams to focus on building intelligent applications rather than managing infrastructure complexity. By combining lifecycle automation, runtime optimization, and deep observability, the LLM Inference Framework provides a scalable foundation for delivering fast, cost-efficient, and production-ready LLM experiences.

+

Future Explorations

+

While we have achieved significant milestones in latency and throughput, the landscape of GenAI is evolving rapidly. Our roadmap focuses on increasing flexibility, reducing costs, and enhancing reliability for enterprise-grade workloads. Here is what we are building next:

+
    +
  • TPU Support: To diversify our hardware supply chain and further optimize cost-per-token, we are evaluating Google Cloud TPUs to bake it into our platform. By leveraging the JAX and PyTorch/XLA ecosystems, we aim to unlock the massive throughput potential of TPU v5e chips, particularly for our open-source Llama models. This will allow the hardware profiler to dynamically choose between NVIDIA GPUs and Google TPUs based on real-time availability and price-performance metrics.
  • +
  • Multi-LoRA Serving (Serverless Experience): Currently, deploying a fine-tuned model requires a dedicated GPU. We are building support for Multi-LoRA serving, which will allow us to serve hundreds of unique, fine-tuned adapters on top of a single frozen base model. This will drastically reduce costs for multi-tenant applications, enabling a "serverless" experience where specific fine-tunes are hot-swapped instantly per request.
  • +
  • Spot Instance Orchestration: To further optimize cloud costs, we are developing fault-tolerant mechanisms to run inference workloads on Spot Instances. By implementing aggressive checkpointing and seamless request draining, we aim to leverage cheaper, preemptible compute capacity without interrupting the user's streaming experience.
  • +
  • Semantic Caching Layer: We plan to move beyond standard Prefix Caching to implement Semantic Caching. By using a vector database to fetch responses for semantically similar queries (e.g., "How do I reset my password?" vs. "Password reset steps"), we can bypass the GPU entirely for repetitive queries, reducing latency to near-zero.
  • +
  • Context-Aware Autoscaling: Standard CPU/GPU utilization metrics are often insufficient signals for scaling LLMs. We are working on KV-cache pressure metrics for autoscaling. This ensures that we scale out before the memory fills up, preventing eviction-based slowdowns during traffic spikes.
  • +
  • Online Evaluation & Guardrails: We are integrating a lightweight "Trust Layer" into the proxy. This will allow for low-latency input/output filtering (Guardrails) and asynchronous "LLM-as-a-Judge" evaluation pipelines to monitor response quality in production, not just system health.
  • +
]]>
+ llm + vllm + tensorrt-llm + mlplatform + meesho + bharatmlstack +
+ + <![CDATA[Cracking the Code: Scaling Model Inference & Real-Time Embedding Search]]> + https://meesho.github.io/BharatMLStack/blog/post-three + https://meesho.github.io/BharatMLStack/blog/post-three + Tue, 21 May 2024 00:00:00 GMT + + BharatMLStack

+

Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving

+

Serving large language models in production introduces new challenges across infrastructure, performance optimization, and operational lifecycle management. The LLM Inference Platform addresses these challenges by providing a unified system for deploying and managing open-source and fine-tuned LLMs at scale.

+

The platform implements a complete LLMOps lifecycle — from model registration and automated compilation to deployment, runtime optimization, and monitoring. Designed as a self-service environment, users can onboard models directly from open repositories such as Hugging Face or upload custom fine-tuned models, and deploy them using a single-click workflow with no manual infrastructure or configuration steps required.

+

In addition to fully automated deployment, the platform allows users to select and apply custom inference optimization techniques — such as quantization strategies, batching configurations, and runtime-specific performance enhancements — enabling teams to balance latency, throughput, and cost based on their use case. The goal is to reduce operational friction while enabling high-performance, production-grade LLM inference.

+

Why LLM Inference Is not just bigger ML model serving

+

Large language model (LLM) inference introduces a fundamentally different set of challenges compared to traditional machine learning inference. While classical ML models typically perform a single forward pass to produce a fixed prediction, LLMs operate as autoregressive systems, generating outputs token by token based on previously generated context. This difference dramatically changes how inference systems must be designed, optimized, and scaled.

+

Autoregressive Generation and Sequential Computation:

+

Unlike traditional models such as classifiers or recommenders — where inference cost is relatively constant — LLMs generate responses incrementally. Each new token depends on all previously generated tokens, making inference inherently sequential and dynamic. This means latency and compute requirements vary significantly depending on prompt length and output size, introducing complexity in scheduling and resource allocation. +Because tokens cannot be generated fully in parallel during decoding, GPUs may become underutilized without specialized batching and scheduling strategies. This has led to the development of dedicated LLM inference engines optimized for token-level execution.

+

Prefill and Decode Phases:

+

LLM inference typically consists of two distinct stages:

+
    +
  • Prefill phase — the model processes the input prompt and builds internal representations. This stage is compute-heavy and highly parallelizable.
  • +
  • Decode phase — the model generates tokens sequentially, predicting one token at a time using previously generated context.
  • +
+

The decode stage often becomes memory-bound rather than compute-bound, which creates new performance bottlenecks compared to traditional ML workloads.

+

Context Management and KV Caching:

+

Another fundamental difference lies in how LLMs maintain context. Transformer-based models rely on attention mechanisms that require access to past token representations. To avoid recomputing these representations repeatedly, inference engines use key-value (KV) caching, which stores intermediate activations from previous tokens. +KV caching significantly improves performance by eliminating redundant computation, but it introduces new challenges:

+
    +
  • Memory consumption grows with sequence length and batch size
  • +
  • GPU memory becomes a critical bottleneck
  • +
  • Efficient memory management becomes essential for scaling concurrent requests
  • +
+

This tradeoff between compute efficiency and memory usage is unique to LLM inference workloads.

+

Dynamic and Irregular Workloads:

+

Traditional ML inference typically operates on fixed-size inputs with predictable latency. In contrast, LLM requests vary widely in prompt length, output length, and runtime behavior. As a result:

+
    +
  • Batch sizes must be dynamic rather than static
  • +
  • Requests may enter and leave batches asynchronously
  • +
  • Scheduling systems must continuously rebalance workloads to maximize GPU utilization
  • +
+

These characteristics require specialized serving architectures that differ significantly from standard ML serving pipelines.

+

Streaming and User Experience Constraints:

+

Another distinguishing factor is the expectation of real-time streaming responses. Instead of returning a single output, LLM systems often stream tokens to users as they are generated. +Because of these differences — sequential generation, growing memory requirements, dynamic workloads, and streaming constraints — LLM inference cannot be treated as a simple extension of existing ML serving systems. Production platforms must incorporate specialized runtime engines, advanced optimization techniques, and observability tailored specifically to LLM workloads.

+

LLMOps: High-Level Architecture

+

LLM Architecture

+

The LLM Inference Framework is designed as a fully automated, end-to-end system for deploying and operating open-source and fine-tuned large language models at scale. The architecture abstracts the complexity of model optimization, hardware selection, deployment, and runtime management into a unified workflow that enables users to move from raw model weights to production-ready inference endpoints with minimal manual intervention.

+

Our LLM Inference Framework is architected not just as a serving engine, but as a complete lifecycle management system. As illustrated in the high-level design below, the platform automates the journey of a model through seven distinct stages, ensuring reproducibility, performance, and scalability.

+
    +
  1. +

    Onboarding & Registration (The Source of Truth)

    +

    The lifecycle begins with the Data Scientist or engineer.

    +
      +
    • Model Ingestion: Users onboard models—whether open-source (Hugging Face, NeMo) or internally fine-tuned—via the Truffle Box SDK/UI.
    • +
    • LLM + Prompt Registry: Unlike traditional systems that only track model weights, our registry is a unified control plane. It stores both the Model Artifacts and the Prompt Templates. This allows Data Scientists to register and version-control prompts (e.g., "customer_support_v2") independently of the application code.
    • +
    +
  2. +
  3. +

    The "Black Box" Build Engine

    +

    Once a model is registered, the Automated LLM Compiler + Quantizer Module kicks off a background job on ephemeral GPU resources.

    +
      +
    • Transformation: The raw model is converted into a TRT-LLM Checkpoint.
    • +
    • Quantization: The system automatically applies quantization algorithms (like INT4 AWQ or FP8) to reduce memory footprint.
    • +
    • Engine Building: Finally, it compiles a highly optimized TRT Engine specifically tuned for the target hardware.
    • +
    +
  4. +
  5. +

    Intelligent Profiling & Validation

    +

    Before deployment, the new engine passes through the Hardware & Inference Runtime Profiler.

    +
      +
    • Benchmarking: This module empirically tests the engine against various hardware configurations (L4 vs. A100) and runtimes (TRT-LLM vs. vLLM).
    • +
    • Optimization: It recommends the optimal configuration that meets latency SLAs (Time-To-First-Token) while minimizing cost.
    • +
    +
  6. +
  7. +

    Smart Artifact Generation & Distribution

    +

    To solve the Kubernetes "Cold Start" problem, the LLM Serving Artifacts Generation module packages the model using a bifurcated strategy:

    +
      +
    • Standard Models: Artifacts are uploaded to Cloud Storage (GCS) and downloaded by pods at startup.
    • +
    • Very Large Models: For massive models (>8GB) where network downloads are too slow, the system pre-caches the model onto Secondary Boot Disks. These disks are attached directly to new GPU nodes during autoscaling, eliminating download wait times.
    • +
    +
  8. +
  9. +

    Image Streaming & Deployment

    +

    Simultaneously, the inference runtime container images are pulled from the Artifact Registry.

    +
      +
    • Image Streaming: We utilize container image streaming to allow pods to start initializing while the massive Triton/Dynamo container layers are still downloading, further shaving seconds off the startup time. link
    • +
    +
  10. +
  11. +

    The Inference Runtime (Kubernetes)

    +

    The workload lands on Kubernetes with Autoscaling.

    +
      +
    • Dynamic Backends: Depending on the profile generated in Stage 3, the pod initializes either TensorRT-LLM (for throughput) or vLLM (for flexibility), or spins up a Dynamo worker for distributed inference.
    • +
    • Data Loading: The pod either downloads the model from Cloud Storage or mounts the pre-warmed Secondary Boot Disk ("Pull from Disk").
    • +
    +
  12. +
  13. +

    Client Interaction & Observability

    +

    Finally, the LLM Inference Client executes the request.

    +
      +
    • Prompt Injection: The client pulls the specific prompt template ID from the Registry, ensuring the exact versioned instructions are used.
    • +
    • Streaming Response: The request is sent via gRPC, and tokens are streamed back to the user in real-time.
    • +
    +
  14. +
  15. +

    Observability: Monitoring the Pulse of GenAI

    +

    In traditional microservices, success is measured by CPU utilization and request latency (p99). For Large Language Models, these metrics are insufficient. A user doesn't care if the GPU is at 80% utilization; they care about how fast the first word appears and how smoothly the rest of the sentence follows.

    +

    To capture the true user experience, our platform instrumentation focuses on three critical LLM-specific metrics:

    +
      +
    1. +

      Time to First Token (TTFT)

      +
        +
      • Definition: TTFT measures the time elapsed from the moment a request is received until the very first token is generated and streamed back to the user.
      • +
      • Why it matters: This represents the "Prefill Phase" latency—the time the model takes to process the input prompt and load weights. A high TTFT makes the application feel unresponsive or "hung."
      • +
      • Optimization: We closely monitor TTFT to ensure our Prefix Caching is effective (aiming for high cache hitrates), which drastically lowers this metric by skipping redundant prompt processing.
      • +
      +
    2. +
    3. +

      Inter-Token Latency (ITL)

      +
        +
      • Definition: ITL measures the average time interval between the generation of consecutive tokens during the "Decode Phase".
      • +
      • Why it matters: This defines the "perceived speed" of reading. Even if the first token is fast (low TTFT), high ITL makes the text generation look "jerky" or slow to the user.
      • +
      • Benchmarks: In our testing with Llama 3.1, we track p99 ITL to ensure it stays below human reading speeds to maintain a natural conversational flow.
      • +
      +
    4. +
    5. +

      Token Throughput vs. Request Throughput

      +
        +
      • We distinguish between two types of throughput to balance system efficiency with user load:
      • +
      • Token Throughput (tokens/sec): The total number of tokens generated across all concurrent requests. This measures the raw compute efficiency of the GPU and the effectiveness of batching.
      • +
      • Request Throughput (req/sec): The number of distinct user queries served per second. We use this to determine autoscaling thresholds, ensuring we scale out before the queue depth impacts ITL.
      • +
      +
    6. +
    7. +

      The Monitoring Stack

      +
        +
      • Real-time Dashboards: We utilize Grafana to visualize these streaming metrics in real-time, allowing on-call engineers to spot "slow generation" incidents that generic "500 error" alerts would miss.
      • +
      • Request Tracing: Since Triton Inference Server does not log request payloads by default, we integrate a Helix Client to asynchronously publish request logs to Log Tables. This allows us to trace a specific "slow" request back to its prompt to understand if a complex input caused the latency spike.
      • +
      +
    8. +
    +
  16. +
+

Supported Inference backends (TensorRT LLM, Dynamo & vLLM)

+

Tailored for the Use Case: We do not believe in a "one-size-fits-all" approach to inference. Different use cases—whether a real-time voice bot requiring ultra-lowsub-second latency or a massive reasoning task requiring huge context windows—demand different runtime characteristics. Our platform is designed to be runtime-agnostic, allowing us to automatically select and tailor the best engine based on the specific requirements of the application:

+
    +
  1. +

    TensorRT-LLM: The High-Performance Standard

    +

    Suitable for: High-throughput production workloads where latency is critical (e.g., customer support chat, real-time voice bots).

    +

    TensorRT-LLM serves as our default backend for these scenarios. Our internal benchmarks on Llama 3.1 and 3.2 models demonstrated that a tuned TensorRT-LLM engine significantly outperforms standard runtimes, especially when utilizing INT4 AWQ and FP8 quantization .

    +

    Key optimizations we tailor for these high-load cases include:

    +
      +
    • Optimized execution via TensorRT engine compilation
    • +
    • Quantization-aware execution for reduced memory usage and improved throughput
    • +
    • Inflight Batching: Allowing requests to be processed continuously without waiting for the entire batch to finish, drastically improving GPU utilization .
    • +
    • Custom Plugins: Enabling specific NVIDIA plugins like the GEMM plugin and GPT Attention plugin to accelerate matrix multiplications and attention mechanisms .
    • +
    +
  2. +
  3. +

    Dynamo: Distributed Inference for Reasoning Models

    +

    Suitable for: Very large "reasoning" models (70B+) or scenarios requiring massive context windows where a single GPU's memory is insufficient.

    +

    For these memory-bound tasks, we utilize Dynamo, a low-latency distributed inference framework . Unlike monolithic servers, Dynamo disaggregates the inference process to scale resources horizontally:

    +
      +
    • KV Aware Routing: A specialized router directs requests to workers that already hold the relevant Key-Value (KV) cache, minimizing redundant computation .
    • +
    • Prefill vs. Decode Split: The workload is divided into Prefill Workers (processing the prompt) and Decode Workers (generating tokens), allowing us to scale the compute-heavy "reading" phase independently from the memory-heavy "writing" phase .
    • +
    • Distributed execution across multiple GPU resources
    • +
    +
  4. +
  5. +

    vLLM: The Flexible Baseline

    +

    Suitable for: Rapid prototyping, testing new model architectures, or low-traffic internal tools where ease of deployment outweighs raw throughput.

    +

    While TensorRT-LLM is optimized for maximum speed, vLLM provides a robust and flexible baseline .

    +
      +
    • High throughput through dynamic batching and efficient memory utilization
    • +
    • Paged KV cache management for handling long contexts and concurrent requests
    • +
    • Strong support for open-source model ecosystems
    • +
    • Rapid Adoption: It allows us to onboard new model architectures immediately without waiting for a custom TensorRT build.
    • +
    • Benchmarking Insight: In our internal tests, vLLM provided a strong baseline but often lacked the specific max-token optimizations present in our custom TRT engines . We use it strategically for initial testing before committing to a full TensorRT optimization pipeline.
    • +
    +
  6. +
+

Conclusion

+

Large language model inference introduces a fundamentally new class of infrastructure challenges—where performance is governed not just by raw compute, but by memory efficiency, intelligent scheduling, runtime specialization, and lifecycle automation. Unlike traditional ML serving, LLM inference requires systems that understand token-level execution, manage rapidly growing context state, and continuously balance latency, throughput, and cost under highly dynamic workloads.

+

The LLM Inference Framework addresses these challenges by transforming inference into a fully automated, reproducible lifecycle—from model onboarding and compilation to deployment, optimization, and observability. By integrating automated quantization and engine compilation, intelligent runtime selection, cold-start mitigation strategies, and LLM-specific observability metrics such as Time-to-First-Token and Inter-Token Latency, the platform ensures both high performance and operational simplicity.

+

Equally important, the framework is designed with flexibility and future evolution in mind. Its runtime-agnostic architecture enables seamless adoption of emerging inference engines, hardware accelerators, and optimization techniques without requiring platform redesign. This ensures that teams can continuously leverage advancements in the rapidly evolving LLM ecosystem while maintaining consistent operational workflows.

+

Ultimately, the goal of the platform is to make production-scale LLM deployment as seamless and reliable as traditional software deployment—allowing teams to focus on building intelligent applications rather than managing infrastructure complexity. By combining lifecycle automation, runtime optimization, and deep observability, the LLM Inference Framework provides a scalable foundation for delivering fast, cost-efficient, and production-ready LLM experiences.

+

Future Explorations

+

While we have achieved significant milestones in latency and throughput, the landscape of GenAI is evolving rapidly. Our roadmap focuses on increasing flexibility, reducing costs, and enhancing reliability for enterprise-grade workloads. Here is what we are building next:

+
    +
  • TPU Support: To diversify our hardware supply chain and further optimize cost-per-token, we are evaluating Google Cloud TPUs to bake it into our platform. By leveraging the JAX and PyTorch/XLA ecosystems, we aim to unlock the massive throughput potential of TPU v5e chips, particularly for our open-source Llama models. This will allow the hardware profiler to dynamically choose between NVIDIA GPUs and Google TPUs based on real-time availability and price-performance metrics.
  • +
  • Multi-LoRA Serving (Serverless Experience): Currently, deploying a fine-tuned model requires a dedicated GPU. We are building support for Multi-LoRA serving, which will allow us to serve hundreds of unique, fine-tuned adapters on top of a single frozen base model. This will drastically reduce costs for multi-tenant applications, enabling a "serverless" experience where specific fine-tunes are hot-swapped instantly per request.
  • +
  • Spot Instance Orchestration: To further optimize cloud costs, we are developing fault-tolerant mechanisms to run inference workloads on Spot Instances. By implementing aggressive checkpointing and seamless request draining, we aim to leverage cheaper, preemptible compute capacity without interrupting the user's streaming experience.
  • +
  • Semantic Caching Layer: We plan to move beyond standard Prefix Caching to implement Semantic Caching. By using a vector database to fetch responses for semantically similar queries (e.g., "How do I reset my password?" vs. "Password reset steps"), we can bypass the GPU entirely for repetitive queries, reducing latency to near-zero.
  • +
  • Context-Aware Autoscaling: Standard CPU/GPU utilization metrics are often insufficient signals for scaling LLMs. We are working on KV-cache pressure metrics for autoscaling. This ensures that we scale out before the memory fills up, preventing eviction-based slowdowns during traffic spikes.
  • +
  • Online Evaluation & Guardrails: We are integrating a lightweight "Trust Layer" into the proxy. This will allow for low-latency input/output filtering (Guardrails) and asynchronous "LLM-as-a-Judge" evaluation pipelines to monitor response quality in production, not just system health.
  • +
]]>
+ model-inference + embedding-search + mlplatform + meesho + bharatmlstack +
+ + <![CDATA[Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)]]> + https://meesho.github.io/BharatMLStack/blog/post-two + https://meesho.github.io/BharatMLStack/blog/post-two + Mon, 10 Apr 2023 00:00:00 GMT + + BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

]]>
+ inferflow + interaction-store + mlplatform + meesho + bharatmlstack +
<![CDATA[Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)]]> https://meesho.github.io/BharatMLStack/blog/post-one https://meesho.github.io/BharatMLStack/blog/post-one Tue, 15 Nov 2022 00:00:00 GMT - BharatMLStack

+ BharatMLStack

The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform

It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home:

"Why are we still crunching data for Monthly Active Users (MAU) when the next day it’s all about Daily Active Users (DAU)?"

diff --git a/docs/blog/tags/bharatmlstack/index.html b/docs/blog/tags/bharatmlstack/index.html new file mode 100644 index 00000000..9bf61277 --- /dev/null +++ b/docs/blog/tags/bharatmlstack/index.html @@ -0,0 +1,360 @@ + + + + + +4 posts tagged with "bharatmlstack" | BharatMLStack + + + + + + + + +

4 posts tagged with "bharatmlstack"

View All Tags

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

· 5 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

· 7 min read
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

+ + \ No newline at end of file diff --git a/docs/blog/tags/embedding-search/index.html b/docs/blog/tags/embedding-search/index.html new file mode 100644 index 00000000..33570fb8 --- /dev/null +++ b/docs/blog/tags/embedding-search/index.html @@ -0,0 +1,93 @@ + + + + + +One post tagged with "embedding-search" | BharatMLStack + + + + + + + + +

One post tagged with "embedding-search"

View All Tags

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

+ + \ No newline at end of file diff --git a/docs/blog/tags/index.html b/docs/blog/tags/index.html index 01854bc7..c5d991bf 100644 --- a/docs/blog/tags/index.html +++ b/docs/blog/tags/index.html @@ -4,14 +4,14 @@ Tags | BharatMLStack - - - + + + - + \ No newline at end of file diff --git a/docs/blog/tags/inferflow/index.html b/docs/blog/tags/inferflow/index.html new file mode 100644 index 00000000..78e772c0 --- /dev/null +++ b/docs/blog/tags/inferflow/index.html @@ -0,0 +1,144 @@ + + + + + +One post tagged with "inferflow" | BharatMLStack + + + + + + + + +

One post tagged with "inferflow"

View All Tags

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

· 7 min read
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

+ + \ No newline at end of file diff --git a/docs/blog/tags/interaction-store/index.html b/docs/blog/tags/interaction-store/index.html index 363b22a3..dfb1374a 100644 --- a/docs/blog/tags/interaction-store/index.html +++ b/docs/blog/tags/interaction-store/index.html @@ -3,16 +3,143 @@ -One post tagged with "interaction-store" | BharatMLStack - - - +2 posts tagged with "interaction-store" | BharatMLStack + + + -

One post tagged with "interaction-store"

View All Tags

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
SDE-III @ Meesho
Bhawani Singh
SDE-IV @ Meesho
Jigar Dave
SDE-IV @ Meesho

BharatMLStack

+

2 posts tagged with "interaction-store"

View All Tags

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

· 7 min read
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
Lead Software Engineer @ Meesho
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho

BharatMLStack

The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform

It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home:

"Why are we still crunching data for Monthly Active Users (MAU) when the next day it’s all about Daily Active Users (DAU)?"

@@ -204,6 +331,6 @@

+

This foundational work laid the path for a reliable and scalable real-time feature serving layer.

\ No newline at end of file diff --git a/docs/blog/tags/llm/index.html b/docs/blog/tags/llm/index.html new file mode 100644 index 00000000..f13ce660 --- /dev/null +++ b/docs/blog/tags/llm/index.html @@ -0,0 +1,157 @@ + + + + + +2 posts tagged with "llm" | BharatMLStack + + + + + + + + +

2 posts tagged with "llm"

View All Tags

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

· 5 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

+ + \ No newline at end of file diff --git a/docs/blog/tags/meesho/index.html b/docs/blog/tags/meesho/index.html index f74846f7..373157df 100644 --- a/docs/blog/tags/meesho/index.html +++ b/docs/blog/tags/meesho/index.html @@ -3,16 +3,359 @@ -One post tagged with "meesho" | BharatMLStack - - - +5 posts tagged with "meesho" | BharatMLStack + + + -

One post tagged with "meesho"

View All Tags

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
SDE-III @ Meesho
Bhawani Singh
SDE-IV @ Meesho
Jigar Dave
SDE-IV @ Meesho

BharatMLStack

+

5 posts tagged with "meesho"

View All Tags

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

· 5 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

· 7 min read
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
Lead Software Engineer @ Meesho
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho

BharatMLStack

The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform

It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home:

"Why are we still crunching data for Monthly Active Users (MAU) when the next day it’s all about Daily Active Users (DAU)?"

@@ -204,6 +547,6 @@

+

This foundational work laid the path for a reliable and scalable real-time feature serving layer.

\ No newline at end of file diff --git a/docs/blog/tags/mlplatform/index.html b/docs/blog/tags/mlplatform/index.html index ec91f7f9..ce749519 100644 --- a/docs/blog/tags/mlplatform/index.html +++ b/docs/blog/tags/mlplatform/index.html @@ -3,16 +3,359 @@ -One post tagged with "mlplatform" | BharatMLStack - - - +5 posts tagged with "mlplatform" | BharatMLStack + + + -

One post tagged with "mlplatform"

View All Tags

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
SDE-III @ Meesho
Bhawani Singh
SDE-IV @ Meesho
Jigar Dave
SDE-IV @ Meesho

BharatMLStack

+

5 posts tagged with "mlplatform"

View All Tags

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

· 5 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

· 7 min read
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+

Building Meesho’s ML Platform: Lessons from the First-Gen System (Part 2)

+

By late 2022, we had built something we were truly proud of—a real-time ML serving system with a DAG-based executor, a feature store, and an interaction store powering key ranking and personalization models. It was a major milestone, the culmination of months of effort from data scientists, ML engineers, and backend teams. Our system was live, and we were ready to push the boundaries of experimentation. +And it worked. Mostly. +But soon, cracks appeared. Every new model needed custom feature retrieval logic, DAGs became dense and unmanageable, and scaling turned into a constant firefight. Costs surged, and infra bottlenecks slowed experimentation. Our system worked, but it wasn’t built for scale. +This is the story of how we tackled these challenges—building Inferflow for seamless feature retrieval, optimizing real-time infra, and cutting costs while scaling to millions of QPS.

+

The Cost of Success

+

Every new Ranker model required its own feature set, often pulling from different entities. Each addition meant:

+
    +
  • Adding new DAG nodes in IOP
  • +
  • Writing custom logic to fetch features from multiple sources (e.g., user, product, user × category)
  • +
  • Inferring intermediate features (e.g., extracting category from a product to fetch user × category data)
  • +
  • Optimizing I/O and dealing with the inevitable bugs
  • +
+

What began as clean DAGs soon turned into a tangled web of cross-dependent graphs. Every experimentation cycle meant new nodes, new dependencies, and slower iterations.

+

Scaling Pains (and Cassandra’s Limits)

+

At some point, we were hitting:

+
    +
  • 250–300K reads/sec
  • +
  • 1M writes/sec (during lean hours)
  • +
+

All of this ran on Cassandra. While its distributed architecture had been proven in production, operating large-scale clusters came with considerable infrastructure overhead. Our proof-of-concept (POC) demonstrated throughput of around 100K ops/sec, but as we scaled further, the challenges grew. Ensuring node health, optimizing compaction, and maintaining storage balance became increasingly demanding. We also observed latency spikes under heavy load, alongside a sharp increase in total cost of ownership.

+

Interaction Store Woes

+

Our interaction store was another ticking time bomb:

+
    +
  • 🚨 Clusters kept growing in size and cost
  • +
  • 🚨 Latency spikes became increasingly frequent
  • +
  • 🚨 The DMC proxy occasionally lost locality of nodes against shards, causing cross-node communication and degraded performance
  • +
+

Each time this happened, we had to manually rebalance shards just to restore stable latency, making operations unsustainable at scale.

+

Silver Linings

+

Despite the chaos, the system was live and delivering value:

+
    +
  • Real-time infrastructure was in production
  • +
  • Costs dropped by 60–70% compared to offline personalization
  • +
  • New experiments rolled out faster and more successfully
  • +
  • User engagement metrics improved
  • +
+

It wasn’t perfect. It was far from easy. But it worked—and that counted for a lot.

+

Round Two: Solving the Top 2 Bottlenecks

+

With the first-gen system stretched to its limits, we stepped back. Conversations with data scientists and backend engineers revealed three recurring pain points:

+
    +
  1. Coding feature retrieval logic for every new model was becoming unsustainable
  2. +
  3. ML scale was exploding—bringing rising infra costs with it
  4. +
  5. Real-time embedding search was the next big unlock
  6. +
+

We tackled them one by one—starting with the biggest pain point.

+

Problem 1: No-Code Feature Retrieval for Model Inference

+

We noticed a pattern: for personalized ranking, models needed features from:

+
    +
  • ✅ Product
  • +
  • ✅ User
  • +
  • ✅ User × Category
  • +
  • ✅ Region, cohort, sub-category, etc.
  • +
+

A key insight emerged: Entities that contribute features for a model always map back to the context entities.

+

MP Dag

+

With this, we designed Inferflow, a graph-driven feature retrieval and model orchestration system:

+
    +
  • 1️⃣ Inferflow takes a modelId and context IDs (e.g., userId, productIds)
  • +
  • 2️⃣ Loads a pre-defined feature retrieval graph from ZooKeeper
  • +
  • 3️⃣ Executes the graph to resolve entity relationships dynamically
  • +
  • 4️⃣ Outputs a 2D matrix of feature vectors
  • +
+

💡 The impact?

+
    +
  • 🚀 No more custom feature retrieval code—just graph updates in config
  • +
  • 🚀 Feature consistency across experiments
  • +
  • 🚀 Faster iteration cycles for ranking, fraud detection, and beyond
  • +
+

Here’s a visual example that shows how this graph plays out during execution. We further extended the graph to call multiple models as needed: +MP matrix +We built Inferflow in GoLang, using gRPC and Proto3 serialization for efficiency.

+

Problem 2: Scaling Without Breaking the Bank

+

With more ML use cases coming online, we needed to cut costs without compromising performance. We focused on:

+
    +
  • 🔹 Online Feature Store
  • +
  • 🔹 Interaction Store
  • +
+

Optimizing the Online Feature Store

+

Our costs were concentrated in:

+
    +
  • 📌 Database (Cassandra)
  • +
  • 📌 Cache (Redis)
  • +
  • 📌 Running Pods (Java services)
  • +
+

1️⃣ Replacing Cassandra with ScyllaDB +As we hit the operational limits of large Cassandra clusters, we transitioned to ScyllaDB, which offered a seamless drop-in replacement without major code changes. The switch brought significant benefits:

+
    +
  • Throughput: Matched or exceeded Cassandra's performance under identical workloads, even under high concurrency.
  • +
  • Latency: Achieved consistently lower P99 latencies due to ScyllaDB's shard-per-core architecture and better I/O utilization.
  • +
  • Cost Efficiency: Reduced infra footprint by ~70% through better CPU and memory efficiency, eliminating the need for over-provisioned nodes.
  • +
+

2️⃣ Finding the Right Cache +To reduce backend load and improve response times, we benchmarked multiple caching solutions—Memcached, KeyDB, and Dragonfly—under real production traffic patterns. Dragonfly stood out due to its robust architecture and operational simplicity:

+
    +
  • Data Skew Handling: Efficiently managed extreme key hotness and uneven access patterns without performance degradation.
  • +
  • Throughput: Delivered consistently high throughput, even with large object sizes and concurrent access.
  • +
  • Ease of Adoption: Acted as a drop-in Redis replacement with full protocol compatibility—no changes needed in application code or client libraries.
  • +
+

3️⃣ Moving to GoLang for Cost-Efficient Serving +Java services were memory-heavy—so we rewrote core services in GoLang. The results?

+

✅ Memory usage dropped by ~80% +✅ CPU utilization was significantly lower +✅ Faster, more efficient deployments

+

Optimizing the Interaction Store

+

We realized that we only need a user’s interaction data in Redis when they open the app. So, we implemented a tiered storage approach:

+
    +
  • 📌 Cold Tier (ScyllaDB)—Stores click, order, wishlist events
  • +
  • 📌 Hot Tier (Redis)—Loads a user’s past interactions only when they open the app
  • +
+

Smart Offloading: We introduced an inactivity tracker to detect when a user session ends. At that point, Redis data was flushed back to Scylla, reducing unnecessary writes.

+

InteractionStore

+

Results

+
    +
  • Online Feature Store hit 1M QPS for the first time during the 2023 Mega Blockbuster Sale—without breaking a sweat
  • +
  • Infra costs for Online Feature Store and Interaction Store dropped by ~60%
  • +
+

The Catch: Our ML Hosting Hit a Hard Limit

+

While planning for 2023 MBS, we ran into a critical scalability bottleneck:

+
    +
  • ❌ Insufficient compute availability in our region for ML instances
  • +
  • ❌ Couldn’t provision enough nodes to handle real-time inference at scale
  • +
+

This forced us to rethink where and how we hosted our models. The existing setup was great for prototyping—but it wasn’t built to handle the bursty, high-QPS demands of real-world production workloads.

+

Conclusion: From Firefighting to Future-Proofing

+

What started as an ambitious experiment turned into a real-time ML infrastructure that powered millions of requests per second. We battled scaling pains, rethought feature retrieval with Inferflow, and rebuilt our infra stack for efficiency—driving down costs while improving experimentation velocity. +But new challenges emerged. Our infrastructure could now handle scale, but our ML model hosting setup hit a hard limit. With compute availability bottlenecks threatening real-time inference, we faced a critical decision: how do we make model serving as scalable and cost-efficient as the rest of our stack? That’s the next piece of the puzzle—and the story of Part 3.

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
Lead Software Engineer @ Meesho
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho

BharatMLStack

The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform

It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home:

"Why are we still crunching data for Monthly Active Users (MAU) when the next day it’s all about Daily Active Users (DAU)?"

@@ -204,6 +547,6 @@

+

This foundational work laid the path for a reliable and scalable real-time feature serving layer.

\ No newline at end of file diff --git a/docs/blog/tags/model-inference/index.html b/docs/blog/tags/model-inference/index.html new file mode 100644 index 00000000..a630ecd7 --- /dev/null +++ b/docs/blog/tags/model-inference/index.html @@ -0,0 +1,93 @@ + + + + + +One post tagged with "model-inference" | BharatMLStack + + + + + + + + +

One post tagged with "model-inference"

View All Tags

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

+ + \ No newline at end of file diff --git a/docs/blog/tags/online-feature-store/index.html b/docs/blog/tags/online-feature-store/index.html index 6ae561ea..dc3c003b 100644 --- a/docs/blog/tags/online-feature-store/index.html +++ b/docs/blog/tags/online-feature-store/index.html @@ -4,15 +4,15 @@ One post tagged with "online-feature-store" | BharatMLStack - - - + + + -

One post tagged with "online-feature-store"

View All Tags

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
SDE-III @ Meesho
Bhawani Singh
SDE-IV @ Meesho
Jigar Dave
SDE-IV @ Meesho

BharatMLStack

+

One post tagged with "online-feature-store"

View All Tags

Building Meesho’s ML Platform: From Chaos to Cutting-Edge (Part 1)

· 11 min read
Adarsha Das
Senior Architect @ Meesho
Aditya Kumar
Lead Software Engineer @ Meesho
Bhawani Singh
Architect @ Meesho
Jigar Dave
Lead Software Engineer @ Meesho

BharatMLStack

The Genesis: How a Friday Night Roast Sparked Meesho’s ML Platform

It all started in early 2022, over a casual Friday evening catch-up. Like many great origin stories, this one began with friendly banter between a group of backend engineers and data scientists. As the conversations unfolded, so did the roasting—until one remark hit a little too close to home:

"Why are we still crunching data for Monthly Active Users (MAU) when the next day it’s all about Daily Active Users (DAU)?"

@@ -204,6 +204,6 @@

+

This foundational work laid the path for a reliable and scalable real-time feature serving layer.

\ No newline at end of file diff --git a/docs/blog/tags/tensorrt-llm/index.html b/docs/blog/tags/tensorrt-llm/index.html new file mode 100644 index 00000000..f614cf7f --- /dev/null +++ b/docs/blog/tags/tensorrt-llm/index.html @@ -0,0 +1,157 @@ + + + + + +2 posts tagged with "tensorrt-llm" | BharatMLStack + + + + + + + + +

2 posts tagged with "tensorrt-llm"

View All Tags

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

· 5 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

+ + \ No newline at end of file diff --git a/docs/blog/tags/vllm/index.html b/docs/blog/tags/vllm/index.html new file mode 100644 index 00000000..c5ce9278 --- /dev/null +++ b/docs/blog/tags/vllm/index.html @@ -0,0 +1,157 @@ + + + + + +2 posts tagged with "vllm" | BharatMLStack + + + + + + + + +

2 posts tagged with "vllm"

View All Tags

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

· 5 min read
Jaya Kumar
Lead ML Engineer @ Meesho

BharatMLStack

+

LLM Inference Optimization Techniques: Engineering Sub-Second Latency at Scale

+

Raw execution of Large Language Models is inherently expensive and memory-intensive. To achieve sub-second latency and high throughput, we implement a multi-layered optimization strategy that targets the entire inference stack—from memory management to kernel execution.

+

1. Advanced Memory Management: Paged & Prefix KV Caching

+

The most significant bottleneck in LLM inference is not always compute, but memory bandwidth—specifically managing the Key-Value (KV) cache.

+

Paged KV caching

+

Standard caching suffers from fragmentation. We use Paged KV caching, which operates similarly to an operating system's virtual memory: the KV cache is divided into non-contiguous blocks. This lets us serve larger batch sizes without running out of memory.

+

KV cache quantization

+

To further maximize available memory, we implement KV cache quantization (e.g., FP8). By compressing stored attention keys and values from 16-bit to 8-bit, we nearly double the effective context window capacity of the GPU, allowing longer conversations or larger batches without materially degrading quality.

+

Prefix caching (the "voice bot" optimizer)

+

For use cases like GenAI voice bots where the system prompt (e.g., "You are a helpful assistant...") is static across thousands of requests, we enable prefix caching.

+
    +
  • Impact: By reusing pre-computed KV states for common prefixes, we achieve a cache hit rate of ~90%. This reduces Time To First Token (TTFT) by skipping redundant computation of the system prompt.
  • +
+

2. Aggressive Quantization (INT4 AWQ & FP8)

+

Running models in their native 16-bit precision (BF16) restricts maximum batch size and throughput. We use quantization to shrink model weights without sacrificing accuracy.

+

INT4 AWQ (Activation-aware Weight Quantization)

+

For the Llama 3 family, we use AWQ to compress weights to 4 bits. This reduces model size by ~75%, allowing larger models to fit into L4 GPU memory and significantly improving token generation speed.

+

FP8 precision

+

For NVIDIA Hopper (H100) architectures, we are exploring FP8 quantization, leveraging native FP8 tensor cores to accelerate matrix multiplications while maintaining a higher dynamic range than integer quantization.

+
    +
  • Verification: We validate quantized models by comparing dot-product similarity of embeddings against the FP16 baseline, consistently achieving >99% similarity.
  • +
+

3. Kernel Fusion & Custom Plugins

+

To minimize overhead from launching thousands of small GPU operations, we fuse them into monolithic kernels using NVIDIA TensorRT plugins.

+
    +
  • Flash attention & FMHA: We enable Fused Multi-Head Attention (FMHA) combined with flash attention to reduce memory reads/writes.
  • +
  • GEMM plugins: We use specialized GEMM plugins to accelerate transformer linear layers.
  • +
  • Removing input padding: Instead of padding short sequences to match the longest, we remove input padding so the GPU processes only valid tokens.
  • +
+

4. Inflight (Continuous) Batching

+

Traditional static batching waits for all requests in a batch to finish before returning results—so one long response delays everyone else.

+

We implement inflight batching: as soon as one request completes, its slot is freed and filled by a new request from the queue. This keeps GPUs saturated and decouples latency of short queries from long ones.

+

5. Parallelism Strategies: Scaling Beyond One GPU

+

For large models (e.g., 70B+ parameters) that cannot fit into the VRAM of a single GPU, we use parallelism strategies.

+
    +
  • Tensor parallelism (TP): Split weight matrices across multiple GPUs (e.g., 4× L4 or 8× A100). Each GPU computes a shard and outputs are reduced at every layer.
  • +
  • Pipeline parallelism (PP): Split model layers across GPUs to pipeline compute (e.g., while one GPU computes later layers for Request A, another starts early layers for Request B).
  • +
+

6. Speculative Decoding

+

To reduce inter-token latency (ITL), we explore speculative decoding.

+
    +
  • Mechanism: A smaller, faster "draft" model speculatively generates a short token sequence (e.g., 5 tokens).
  • +
  • Verification: The larger target model verifies those tokens in one parallel forward pass. If correct, we effectively generate multiple tokens per large-model step; if not, we discard and regenerate. This is effective for predictable text, improving perceived generation speed.
  • +
+

Few Benchmarks

+

Below are a couple of representative use cases and performance numbers.

+

Search query rewriting

+
    +
  • LLM: Fine-tuned llama-3.2-1B
  • +
  • Input & output token length: ~10–20
  • +
  • Response type: Non-streaming
  • +
+
Inference runtimeHardwareMax requests/secMax p99 latency
TensorRT-LLM4 × L4 GPUs (multi-GPU)100095 ms
TensorRT-LLM1 × A100 40 GB GPU100069 ms
+

Voice bot query

+
    +
  • LLM: Llama-3.1-8B
  • +
  • Input token length: ~1900–2000
  • +
  • Output token length: ~200
  • +
  • Response type: Streaming
  • +
+
Inference runtimeConcurrencyp99 TTFT (ms)p99 ITL (ms)Token throughput (tokens/sec)Request throughput (req/sec)Hardware
TensorRT-LLM136.2722.7845.660.23L4
TensorRT-LLM249.8123.2189.370.45L4
TensorRT-LLM455.3336.62153.390.78L4
TensorRT-LLM866.539.11279.881.47L4
TensorRT-LLM16131.830.39547.82.77L4
TensorRT-LLM32277.2248.02925.74.78L4
TensorRT-LLM64498.5271.621,164.406.2L4
TensorRT-LLM128677.31120.371,445.187.69L4
TensorRT-LLM2561,926.31216.881,600.818.52L4
TensorRT-LLM121.179.24130.050.68A100
TensorRT-LLM225.789.21264.51.35A100
TensorRT-LLM428.5210.99437.692.27A100
TensorRT-LLM834.412.61760.493.96A100
TensorRT-LLM1668.0314.321,343.807.01A100
TensorRT-LLM32185.9616.822,287.3011.92A100
TensorRT-LLM64136.8721.173,625.2218.89A100
TensorRT-LLM128463.7834.154,456.5123.24A100
TensorRT-LLM256890.1259.185,188.2427.05A100
+

Conclusion

+

High-performance LLM inference is fundamentally a systems engineering problem: memory efficiency, kernel execution, batching strategy, and parallelism determine real-world latency and throughput. Techniques such as paged KV caching, aggressive quantization, kernel fusion, and inflight batching improve GPU utilization while reducing latency and memory pressure.

+

These optimizations enable the platform to deliver sub-second responses, sustain high concurrency, and efficiently serve both lightweight and long-context workloads. By continuously optimizing across the full inference stack, we keep LLM serving scalable, cost-efficient, and production-ready for real-time AI applications.

Cracking the Code: Scaling Model Inference & Real-Time Embedding Search

· 4 min read
Aditya Kumar
Lead Software Engineer @ Meesho
Jaya Kumar
Lead ML Engineer @ Meesho
Adarsha Das
Senior Architect @ Meesho

BharatMLStack

+ +

By mid-2023, we had transformed our ML stack—building a real-time feature store, optimizing model retrieval, and fine-tuning ranking. But two critical gaps remained:

+
    +
  • 🔹 Scaling model inference without hitting infrastructure roadblocks
  • +
  • 🔹 Moving embedding search from batch to real-time for candidate generation
  • +
+

Here’s how we tackled these last-mile challenges, broke free from infrastructure constraints, and built a cost-efficient, high-performance system.

+

Breaking Free from the Scalability Ceiling

+

The Model Serving Bottleneck—A Wake-Up Call

+

July 2023. With just months left for the Mega Blockbuster Sale (MBS), we noticed a serious issue—scaling our model-serving infrastructure was taking 10–15 minutes. In real-time ML, that’s an eternity. +In one of our war rooms, we ran a quick experiment:

+
    +
  • 🚀 We deployed an XGBoost model on a self-hosted Triton Inference Server running on a 16-core machine.
  • +
  • 🚀 Fired requests and compared the outputs with our existing cloud-hosted setup.
  • +
  • 🚀 The results matched—perfectly.
  • +
+

That moment changed everything. We prepped a backup Triton setup on EKS, just in case our cloud provider couldn't allocate enough compute resources in time. Luckily, they did—but the seed was planted. +Then in October, just two weeks before MBS, we got an alarming response from our infrastructure team: +"Node availability may be an issue." +With no time to waste, we moved 30% of real-time ML traffic to our self-hosted Triton cluster. The results?

+
    +
  • ✅ p99 latency dropped from 90–100ms to 30–40ms
  • +
  • ✅ Triton handled significantly higher throughput on fewer resources
  • +
  • ✅ No model changes were needed
  • +
+

MBS ran without a hitch, proving that self-hosted inference was the way forward.

+

Scaling Triton on GKE

+

This left us with two choices:

+
    +
  • 1️⃣ Port models to a managed cloud inference service, investing time in learning a new deployment stack
  • +
  • 2️⃣ Scale our existing Triton setup on GKE, optimizing for cost and performance
  • +
+

We went with Option 2—and it slashed inference costs to 35% of what we previously paid, while giving us full control over scaling and optimizations.

+

Fixing the Cold Start Problem

+

As we onboarded more deep learning (DL) models, we hit a new bottleneck, new inference pods took 7–9 minutes to spin up.

+

After profiling, we found the culprits:

+
    +
  • Triton’s base image—a massive 5GB
  • +
  • Model binaries—often 1GB+
  • +
  • Startup delay—mostly due to downloading and initializing these assets
  • +
+

To fix this, we built a lightweight Triton image, stripping unused components and shrinking the size to 900MB. This cut cold start times drastically, making auto-scaling faster and smoother.

+

Embedding Search: The Last Piece of the Puzzle

+

By mid-2023, most of our ML stack had gone real-time—except for Candidate Generation (CG), which still ran in batch mode. To truly power real-time recommendations, we needed an online embedding search system.

+

Choosing the Right Vector Database

+

We benchmarked three production-ready vector DBs across key parameters:

+
    +
  • Milvus
  • +
  • Qdrant
  • +
  • Weaviate
  • +
+

After extensive POCs, Qdrant stood out for its:

+
    +
  • ✅ Blazing-fast search latency on high-dimensional vectors
  • +
  • ✅ Efficient memory usage, crucial for in-memory workloads
  • +
  • ✅ Support for upserts and soft deletes, vital for Ads use cases
  • +
  • ✅ gRPC + REST APIs, making integration seamless
  • +
  • ✅ Powerful filtering, allowing fine-tuned retrieval (e.g., filtering Ads by category, active status, etc.)
  • +
+

At its core, Qdrant uses HNSW indexing, delivering both high recall and low-latency nearest-neighbor search—a perfect fit for our needs.

+

Embedding Freshness & Real-Time Updates

+

To ensure embeddings stayed up to date, we built a dual ingestion pipeline:

+
    +
  • 📌 Daily Refresh: A bulk pipeline updated embeddings overnight
  • +
  • 📌 Real-Time Updates: Ads events triggered immediate upserts/deletes
  • +
+

This setup powered real-time "Similar Products" recommendations on the product page and became the foundation for Ads Candidate Generation, ensuring the right ads surfaced in milliseconds.

+

Skye

+

Final Takeaways: Scaling Smartly for Real-Time ML

+
    +
  • 🚀 Self-hosted inference on Triton gave us lower cost, faster scaling, and better performance than managed services
  • +
  • 🚀 Building a custom Triton image reduced cold starts, improving responsiveness
  • +
  • 🚀 Qdrant-based embedding search enabled real-time personalization at scale
  • +
  • 🚀 Real-time updates for embeddings unlocked dynamic, up-to-date recommendations
  • +
+

By early 2024, Meesho’s ML stack had evolved into a fully real-time, scalable, and cost-efficient system, setting the foundation for even bigger leaps ahead.

+ + \ No newline at end of file diff --git a/docs/category/go-sdk/index.html b/docs/category/go-sdk/index.html index 8e58e52a..56e2e431 100644 --- a/docs/category/go-sdk/index.html +++ b/docs/category/go-sdk/index.html @@ -4,14 +4,14 @@ Go SDK | BharatMLStack - - - + + + -

Go SDK

Go SDK for BharatML Stack. Provides Go client libraries and packages for interacting with the online feature store, including gRPC clients and protocol buffer definitions.

+

Go SDK

Go SDK for BharatML Stack. Provides Go client libraries and packages for interacting with the online feature store, including gRPC clients and protocol buffer definitions.

\ No newline at end of file diff --git a/docs/category/inferflow/index.html b/docs/category/inferflow/index.html new file mode 100644 index 00000000..054fa36f --- /dev/null +++ b/docs/category/inferflow/index.html @@ -0,0 +1,17 @@ + + + + + +Inferflow | BharatMLStack + + + + + + + + +

Inferflow

Inferflow is a graph-driven feature retrieval and model inference orchestration engine. It dynamically resolves entity relationships via configurable DAGs, retrieves features from the Online Feature Store, and orchestrates model scoring — all without custom code.

+ + \ No newline at end of file diff --git a/docs/category/numerix/index.html b/docs/category/numerix/index.html new file mode 100644 index 00000000..c4b73d39 --- /dev/null +++ b/docs/category/numerix/index.html @@ -0,0 +1,17 @@ + + + + + +Numerix | BharatMLStack + + + + + + + + +

Numerix

Numerix is a mathematical compute engine for BharatML Stack. It is used to perform mathematical operations on matrices and vectors.

+ + \ No newline at end of file diff --git a/docs/category/online-feature-store/index.html b/docs/category/online-feature-store/index.html index 8b52edc4..75ca8c79 100644 --- a/docs/category/online-feature-store/index.html +++ b/docs/category/online-feature-store/index.html @@ -4,14 +4,14 @@ Online Feature Store | BharatMLStack - - - + + + -

Online Feature Store

Online-feature-store is a high-performance, scalable, and production-grade feature store built for modern machine learning systems. It supports both real-time and batch workflows, with a strong emphasis on developer experience, system observability, and low-latency feature retrieval.

+

Online Feature Store

Online-feature-store is a high-performance, scalable, and production-grade feature store built for modern machine learning systems. It supports both real-time and batch workflows, with a strong emphasis on developer experience, system observability, and low-latency feature retrieval.

\ No newline at end of file diff --git a/docs/category/python-sdk/index.html b/docs/category/python-sdk/index.html index 4d4ac5de..cdea2a59 100644 --- a/docs/category/python-sdk/index.html +++ b/docs/category/python-sdk/index.html @@ -4,14 +4,14 @@ Python SDK | BharatMLStack - - - + + + -

Python SDK

Python SDK for BharatML Stack. Provides Python client libraries and utilities for interacting with the online feature store, including gRPC clients, Spark integration, and common utilities.

+

Python SDK

Python SDK for BharatML Stack. Provides Python client libraries and utilities for interacting with the online feature store, including gRPC clients, Spark integration, and common utilities.

\ No newline at end of file diff --git a/docs/category/quick-start/index.html b/docs/category/quick-start/index.html index 9e6dc2d1..a04bd2a8 100644 --- a/docs/category/quick-start/index.html +++ b/docs/category/quick-start/index.html @@ -4,14 +4,14 @@ Quick Start | BharatMLStack - - - + + + -

Quick Start

Quick Start guide for BharatML Stack. Get up and running quickly with step-by-step instructions, sample data, and Docker Compose setup for local development and testing.

+

Quick Start

Quick Start guide for BharatML Stack. Get up and running quickly with step-by-step instructions, sample data, and Docker Compose setup for local development and testing.

\ No newline at end of file diff --git a/docs/category/sdks/index.html b/docs/category/sdks/index.html index f6c91986..d9e7c141 100644 --- a/docs/category/sdks/index.html +++ b/docs/category/sdks/index.html @@ -4,14 +4,14 @@ SDKs | BharatMLStack - - - + + + -

SDKs

Software Development Kits (SDKs) for BharatML Stack. Includes client libraries for Go and Python to interact with the online feature store and other platform components.

+

SDKs

Software Development Kits (SDKs) for BharatML Stack. Includes client libraries for Go and Python to interact with the online feature store and other platform components.

\ No newline at end of file diff --git a/docs/category/trufflebox-ui/index.html b/docs/category/trufflebox-ui/index.html index be9543fc..192feb18 100644 --- a/docs/category/trufflebox-ui/index.html +++ b/docs/category/trufflebox-ui/index.html @@ -4,14 +4,14 @@ Trufflebox UI | BharatMLStack - - - + + + -

Trufflebox UI

Trufflebox UI is a modern, feature rich UI framework for supporting MLOps. It supports Feature catalog, management, user managemnet and other adminops

+

Trufflebox UI

Trufflebox UI is a modern, feature rich UI framework for supporting MLOps. It supports Feature catalog, management, user managemnet and other adminops

\ No newline at end of file diff --git a/docs/category/v100/index.html b/docs/category/v100/index.html index f3681e85..65f65f90 100644 --- a/docs/category/v100/index.html +++ b/docs/category/v100/index.html @@ -3,15 +3,15 @@ -v1.0.0 | BharatMLStack - - - +v1.0.0 | BharatMLStack + + + -

v1.0.0

Python SDK v1.0.0 documentation for BharatML Stack. Contains API reference, usage guides, and examples for the Python client libraries including gRPC feature client, Spark feature push client, and common utilities.

+ \ No newline at end of file diff --git a/docs/img/v1.0.0-inferflow-arch.png b/docs/img/v1.0.0-inferflow-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..acad4888cdc3e82a607039764b2283fa826daba9 GIT binary patch literal 241092 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�>JrhJPH=NbB|dPMD1LlzPiD8`~?aQSSXb_nuDX` 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 ` zfTAa6toF@zKN4)r@1Lv8g4QI>6&X9lvpufRQ*% z9MBic5y-$bEUnWmO?nqoE!^`H41QGc2FQ*zfhj$EPEIp3#fGK*BG&Mg-?=HiII?ff z4jAOeaB__|c${~RSAW!TPFA)3(W=?C+WF``u2GRz3Hg5L$t=mRf0nmja0{nOzI*`s zp@1YdoB(=*KDZq)Nt)!{FwWLTWWd$ReRVpqY#mdgq!L1b<+k!XjoJIcp0h@d4wGt6P9~zOixwrPn*que`G6xteq* zU^}wdsrwC~62$B=y&U=2R&OG=Ae*xeByFL6;@XRBTR$O<~lNXQa;4OsIP z=X$!2vZzVi6u?LbR`ZAcfCoJ&W^h%33dTMwa^-w7B=fT%| zgM55Ub#C3g>YyH>?R5ZJRWwM4R2!q*qw13P5^Lw)#T3C1%#8fmViF=Il|gYkypRCt z&1if89q=sUnY8wwsUYv@s1|((x-Ow%N7qwg+`?()L2-6e8R)ND=FGFXwZ&<9d0SY! zA<*Arf046IHa7hLn@m7020$2`eEj_S1K$m6uo<(ai?)K4_Q|@c6wm4ET{c9+*WyVb zm%!q{peM5PR!__VzfJWWNc{0^F>2Ek-r15GQ1clmpOA+NZ1dZ$2V=AA)_D$(X*?t4 zIqlhOAnoHBi8=+VJ3>N^xK2IW(8#fwGN_O=aKJQf0)6eL!$} z+AGIE;&htk={jM%m%8LSKmR>k!A(C#JVf$r9Mb}Ul5uFK0Bxx8T8E-N)VQmvI)Hbz zaDqWUd>LXoP0Iam7%IarRxDeS&OK<{Dbbq`*V~{~+N!b`d9V^jUG&sX7o;7qQ0g}u z(X7Q*^R9%<&(JAj3a@Gge_&<=yg)wd^$)n;!4zZ5=%|V;WGCoNV|nxYC6832Ad}tQ zy4;u@r?Y(@5qi_*lrglRtZ0-_=vhpHmMEFKv@jX(YhRL~tnc+u`DfTJbP~R$3BRy${dW4!*9^*EuTl0~faeqnC5^#Ek8FOR z`&pTSHXY?l;#5^A?Q1S9bF{pFTk4*~xd(=W91Y2xv79$_>Rlg;a1%Rb30!T*G|c4S zwnWZDKm>DnpjU#2GW)UBZ^SNumF3ODwk9OEkr<R7I#HS5R31Goc)s(d)N%sVuGAct5cJN&su^W~zAB?_u;|`I3vqqyi;IO6qQ3v8*~_QceB&mIMmfHR-KJTmtp4=x3?1w~ zAOkW|zz%GMV+kcgNQg5pdVaw^{+J-om3_W5lSZs^S)sAQ7Ai^wK!>0W&Um$lk%k9{ zb*N6DU?2ur>zB_MFOQ(HiYhcZv0x{fLV&NqM?m0&2(VX}OUl2)f(^oeoGqKmaAA@#RXA*hGDOGPRPg-D>~GI|lq$9-oZ7+Ls?H)D}D{1hIV8 zxHau0J`-ap!|NHux

cAw&>y6pnUyo4&r3J3wx14@8CAa{>a6$(@ELb4l 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 -BharatMLStack - Open Source ML Infrastructure | BharatMLStack - - - +BharatMLStack - Open Source ML Infrastructure | BharatMLStack + + + -
BharatMLStack Logo

Welcome to BharatMLStack

Open source, end-to-end ML infrastructure stack built for scale, speed, and simplicity.

Sub-10msP99 Latency
1M+ RPSTested Capacity
Multi-DBSupport

Online Feature Store

High-performance, production-ready feature serving for real-time ML inference

🚀

High-Performance Feature Store

Sub-10ms P99 latency and 1M+ RPS capacity. Built for real-time ML inference with custom PSDB serialization format that outperforms Protocol Buffers and Apache Arrow.

Production-Ready ML Infrastructure

Multi-database backends (Scylla, Dragonfly, Redis), comprehensive monitoring, and enterprise-grade features. Deploy with confidence using battle-tested components.

🛠️

Developer-First Experience

Multi-language SDKs (Go, Python), gRPC APIs, and extensive documentation. From data scientists, ML engineers to backend engineers, everyone gets tools they love.

Built for India's Scale

BharatMLStack is a comprehensive, production-ready machine learning infrastructure platform designed to democratize ML capabilities across India and beyond. Our mission is to provide a robust, scalable, and accessible ML stack that empowers organizations to build, deploy, and manage machine learning solutions at massive scale.

Explore Online Feature Store →

🏆 Key Achievements

  • ✅ Sub-10ms P99 latency for real-time inference
  • ✅ 1M+ RPS tested with 100 IDs per request
  • ✅ PSDB format outperforms Proto3 & Arrow
  • ✅ Multi-database: Scylla, Dragonfly, Redis
  • ✅ Production-ready with comprehensive monitoring

Trufflebox UI

Modern, feature-rich UI framework for comprehensive MLOps management

📋

Feature Catalog & Management

Comprehensive feature catalog with metadata management, versioning, and governance. Organize and discover features across your ML platform with ease.

👥

User Management & Admin Ops

Role-based access control, user authentication, and administrative operations. Secure your ML platform with enterprise-grade user management capabilities.

🎨

Modern UI Framework

Intuitive, responsive web interface built with modern web technologies. Streamline MLOps workflows with beautiful and functional user experiences.

Modern MLOps Management

Trufflebox UI provides a comprehensive, modern web interface for managing your entire ML infrastructure. Built with cutting-edge web technologies, it delivers an intuitive experience for feature management, user administration, and operational oversight. Streamline your MLOps workflows with enterprise-grade UI components.

Explore Trufflebox UI →

🎨 UI Features

  • ✅ Comprehensive feature catalog & discovery
  • ✅ Role-based access control & user management
  • ✅ Job, Store, Admin Ops management
  • ✅ Approval flow for everything
  • ✅ Responsive design for desktop & mobile

SDKs

Developer-friendly client libraries and APIs for seamless platform integration

🌐

Multi-Language Support

Native SDKs for Go and Python with idiomatic APIs. Choose the language that fits your team's expertise and existing infrastructure.

🔗

gRPC & REST APIs

High-performance gRPC clients and REST APIs for seamless integration. Built-in support for streaming, batching, and async operations.

Spark Integration

Native Apache Spark integration for batch feature processing and ingestion. Scale your feature engineering workflows with distributed computing power.

Developer-First Integration

Our SDKs are designed with developers in mind, providing idiomatic APIs for Go and Python that feel natural in your existing codebase. Whether you're building microservices, data pipelines, or ML applications, our SDKs provide the tools you need for seamless integration with BharatMLStack's powerful infrastructure.

Explore SDKs →

🛠️ Developer Tools

  • ✅ Native Go & Python SDKs with type safety
  • ✅ High-performance gRPC
  • ✅ Apache Spark integration for publishing features
+
BharatMLStack Logo

Welcome to BharatMLStack

Open source, end-to-end ML infrastructure stack built for scale, speed, and simplicity.

Sub-10msP99 Latency
1M+ RPSTested Capacity
Multi-DBSupport

Online Feature Store

High-performance, production-ready feature serving for real-time ML inference

🚀

High-Performance Feature Store

Sub-10ms P99 latency and 1M+ RPS capacity. Built for real-time ML inference with custom PSDB serialization format that outperforms Protocol Buffers and Apache Arrow.

Production-Ready ML Infrastructure

Multi-database backends (Scylla, Dragonfly, Redis), comprehensive monitoring, and enterprise-grade features. Deploy with confidence using battle-tested components.

🛠️

Developer-First Experience

Multi-language SDKs (Go, Python), gRPC APIs, and extensive documentation. From data scientists, ML engineers to backend engineers, everyone gets tools they love.

Built for India's Scale

BharatMLStack is a comprehensive, production-ready machine learning infrastructure platform designed to democratize ML capabilities across India and beyond. Our mission is to provide a robust, scalable, and accessible ML stack that empowers organizations to build, deploy, and manage machine learning solutions at massive scale.

Explore Online Feature Store →

🏆 Key Achievements

  • ✅ Sub-10ms P99 latency for real-time inference
  • ✅ 1M+ RPS tested with 100 IDs per request
  • ✅ PSDB format outperforms Proto3 & Arrow
  • ✅ Multi-database: Scylla, Dragonfly, Redis
  • ✅ Production-ready with comprehensive monitoring

Trufflebox UI

Modern, feature-rich UI framework for comprehensive MLOps management

📋

Feature Catalog & Management

Comprehensive feature catalog with metadata management, versioning, and governance. Organize and discover features across your ML platform with ease.

👥

User Management & Admin Ops

Role-based access control, user authentication, and administrative operations. Secure your ML platform with enterprise-grade user management capabilities.

🎨

Modern UI Framework

Intuitive, responsive web interface built with modern web technologies. Streamline MLOps workflows with beautiful and functional user experiences.

Modern MLOps Management

Trufflebox UI provides a comprehensive, modern web interface for managing your entire ML infrastructure. Built with cutting-edge web technologies, it delivers an intuitive experience for feature management, user administration, and operational oversight. Streamline your MLOps workflows with enterprise-grade UI components.

Explore Trufflebox UI →

🎨 UI Features

  • ✅ Comprehensive feature catalog & discovery
  • ✅ Role-based access control & user management
  • ✅ Job, Store, Admin Ops management
  • ✅ Approval flow for everything
  • ✅ Responsive design for desktop & mobile

SDKs

Developer-friendly client libraries and APIs for seamless platform integration

🌐

Multi-Language Support

Native SDKs for Go and Python with idiomatic APIs. Choose the language that fits your team's expertise and existing infrastructure.

🔗

gRPC & REST APIs

High-performance gRPC clients and REST APIs for seamless integration. Built-in support for streaming, batching, and async operations.

Spark Integration

Native Apache Spark integration for batch feature processing and ingestion. Scale your feature engineering workflows with distributed computing power.

Developer-First Integration

Our SDKs are designed with developers in mind, providing idiomatic APIs for Go and Python that feel natural in your existing codebase. Whether you're building microservices, data pipelines, or ML applications, our SDKs provide the tools you need for seamless integration with BharatMLStack's powerful infrastructure.

Explore SDKs →

🛠️ Developer Tools

  • ✅ Native Go & Python SDKs with type safety
  • ✅ High-performance gRPC
  • ✅ Apache Spark integration for publishing features

Numerix

Numerix is a mathematical compute engine for BharatML Stack. It is used to perform mathematical operations on matrices and vectors.

Explore Numerix →

🛠️ Numerix Features

  • ✅ Postfix expression evaluation
  • ✅ Vectorized math operations
  • ✅ Typed evaluation
  • ✅ Compiler-assisted SIMD
  • ✅ ARM & AMD support
  • ✅ Multi-arch builds
  • ✅ Deterministic runtime
\ No newline at end of file diff --git a/docs/inferflow/v1.0.0/architecture/index.html b/docs/inferflow/v1.0.0/architecture/index.html new file mode 100644 index 00000000..0860f87d --- /dev/null +++ b/docs/inferflow/v1.0.0/architecture/index.html @@ -0,0 +1,171 @@ + + + + + +Architecture | BharatMLStack + + + + + + + + +

BharatMLStack - Inferflow

+

Inferflow is part of BharatMLStack, a graph-driven feature retrieval and model inference orchestration engine built in Go. It eliminates the need for custom feature retrieval code by using configurable DAG topologies to dynamically resolve entity relationships, fetch features from the Online Feature Store, and orchestrate model scoring — all driven by configuration stored in etcd.

+
+

Overview

+

In a typical ML serving pipeline, every new model requires bespoke code to:

+
    +
  • Fetch features from multiple entities (user, product, user x category, etc.)
  • +
  • Infer intermediate entity relationships (e.g., extract category from product to fetch user x category data)
  • +
  • Orchestrate one or more model inference calls
  • +
  • Handle I/O, batching, and error propagation
  • +
+

Inferflow abstracts all of this behind a config-driven DAG executor. Given a model_config_id and context entities (e.g., userId, productIds), it:

+
    +
  1. Loads a pre-defined feature retrieval and inference graph from etcd
  2. +
  3. Executes the graph to resolve entity relationships dynamically
  4. +
  5. Retrieves features from the Online Feature Store (OnFS) in parallel
  6. +
  7. Calls model serving endpoints (Predator) and compute services (Numerix)
  8. +
  9. Returns scored results as a structured response
  10. +
+
+

High-Level Architecture

+

Inferflow Architecture - DAG Topology Executor

+

The diagram shows the internal DAG structure of Inferflow's topology executor. gRPC APIs (Pair, Point, Slate) feed into the DAG, where Feature Init bootstraps the ComponentMatrix. Feature components (FS User, FS Product, FS Region, FS User Cat, FS Region Scat) fetch features from OnFS in parallel and populate columns in the shared 2D Result Matrix. Model components (Model A, Model B) call Predator for inference, and compute components call Numerix for operations like reranking. The entire DAG topology is driven by config loaded from etcd.

+
+

Core Components

+

1. gRPC Server

+

Inferflow exposes its APIs via a gRPC server, with HTTP health endpoints multiplexed on the same port using cmux. The server provides:

+
    +
  • Inferflow APIRetrieveModelScore: entity-based feature retrieval and scoring
  • +
  • Predict APIInferPointWise, InferPairWise, InferSlateWise: structured inference with targets, pairs, and slates
  • +
+

2. DAG Topology Executor

+

The heart of Inferflow. Each model configuration defines a component_dependency map that describes a Directed Acyclic Graph (DAG) of components.

+

Execution model:

+
    +
  • Uses Kahn's algorithm for topological ordering
  • +
  • Components at the same level run concurrently in goroutines
  • +
  • All components share a mutable ComponentMatrix (rows = entity IDs, columns = features/scores)
  • +
  • DAG topologies are cached using Murmur3 hashing with Ristretto cache
  • +
+

Validation:

+
    +
  • Cycle detection via in-degree analysis
  • +
  • Component existence verification against the ComponentProvider
  • +
+

3. Component Types

+

Inferflow defines four types of DAG components:

+
ComponentRoleExternal Dependency
FeatureInitComponentRoot node — initializes the ComponentMatrix with entity IDs and schemaNone
FeatureComponentFetches features from the Online Feature Store for a specific entity typeOnFS (gRPC)
PredatorComponentCalls model serving endpoints for inference scoringPredator / Helix (gRPC)
NumerixComponentCalls compute engine for operations like rerankingNumerix (gRPC)
+

4. ComponentMatrix — The 2D Result Matrix

+

The ComponentMatrix is a shared, mutable 2D data structure that flows through the entire DAG. Every component reads from and writes to this matrix, progressively building a complete feature + score row for each entity.

+

DAG Execution &amp; 2D Matrix Flow

+

How the matrix evolves through the DAG

+

The diagram above illustrates the three execution phases and how the 2D matrix grows at each stage:

+

Phase 1 — Feature Retrieval

+

The init node creates an empty matrix with one row per target entity ID. Feature components then execute — first the top-level entities (entity A, entity B) fetch their features from OnFS and populate their columns (shown as colored blocks). Derived entities (entity C, D, E) resolve their keys from the already-populated columns and add more feature columns. At this point the matrix contains all feature data, with each color representing features from a different entity.

+

The right side of the diagram shows the matrix being decomposed — feature columns from different entities are separated into per-model input groups, selecting only the features each model needs.

+

Phase 2 — Model Invocation

+

Model X and Model Y each receive their decomposed feature slices, call Predator for inference, and write score columns back into the matrix (shown as new colored columns appended to the right). Multiple models can run in parallel if they don't depend on each other's outputs.

+

The scores are then decomposed again to prepare inputs for the compute stage.

+

Phase 3 — Numerix Compute

+

The Score Comb node takes score columns from both models, calls Numerix for a final compute operation (e.g., score combination, reranking), and writes the final score column (shown in dark red) into the matrix. The result is a complete row per entity with all features and all scores.

+

Matrix structure

+
PropertyDescription
RowsOne per target entity ID (e.g., each product being scored)
String columnsHuman-readable values used in responses
Byte columnsBinary-encoded feature values used for model inputs
Column namingentity_label:feature_group:feature_name
+

Each component only reads the columns it needs and writes to its own columns, enabling safe concurrent execution across independent branches of the DAG.

+

For slate-based APIs, a companion SlateData structure holds per-slate matrices and scores, with slate_target_indices mapping slates to rows in the main matrix.

+

5. Configuration Management (etcd)

+

Model configurations are stored in etcd and hot-reloaded via watchers:

+
    +
  • Config paths: /config/inferflow/services/, /model-config
  • +
  • Watch mechanism: etcd watchers trigger ReloadModelConfigMapAndRegisterComponents on any change
  • +
  • On reload: Updates ConfigMap, re-initializes feature schemas, and re-registers DAG components
  • +
+

This means new models or configuration changes go live without redeployment.

+

6. External Integrations

+

Online Feature Store (OnFS)

+
    +
  • gRPC client calling FeatureService.RetrieveFeatures
  • +
  • Batched retrieval with configurable batch size and deadline
  • +
  • Auth via CALLER_ID and CALLER_TOKEN metadata
  • +
+

Predator (Model Serving)

+
    +
  • Uses helix-client for model inference
  • +
  • Supports percentage-based traffic routing across multiple model endpoints
  • +
  • Configurable calibration and batch sizing
  • +
+

Numerix (Compute Engine)

+
    +
  • Uses helix-client Numerix client
  • +
  • RPC: NumerixService.Compute with entity score data
  • +
  • Used for compute operations like reranking
  • +
+

Kafka (Inference Logging)

+
    +
  • Async inference log publishing using segmentio/kafka-go
  • +
  • Supports Proto, Arrow, and Parquet serialization formats
  • +
  • Configurable sampling via LoggingPerc and user-based daily sampling
  • +
+
+

Request Flow

+
1. Client sends gRPC request with model_config_id + entity IDs

2. Load ModelConfig from etcd-backed ConfigMap

3. Adapt proto request → ComponentRequest
(build ComponentMatrix with entity schema)

4. Resolve DAG topology from component_dependency config

5. Execute DAG (Kahn's algorithm, concurrent):

├─ FeatureInitComponent: populate matrix with entity IDs + schema

├─ FeatureComponents (parallel): fetch features from OnFS → fill matrix columns

├─ PredatorComponent: build feature payloads from matrix → call model → write scores

└─ NumerixComponent: read scores from matrix → call compute → write final scores

6. Build response from matrix columns per ResponseConfig

7. (Optional) Async Kafka logging of inference features and scores

8. Return gRPC response to client
+
+

Observability

+

Metrics (StatsD / Telegraf)

+
MetricDescription
inferflow.retrievemodelscore.request.totalTotal RetrieveModelScore requests
inferflow.retrievemodelscore.latencyEnd-to-end latency
inferflow.retrievemodelscore.batch.sizeBatch size per request
predict.infer.request.totalTotal Predict API requests
predict.infer.latencyPredict API latency
inferflow.component.execution.totalPer-component execution count
inferflow.component.execution.latencyPer-component latency
inferflow.component.execution.errorComponent-level errors
inferflow.component.feature.countFeature count per component
inferflow.external.api.request.totalExternal API call count
inferflow.external.api.latencyExternal API latency
inferflow.component.inmemorycache.request.totalCache hit/miss total
inferflow.component.inmemorycache.missCache misses
inferflow.logging.kafka_sentKafka log messages sent
+

Logging

+
    +
  • Structured JSON logging via zerolog
  • +
  • Configurable log levels
  • +
+
+

Deployment

+

Docker

+

Inferflow ships as a multi-stage Docker image:

+
    +
  • Builder: Go 1.19 Alpine with optional Kafka support (librdkafka)
  • +
  • Runtime: Debian 10 slim
  • +
  • Build command: go build -tags musl -ldflags "-extldflags -static" -o server cmd/${module}/main.go
  • +
+

Supported Environments

+
    +
  • Kubernetes (K8s)
  • +
  • Google Kubernetes Engine (GKE)
  • +
  • Amazon EKS
  • +
+

Configuration

+

All configuration is driven via environment variables (loaded by Viper) and etcd. No config files are required at deployment time.

+
+

Target Users

+
UserRole
Data ScientistsDefine model configs and feature retrieval graphs via config — no code needed
ML EngineersOnboard new models by updating etcd config; manage DAG topologies
Backend DevelopersIntegrate via gRPC SDKs for real-time scoring in application services
Platform EngineersDeploy, scale, and monitor Inferflow clusters
+
+

Benefits

+
    +
  • No-code feature retrieval — new models need only a config change, not custom code
  • +
  • Feature consistency — same graph-driven retrieval ensures identical features across experiments
  • +
  • Faster iteration — experiment with new models in minutes, not days
  • +
  • Concurrent execution — DAG components run in parallel for minimal latency
  • +
  • Hot reloading — model config changes via etcd go live without redeployment
  • +
  • Multi-API support — PointWise, PairWise, and SlateWise inference patterns out of the box
  • +
  • Production-grade — built in Go with gRPC, designed for millions of QPS
  • +
+
+

Contributing

+

We welcome contributions from the community! Please see our Contributing Guide for details on how to get started.

+

Community & Support

+ +

License

+

BharatMLStack is open-source software licensed under the BharatMLStack Business Source License 1.1.

+
+
Built with ❤️ for the ML community from Meesho
+
If you find this useful, ⭐️ the repo — your support means the world to us!
+ + \ No newline at end of file diff --git a/docs/inferflow/v1.0.0/configuration/index.html b/docs/inferflow/v1.0.0/configuration/index.html new file mode 100644 index 00000000..7eb8f4d3 --- /dev/null +++ b/docs/inferflow/v1.0.0/configuration/index.html @@ -0,0 +1,108 @@ + + + + + +Configuration Guide | BharatMLStack + + + + + + + + +

Inferflow - Configuration Guide

+

Inferflow is fully config-driven. All model onboarding, feature retrieval logic, DAG topology, and inference behavior are controlled through configuration stored in etcd — with zero code changes required.

+
+

Configuration Overview

+

Inferflow configuration is organized into two layers:

+
    +
  1. Static config — Environment variables loaded at startup (via Viper)
  2. +
  3. Dynamic config — Model configurations stored in etcd, hot-reloaded on change
  4. +
+
+

Static Configuration (Environment Variables)

+

These are set at deployment time and require a restart to change.

+

Server

+
VariableDescriptionExample
APP_PORTgRPC/HTTP server port50051
APP_ENVEnvironment nameproduction
+

etcd

+
VariableDescriptionExample
ETCD_ENDPOINTSComma-separated etcd endpointsetcd-0:2379,etcd-1:2379
ETCD_DIAL_TIMEOUTConnection timeout5s
+

Online Feature Store (OnFS)

+
VariableDescriptionExample
externalServiceOnFs_hostOnFS gRPC hostonfs-api:50051
externalServiceOnFs_callerIdCaller ID for authinferflow
externalServiceOnFs_callerTokenCaller token for auth<token>
externalServiceOnFs_batchSizeBatch size for feature retrieval100
externalServiceOnFs_deadlineRequest deadline200ms
+

Predator (Model Serving)

+
VariableDescriptionExample
externalServicePredator_defaultDeadlineDefault inference deadline100ms
+

Numerix (Compute Engine)

+
VariableDescriptionExample
numerixClientV1_hostNumerix gRPC hostnumerix:50052
numerixClientV1_deadlineRequest deadline100ms
+

Kafka (Inference Logging)

+
VariableDescriptionExample
KafkaBootstrapServersKafka broker addresseskafka-0:9092,kafka-1:9092
KafkaLoggingTopicTopic for inference logsinferflow-logs
+

Metrics (StatsD / Telegraf)

+
VariableDescriptionExample
TELEGRAF_HOSTStatsD hosttelegraf
TELEGRAF_PORTStatsD port8125
+

In-Memory Cache

+
VariableDescriptionExample
CACHE_SIZE_MBCache size in MB512
CACHE_TYPECache implementationfreecache
+
+

Dynamic Configuration (etcd Model Config)

+

Model configurations are stored in etcd and hot-reloaded. Each model is identified by a model_config_id.

+

Config Structure

+
{
"model_config_id_example": {
"dag_execution_config": {
"component_dependency": {
"feature_initializer": ["fs_user", "fs_product"],
"fs_user": ["ranker_model"],
"fs_product": ["ranker_model"],
"ranker_model": []
}
},
"component_config": {
"feature_component_config": {
"fs_user": { ... },
"fs_product": { ... }
},
"predator_component_config": {
"ranker_model": { ... }
},
"numerix_component_config": {},
"cache_enabled": true,
"cache_version": "v1",
"cache_ttl": 300,
"error_logging_percent": 10
},
"response_config": {
"features": ["ranker_model:score"],
"model_schema_perc": 100,
"logging_perc": 5,
"log_features": ["fs_user:profile:age", "ranker_model:score"],
"log_batch_size": 100
}
}
}
+
+

DAG Execution Config

+

Defines the component dependency graph.

+
{
"component_dependency": {
"<parent_component>": ["<child_1>", "<child_2>"],
"<child_1>": ["<grandchild>"],
"<child_2>": ["<grandchild>"],
"<grandchild>": []
}
}
+

Rules:

+
    +
  • The graph must be a valid DAG (no cycles)
  • +
  • Components with no parents (zero in-degree) execute first
  • +
  • Components with empty dependency arrays [] are leaf nodes
  • +
  • All component names must match registered components in the ComponentConfig
  • +
+
+

Feature Component Config

+

Configures how features are fetched from the Online Feature Store.

+
{
"fs_user": {
"fs_keys": {
"schema": ["user_id"],
"col": "context:user:user_id"
},
"fs_request": {
"entity_label": "user",
"feature_groups": [
{
"label": "demographics",
"feature_labels": ["age", "location", "income_bracket"]
},
{
"label": "behavior",
"feature_labels": ["click_rate", "purchase_freq"]
}
]
},
"fs_flatten_resp_keys": ["user_id"],
"col_name_prefix": "user",
"comp_cache_enabled": true,
"comp_cache_ttl": 600,
"composite_id": false
}
}
+
FieldDescription
fs_keysHow to extract lookup keys from the matrix. schema defines key column names; col references a matrix column
fs_requestOnFS query: entity label + feature groups with specific features
fs_flatten_resp_keysKeys to flatten in response mapping
col_name_prefixPrefix for matrix column names (e.g., user:demographics:age)
comp_cache_enabledEnable in-memory caching for this component
comp_cache_ttlCache TTL in seconds
composite_idWhether entity keys are composite
+
+

Predator Component Config

+

Configures model inference endpoints.

+
{
"ranker_model": {
"model_name": "product_ranker_v3",
"model_endpoint": "predator-ranker:8080",
"model_end_points": {
"predator-ranker-v3:8080": 80,
"predator-ranker-v4:8080": 20
},
"deadline": 100,
"batch_size": 50,
"calibration": {
"enabled": false
},
"inputs": {
"feature_map": {
"user:demographics:age": "INT32",
"user:behavior:click_rate": "FP32",
"product:attributes:category_id": "INT32"
}
},
"outputs": {
"score_columns": ["score", "confidence"]
},
"slate_component": false
}
}
+
FieldDescription
model_nameModel identifier on the serving platform
model_endpointPrimary model serving endpoint
model_end_pointsMultiple endpoints with percentage-based traffic routing
deadlineInference timeout in milliseconds
batch_sizeMax items per inference batch
calibrationScore calibration settings
inputs.feature_mapMap of matrix column → data type for model input
outputs.score_columnsColumn names for model output scores
slate_componentIf true, runs per-slate inference
+
+

Numerix Component Config

+

Configures compute operations (e.g., reranking).

+
{
"reranker": {
"score_column": "final_score",
"data_type": "FP32",
"score_mapping": {
"ranker_model:score": "FP32",
"user:behavior:click_rate": "FP32"
},
"compute_id": "diversity_rerank_v1",
"slate_component": false
}
}
+
FieldDescription
score_columnOutput column name for the computed score
data_typeOutput data type
score_mappingMap of matrix columns to include as compute inputs
compute_idIdentifies the compute operation on Numerix
slate_componentIf true, runs per-slate compute
+
+

Response Config

+

Controls what data is returned to the client and what is logged.

+
{
"features": ["ranker_model:score", "reranker:final_score"],
"model_schema_perc": 100,
"logging_perc": 5,
"log_features": [
"user:demographics:age",
"ranker_model:score",
"reranker:final_score"
],
"log_batch_size": 100
}
+
FieldDescription
featuresMatrix columns to include in the gRPC response
model_schema_percPercentage of requests that include full schema in response
logging_percPercentage of requests to send to Kafka for logging
log_featuresSpecific features to include in log messages
log_batch_sizeBatch size for grouped log messages
+
+

Service-Level Config

+

Global settings that apply across all models.

+
{
"v2_logging_type": "proto",
"compression_enabled": false
}
+
FieldValuesDescription
v2_logging_typeproto, arrow, parquetSerialization format for Kafka inference logs
compression_enabledtrue, falseEnable compression for log messages
+
+

Example: Onboarding a New Model

+

To onboard a new ranking model, update the etcd config:

+

Step 1: Define the feature retrieval graph

+
"component_dependency": {
"feature_initializer": ["fs_user", "fs_product", "fs_user_x_category"],
"fs_product": ["fs_user_x_category"],
"fs_user": ["new_ranker"],
"fs_user_x_category": ["new_ranker"],
"new_ranker": []
}
+

Here fs_user_x_category depends on fs_product because it needs the category ID extracted from the product entity to resolve the user x category key.

+

Step 2: Configure each component (feature groups, model endpoints, etc.)

+

Step 3: Push the config to etcd — Inferflow picks it up automatically via watchers.

+

No code changes. No redeployment. The new model is live.

+
+

Contributing

+

We welcome contributions from the community! Please see our Contributing Guide for details on how to get started.

+

Community & Support

+ +

License

+

BharatMLStack is open-source software licensed under the BharatMLStack Business Source License 1.1.

+
+
Built with ❤️ for the ML community from Meesho
+
If you find this useful, ⭐️ the repo — your support means the world to us!
+ + \ No newline at end of file diff --git a/docs/inferflow/v1.0.0/functionalities/index.html b/docs/inferflow/v1.0.0/functionalities/index.html new file mode 100644 index 00000000..6dc7d775 --- /dev/null +++ b/docs/inferflow/v1.0.0/functionalities/index.html @@ -0,0 +1,210 @@ + + + + + +Key Functionalities | BharatMLStack + + + + + + + + +

Inferflow - Key Functionalities

+

Overview

+

Inferflow is a high-performance, config-driven ML inference orchestration engine built in Go. It provides no-code feature retrieval, DAG-based execution, and multi-pattern model inference — enabling ML teams to onboard new models through configuration changes alone.

+
+

Core Capabilities

+

Graph-Driven Feature Retrieval

+

Inferflow's defining feature is its ability to resolve entity relationships and retrieve features through configurable DAG topologies — no custom code required.

+

How it works:

+
    +
  1. A model_config_id maps to a pre-defined DAG of components
  2. +
  3. Context entity IDs (e.g., userId, productIds) are provided at request time
  4. +
  5. The DAG resolves intermediate entity relationships (e.g., extracting category from product to fetch user x category features)
  6. +
  7. Features are fetched in parallel from the Online Feature Store
  8. +
  9. A 2D feature matrix is assembled and passed to model scoring
  10. +
+

Impact:

+
    +
  • New models require only a config update — no code changes
  • +
  • Feature consistency is guaranteed across experiments
  • +
  • Iteration cycles drop from days to minutes
  • +
+

DAG Topology Executor

+

The execution engine uses Kahn's algorithm for topological ordering with concurrent goroutine execution at each level:

+
component_dependency: {
"feature_initializer": ["fs_user", "fs_product"],
"fs_user": ["ranker"],
"fs_product": ["ranker"],
"ranker": ["reranker"],
"reranker": []
}
+

This config defines:

+
    +
  • feature_initializer runs first (zero in-degree)
  • +
  • fs_user and fs_product run in parallel after init
  • +
  • ranker runs after both feature components complete
  • +
  • reranker runs after the ranker
  • +
+

Key properties:

+
    +
  • Cycle detection via in-degree analysis
  • +
  • DAG topologies cached using Murmur3 hashing (Ristretto cache)
  • +
  • Components are registered and resolved via a ComponentProvider
  • +
+
+

Multi-Pattern Inference APIs

+

Inferflow supports three inference patterns via the Predict API, each designed for different ML use cases:

+

PointWise Inference

+

Score each target independently against context features.

+
rpc InferPointWise(PredictRequest) returns (PredictResponse);
+

Use cases: Click-through rate prediction, fraud scoring, relevance ranking

+

Input: Context features + list of targets (e.g., products) +Output: Per-target scores

+

PairWise Inference

+

Score pairs of targets relative to each other.

+
rpc InferPairWise(PredictRequest) returns (PredictResponse);
+

Use cases: Preference learning, comparison-based ranking

+

Input: Context features + targets + pair indices (first/second) +Output: Per-pair scores + optional per-target scores

+

SlateWise Inference

+

Score groups (slates) of targets together, capturing inter-item effects.

+
rpc InferSlateWise(PredictRequest) returns (PredictResponse);
+

Use cases: Whole-page optimization, slate-level reranking, diversity-aware scoring

+

Input: Context features + targets + slate definitions (target indices per slate) +Output: Per-slate scores + optional per-target scores

+
+

Entity & Legacy API

+

RetrieveModelScore

+

The original Inferflow API for entity-based feature retrieval and scoring:

+
service Inferflow {
rpc RetrieveModelScore(InferflowRequestProto) returns (InferflowResponseProto);
}
+

Request structure:

+
FieldDescription
entitiesList of entity types with their IDs and optional inline features
model_config_idIdentifies the model configuration (DAG, components, response format)
tracking_idRequest-level tracing identifier
+

Entity structure:

+
    +
  • entity: Entity type label (e.g., "user", "product")
  • +
  • ids: List of entity IDs
  • +
  • features: Optional inline features (name + per-ID values)
  • +
+
+

Component Types

+

FeatureInitComponent

+

Role: Root DAG node — initializes the shared ComponentMatrix.

+
    +
  • Sets up rows from entity IDs
  • +
  • Populates schema columns (string + byte) for all downstream components
  • +
  • For slate APIs: initializes SlateData with slate_target_indices
  • +
+

FeatureComponent

+

Role: Fetches features from the Online Feature Store (OnFS) for a specific entity type.

+
    +
  • Reads FSKeys from config to extract lookup keys from the matrix
  • +
  • Batches unique entities and calls OnFS via gRPC
  • +
  • Optional in-memory caching keyed by model_id:version:component:entity
  • +
  • Writes binary feature values into matrix byte columns
  • +
+

Column naming convention: entity_label:feature_group:feature_name

+

PredatorComponent

+

Role: Calls model serving endpoints for inference.

+
    +
  • Builds feature payloads from matrix columns with type conversion
  • +
  • Supports percentage-based traffic routing across multiple model endpoints
  • +
  • Handles slate-level inference: per-slate matrix → separate inference → scores to SlateData
  • +
  • Configurable calibration and batch sizing
  • +
+

NumerixComponent

+

Role: Calls the Numerix compute engine for operations like reranking.

+
    +
  • Uses ScoreMapping config to map matrix columns to compute inputs
  • +
  • Writes a single score column back to the matrix
  • +
  • Supports slate mode for per-slate compute operations
  • +
+
+

Feature Retrieval Pipeline

+

Key Resolution

+

Feature components use FSKeys configuration to dynamically resolve entity keys:

+
{
"FSKeys": {
"schema": ["user_id"],
"col": "user:profile:user_id"
}
}
+

The component reads key values from the existing matrix columns, enabling chained entity resolution — e.g., fetch product entity first, extract category, then fetch user x category features.

+

Batched Retrieval

+
    +
  • Features are fetched via FeatureService.RetrieveFeatures gRPC call
  • +
  • Requests are batched by unique entity keys
  • +
  • Configurable batch size and deadline per component
  • +
  • Auth via CALLER_ID and CALLER_TOKEN metadata
  • +
+

In-Memory Caching

+

Optional per-component caching reduces OnFS load:

+
    +
  • Cache key: model_id:cache_version:component_name:entity_key
  • +
  • Configurable TTL per component
  • +
  • Zero-GC-overhead cache implementation available
  • +
  • Cache hit/miss metrics tracked via StatsD
  • +
+
+

Data Types

+

Inferflow supports comprehensive ML data types for feature encoding and model input/output:

+
Data TypeVariantsUsage
Integersint8, int16, int32, int64Categorical encodings, counts, IDs
Floatsfloat8 (e4m3, e5m2), float16, float32, float64Continuous features, embeddings, scores
StringsVariable lengthCategories, metadata
BooleansBit-packedBinary indicators
VectorsAll scalar typesEmbeddings, feature arrays
+

Type conversion is handled by the datatypeconverter package with optimized float8 implementations.

+
+

Inference Logging

+

Inferflow supports async inference logging to Kafka for model monitoring and debugging:

+

Serialization Formats

+
FormatUse Case
ProtoDefault, compact
ArrowColumnar analytics
ParquetLong-term storage, query-friendly
+

Sampling Controls

+
ConfigDescription
LoggingPercPercentage of requests to log (0-100)
LogBatchSizeBatch size for log message grouping
LogFeaturesSpecific features to include in logs
+

Log Content

+

Each InferflowLog message includes:

+
    +
  • user_id, tracking_id, model_config_id
  • +
  • Entity IDs and feature values
  • +
  • Model scores and metadata
  • +
+
+

Configuration Hot-Reload

+

Model configurations are stored in etcd and support live updates without redeployment:

+
    +
  1. Inferflow registers watchers on etcd config paths
  2. +
  3. On config change, watchers trigger ReloadModelConfigMapAndRegisterComponents
  4. +
  5. ConfigMap is updated in memory
  6. +
  7. Feature schemas are re-initialized
  8. +
  9. DAG components are re-registered
  10. +
+

This enables:

+
    +
  • Adding new models in production without restarts
  • +
  • A/B testing with different model configurations
  • +
  • Instant rollback by reverting etcd config
  • +
+
+

Performance Characteristics

+

Concurrency Model

+
    +
  • DAG components at the same level execute concurrently in goroutines
  • +
  • Feature retrieval is parallelized across entity types
  • +
  • External gRPC calls use connection pooling
  • +
+

Memory Efficiency

+
    +
  • Built in Go — significantly lower memory footprint than Java equivalents (~80% reduction)
  • +
  • Object pooling for ComponentMatrix and serialization buffers
  • +
  • In-memory cache with zero-GC-overhead option (freecache)
  • +
+

Serialization

+
    +
  • gRPC with Proto3 for all external communication
  • +
  • Binary feature encoding in the ComponentMatrix for minimal overhead
  • +
  • Configurable compression for Kafka logging
  • +
+
+

Contributing

+

We welcome contributions from the community! Please see our Contributing Guide for details on how to get started.

+

Community & Support

+ +

License

+

BharatMLStack is open-source software licensed under the BharatMLStack Business Source License 1.1.

+
+
Built with ❤️ for the ML community from Meesho
+
If you find this useful, ⭐️ the repo — your support means the world to us!
+ + \ No newline at end of file diff --git a/docs/inferflow/v1.0.0/index.html b/docs/inferflow/v1.0.0/index.html new file mode 100644 index 00000000..63bf06cd --- /dev/null +++ b/docs/inferflow/v1.0.0/index.html @@ -0,0 +1,17 @@ + + + + + +v1.0.0 | BharatMLStack + + + + + + + + + + + \ No newline at end of file diff --git a/docs/inferflow/v1.0.0/release-notes/index.html b/docs/inferflow/v1.0.0/release-notes/index.html new file mode 100644 index 00000000..21c42146 --- /dev/null +++ b/docs/inferflow/v1.0.0/release-notes/index.html @@ -0,0 +1,160 @@ + + + + + +Release Notes | BharatMLStack + + + + + + + + +

Inferflow - Release Notes

+

Version 1.0.0

+

Release Date: June 2025 +Status: General Availability (GA)

+

We're excited to announce the first stable release of Inferflow — a graph-driven feature retrieval and model inference orchestration engine, part of BharatMLStack.

+
+

What's New

+

Config-Driven DAG Executor

+
    +
  • No-code feature retrieval: Onboard new models with config changes only — no custom code required
  • +
  • DAG topology execution: Define component dependency graphs that are executed concurrently using Kahn's algorithm
  • +
  • Hot reload: Model configurations stored in etcd are watched and reloaded live — no redeployment needed
  • +
  • DAG caching: Topologies are cached using Murmur3 hashing with Ristretto for minimal overhead
  • +
+

Multi-Pattern Inference APIs

+

Three structured inference patterns via the Predict API:

+
APIPatternUse Case
InferPointWiseScore each target independentlyCTR prediction, fraud scoring
InferPairWiseScore pairs of targetsPreference learning, comparison ranking
InferSlateWiseScore groups of targets togetherWhole-page optimization, diversity-aware ranking
+

Plus the entity-based RetrieveModelScore API for direct feature retrieval and scoring.

+

Component System

+

Four built-in component types:

+
    +
  • FeatureInitComponent — Initializes the shared ComponentMatrix
  • +
  • FeatureComponent — Fetches features from the Online Feature Store (OnFS)
  • +
  • PredatorComponent — Calls model serving endpoints with percentage-based traffic routing
  • +
  • NumerixComponent — Calls compute engine for operations like reranking
  • +
+

Online Feature Store Integration

+
    +
  • gRPC-based feature retrieval via FeatureService.RetrieveFeatures
  • +
  • Batched retrieval with configurable batch size and deadline
  • +
  • Token-based authentication
  • +
  • Dynamic key resolution from the ComponentMatrix
  • +
+

In-Memory Feature Caching

+
    +
  • Optional per-component caching to reduce OnFS load
  • +
  • Configurable TTL per component
  • +
  • Zero-GC-overhead cache option (freecache)
  • +
  • Cache hit/miss metrics
  • +
+

Inference Logging

+
    +
  • Async logging to Kafka for model monitoring and debugging
  • +
  • Three serialization formats: Proto, Arrow, Parquet
  • +
  • Configurable sampling rate and feature selection
  • +
  • Batched log message grouping
  • +
+
+

Performance

+

Built in Go

+

Inferflow is written entirely in Go, delivering:

+
    +
  • ~80% lower memory usage compared to equivalent Java services
  • +
  • Lower CPU utilization
  • +
  • Faster, more efficient deployments
  • +
+

Concurrency

+
    +
  • DAG components at the same level execute concurrently in goroutines
  • +
  • Feature retrieval parallelized across entity types
  • +
  • Connection pooling for all external gRPC calls
  • +
+

Serialization

+
    +
  • gRPC with Proto3 for all APIs
  • +
  • Binary feature encoding in the ComponentMatrix
  • +
  • Configurable compression for Kafka logging (ZSTD support)
  • +
+
+

APIs & Protocols

+

gRPC API

+

Inferflow Service:

+
service Inferflow {
rpc RetrieveModelScore(InferflowRequestProto) returns (InferflowResponseProto);
}
+

Predict Service:

+
service PredictService {
rpc InferPointWise(PredictRequest) returns (PredictResponse);
rpc InferPairWise(PredictRequest) returns (PredictResponse);
rpc InferSlateWise(PredictRequest) returns (PredictResponse);
}
+

Data Types Supported

+
TypeVariants
Integersint8, int16, int32, int64
Floatsfloat8 (e4m3, e5m2), float16, float32, float64
StringsVariable length
BooleansBit-packed
VectorsAll scalar types
+
+

Enterprise Features

+

Production Readiness

+
    +
  • Health checks: HTTP health endpoints via cmux
  • +
  • Graceful shutdown: Clean resource cleanup
  • +
  • Structured logging: JSON-formatted logs via zerolog
  • +
  • Signal handling: SIGTERM/SIGINT support for container environments
  • +
+

Monitoring & Observability

+
    +
  • StatsD / Telegraf integration: Request rates, latencies, error rates
  • +
  • Per-component metrics: Execution time, feature counts, cache hit rates
  • +
  • External API metrics: OnFS, Predator, Numerix call tracking
  • +
  • Kafka logging metrics: Messages sent, errors
  • +
+

Configuration Management

+
    +
  • etcd-based: All model configs stored in etcd
  • +
  • Watch & reload: Live config updates without restart
  • +
  • Multi-model support: Multiple model_config_id entries served concurrently
  • +
+
+

Deployment

+

Container Support

+
    +
  • Docker image: Multi-stage build (Go Alpine builder + Debian runtime)
  • +
  • Optional Kafka: librdkafka support via build flag
  • +
  • Static binary: Single binary deployment
  • +
+

Supported Environments

+
    +
  • Kubernetes (K8s)
  • +
  • Google Kubernetes Engine (GKE)
  • +
  • Amazon EKS
  • +
+
+

Compatibility

+

Supported Go Versions

+
    +
  • Minimum: Go 1.19
  • +
  • Recommended: Go 1.24+
  • +
+

External Dependencies

+
ServiceVersionProtocol
etcd3.5+gRPC
Online Feature Store (OnFS)1.0+gRPC
Predator (Helix)1.0+gRPC
Numerix1.0+gRPC
Kafka2.0+TCP
+
+

Download & Installation

+

Source Code

+
git clone https://github.com/Meesho/BharatMLStack.git
cd BharatMLStack/inferflow
+

Build

+
go build -o inferflow-server cmd/inferflow/main.go
+

Docker

+
docker build -t inferflow:latest .
+
+

Contributing

+

We welcome contributions from the community! Please see our Contributing Guide for details on how to get started.

+

Community & Support

+ +

License

+

BharatMLStack is open-source software licensed under the BharatMLStack Business Source License 1.1.

+
+
Built with ❤️ for the ML community from Meesho
+
If you find this useful, ⭐️ the repo — your support means the world to us!
+ + \ No newline at end of file diff --git a/docs/markdown-page/index.html b/docs/markdown-page/index.html index 70020cdd..cf005ac0 100644 --- a/docs/markdown-page/index.html +++ b/docs/markdown-page/index.html @@ -4,15 +4,15 @@ Markdown page example | BharatMLStack - - - + + +

Markdown page example

-

You don't need React to write simple standalone pages.

+

You don't need React to write simple standalone pages.

aN)v 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/v1.0.0-inferflow-arch-bce54b3b4f7d3be68fa22dc204529f53.png b/docs/assets/images/v1.0.0-inferflow-arch-bce54b3b4f7d3be68fa22dc204529f53.png new file mode 100644 index 0000000000000000000000000000000000000000..acad4888cdc3e82a607039764b2283fa826daba9 GIT binary patch literal 241092 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�>JrhJPH=NbB|dPMD1LlzPiD8`~?aQSSXb_nuDX` zCj>O_U7+_7S2xw;3l(?&v-A1=NV)DgIC?06Npdy-93*YtTPlN}zxdQ!=FBSzmw=RR zM%1$|*3=!vs9tTSSm$z_GqW!n#aq<1RD)E0sJNeIRdYTeK6|yiWc1L3X-4@d4C{!F zX?JcB)IK9VKivbWItYqE?YCepsw}*8m3+N0K9kDJ)T#MXY%Z^LB zTI}cd@2}VT)Ap^2P=|p2^@?@UJRkW9A1lx!&1KdoAhx?RXpLP8Xe-*3G=eSZssIs? z2QD>YOd1*f&R-&wER8EEf?lGzy=eYNj+hI|*f2b{pLP=fEmF^S96JPvr>& z2xa-X`9>zQFY#N!&sl5p@3G`~7Bw+y6zc{t=c5w!A^$uDy2R4Tqhc~Q*zJ~n^@ZFu z;hRIZSz3^uS&!z)QHgAry`ZlsqrKTn;Cw14AkB2D*FVH*G8y;!u@>&Vi#q9WVkwWK zwQLlu*EhxFl3ZrBg)crmIl6RUHve6+gnA;Rrp#9>D=&G80F*))1UtwHXX<7wajZy> zOy&2d2Gfo_(<#l<#oCSGKuk>zJQq69 z?j!=^SMcK{<{$S7ew%;1Uzo5N9=>S-eAk(WtsYGpWNDkea*z>!zU6faAY&%qpD(v5 zTAs~#95u#I1JMi|HiOzk_cDSw31;JOnJ~7`_X@{4+}zJ(SGZKd;#epi*`To*G%2vL zKmza?Dl%`wbRU<#E7`0hUfk=$!F`#vAG=RG=twd?NILB0SF2`L~oP0dm$$!&Ly zyfyGOs-gwD>{SN@A#;F^rApYE;>fGA*1Q*o_+_xpsP++np@Uc-a@Nk}t1)y^quw-r zpCkpI8hH$jic#;8f%G&DCHFv$tQurKlm5uw6bN%TtDC+|dFaRq&y#aaK3Pr2>rwOE z-ujfzkL-4cwXer%M`6`V!_@|Uq(C7dd7k{{`jMx?$L{^aR-Pr&-;?Z<+dYEm_7EzZ z;(u~xOFS~r8juJ?Im0QFFMQ6PyUsCRK)vs!m8OQ#W{pZA})B@_F23F8hEP2h2PrciZJjNi_!LXc7TDyn*$kfjRC~L{h`MmU}q9V4Tt)$glG7+MmNYdu{2-&7x(dm5qB0mskd2fSBA$kiRO;ZMhgVySy$T&+!Pit8yfOXF6K_2VT*!^5G-Y;1tTUT3KJlmTm`BBarAGKdCoU-_c!2mwI z!nE7W6S$l7D6M}hh!x?2p<-`H1Au$Z-eXS{fZ;Jk4^yI;Qu#nyxdGy;GthlFIyzEC z*oCP;PDtnurt?&MEbBeOVx7S$g*aWmxEETTDdGc#DJ_VjvuWVY(LBAgHIW~Nd6FVv zoT%M38pfcUz>XBe63tPBLi015^0C)&ZMk`#!My&K?q>dzpK_f15<~+LPm7EDEz-1^ z)8%5UApSRsl_OiJes05`?uV@KeT!}88wSdkrq9%7>rOW=4ztw1KG7n%`z%vZRxUr* zZgqbaKvAQ_k$_7`4k%=X0IHFGqMrnjpX&(>0m%}$E_3_Nytt%zrc0rt&1Uo+O7?im z&Ba@V*&yR3KeRh^%1kxy+tA;If-#Yp*!+Yj&7ZFC_mQ$dR>~)PqkD&tRdRNuSGB43 zY&oQQ=49z^bOVEV<<_Vvq4Hs7UBa~Yvh_uWC>XQ7K6x@Lnf%DOpa(aR`%t+SLBQf* zK&)iHy`QR#qa=~O94vxHn?hJUoF!*}thk6q6dL*god-|{GIL&u4g~u;hR9hlvmNyI zhd%Ju1Nvz(TEL9`{B5XOy5jGd1q!0D5bQ831ivGZ+oM2B|B?Ac0;fxzmOdFfvo~^E z!Q?E^Du`83$yb|->Mkc*9CqNZz}M;JT>oCafI}(BAin3iEA$Kyuq*(ui?iDY80uA-)LMXTHZdiul)S6-T;&Tywww zI)uyB;ZQwbYr@J*G>+fVc^c4omB5!B#i@Yqo$8rY9b=vYc2mbWbgh@P@I6)WD_!6r z^dO__qs!XPZJw4ErQ2)G1m;)^Uvy`}=bcZS)_Y=?&vqV*f#e-CemZh1$i*uCdyON3 z#R%1X(`le*{J?t5CX$}otGb*WJ(W`ab{ch3qi%o)h=E&wal_;cF2t8FP#$ z}^#q5cQ;cI! zMqKv3W>!JOTMSNT*rOp;4k{n|g!Uu@==;(i@;NV?(snj7Jx4YM@ow+z98%oLx@JSp z`#4C-Dv2=jl{psXuasXf66-5y3v^FZ%S=4ts^?0IG*DzxhH8ITJme9pL*lJ01{GmM zJ4uKq3QbgOdln_|k5e{5%er-Ig)iX492PoCCzanG0a1bC4J8HkJnjb>^5Nej1w0z{ z^7b5R0OTLzW$1|Z@^*>9(76@R2q;6}KVrxH#zlP&%fX@Kx0O$B4Nqw8=m(xMd{M_MpOK-eG!~Jiz!Hu z`Bbe0Xlv7Ue=L*jQeEC#O=GMP0{$0^oSU@?D4wB(FKaSglRl<_3(6DM?)IM@X1mgE zP1dV(7;VpzFG{Hd?NzR;H>*7CX%iKCNMDS41(n&oHl8RzJ1txB*h}pB35`68s~!C6 z&iL*18AW>fe)_i=*OQ_wS!#Eu5;XFTt-rZOc0je!3cC1o>=55hd)*3H(wzEyBL&j10 z{agpJJ&{$|JQB`rN7kNr-`_p{Y3+sF4t#aUM=OyxeDOwbirfm?Wofql3Mz8xoOB-h zj|SV_s19h0_YS;Olp56JuxP)r* zFr?ou>SZ_SI;xk|e6x7IMoAN~BYq=Ysu_{&P*-SCG&rDr;qs)ohMa;dop>+O(6~4| zR}Y+)IJ1J62X{}@vmjJ{={pFOP^Rkb5}~1OAmPZMaiS)#@>Umk1g-pND}n9%GbSg| zn5dpUb!C(yVp|rhE!pQI3J8^{8svui`Hs|#=tFGk291fi4DxyAxh`4xb00FwnA z!XPZLV_-(Rkfpsy0Uf=u-PWeV&X>x{4<1cT8DnREeB>s@U^JD#EF^x zuR3MI(mVMbPw*{;p)J=eF`FF#%5d4O47@~(psP5Y>3TZx3E zJsWjGt90K=)GNtY;_;m-uRJDt7cE}kldqx&hpi=Zjh3f(Yg1zlx zQ8LsJB%;x`e#B;W459goLH)2)c zSTWV{aV^F$+{8TKb=qU&wq5ab=Q!s%%w4*cyRYpQ?LrF10Ba5@=jOOwI-_=tgr2~o+nYAkz?ikvkC)vvM$vumpa{#*D+4_rA zeD;dw_5cm?k;On->@gtL<_zdd@&Fm92tEFu=bEYJpFr_LSO25}2x;rzm3Xs80L5Aa z&-tJ9_aCNW)m^W?*Q#q62f|z8R5ymeIF3gx8t9~fuOmJaM z6_}B0+)7lM*+*;uKYPjE8q=}8o0I3z??=kdF$TCEHxANOo61uRE^Tj~)RR~}u|;un z&&O!uda0a+UrocqDcIxXAv@C32xB$qk#`@`)#3M!=^|rA5*Ux=hM=EwkrU}kZBM&p zg!*|@+pjZ@OnfzZgLLV5HaBxxp8qmOaj`uTFePG9dPqw_*Ddqv6_P9~Es*{lNJ}h z>tVD2j4EGD-1CYEG$ij8uJZ8~sT=^zoDDpBC{u zsEzyx^~5%KK+cw2{}yc&*+aa$j6(DKD&e(qPp=r|^dv;TH-$8cPNvZrrZmO-;;B1I zg&Lxj`yHcX9HesBftc@izY@$53YHc1}w-NfJ-%jrIkU%Oqcr zalfVR`phLZb^BO*jgsG4SpU?fE>bqfaHCSdXop&-LRE%9(bwX=^=z!J-wUau9Qb@x z&&J)v*bAtI=@9TMA_I3U(y#{i@$p0;j2gjq=4Up?epyAOet=4FXEMfk+#^WX8g~tR z?eNFfCuoy<8t3$7$lBVDYG!+1-4~Zi>0vF5e`YTJGiddp^{&Iu*pj6+gNYV3sK?PE zt1+DyFd>j6r&vhLfpl2UZfDhAMVnCVFl$of;+iDoMe+?PpL-7-Wyy`@^kfspR;cScOg9 zQb)Ram>Q>Hz223MRVPs>r2EBhYy>L zKFHGgW=dCP>?70=z8Y%t7hmVIsbJD-yDgL$?!AKYSK%7;%Svy|5GH8>=)0K7hy^aJ z+R3l8Ib=NtFtL;~r8S%kqqr#Dppd!;+HPrna6>@RDAPVmJZh#SabIdgkG{r0_e%IN zdps@8I~9{qe5zgl!sKezdV5M*x0jPKK=4>xQWA2_NZoPxX3VXY&<@-aP&*bUQ<9yv zPzNgWUvXB}tJ9KDez2zF;y|?)Q!!vinpLG{P@%*!fsMnZO|fEm4#O%#G!mc_lA_Yc z`g^S?qw*exNI6I0lLMqXvn&d}s*MJ0M3Ho%ZS^2erI2nt&4iCpyBc?@)-CjGY_H-8 zjY^3s|V_4&f7VpaH42y6d0_aHTntL&lK)LL1}>a1F^0R-w&y{P1Z{+Z8&^ z$MPnrzHqwcJj{`rE@sS_^a*X2^QZE9Vc$UIOj9oB^D{n5KIhLMrDZ$?}_~f zPhyr2CVns2)kB^$aceH_&)k#%y)PA%U)r`&rbn}_Zjo97za#th1R9(n1?VxTv5Wd* zuU{4HjN_B*A2h+Uq(8+BO_c1_nXupbPE^I{F5uW|X*>c+dwZ|<;GF9f%jsFm?VKhJ z6hIFaGw4pp1T}nlO);@t?V5r@ug-C+aCoqu`&)^5-d`!3o;2!1%3h9#;;?_11cD7G z7*CXqWf_wMYA~I?B~&LGbn~jw(H$R3h-hkJ9EMT~ypXv0vQNlPDHv^Qyi2A&#MsM9 z%x->TY4d!T4E}Pv9#I{@(_`C@UD2~?*l2H7!+YGhvP>SKnXABH26@G2<|aQBW;#5M zP>#jM4N{d`ceuCyy!d!6>M={DP+rIJNG>dkcOVnghmh;bUKoGXW-b!YCA#YaAXY%7 zz;%&)<;C9D-C?iJhNZEEY5F%rJ#ou|4uZb*5!PWzRGK*|H6ITY0Tc&Ms{$xQ?Df)* z=8&G^sgyJ1TaLTknaL$O+v?sVEzjA+*@&%2d^~Ye_N-xeGN(9XJhV7lfl5HQ!=s+8 zmm>UwAYWP0hotnAdRHsr<%vGy?0O%z0ox3Ol(@jc5!VC3q){Bni@QGiJHmm8Mw{F* zOX{@T6#I9B3bY&bicxDH(!@MgW5jgAqwrj2QOM^Ym7j%00XR_C`s=Hzr45y;0!7Z_ z_GW&NgU*REY97pk)988QFY=78te-5t?sZAX_8lz-WkGZI0L4pNP?y}(a(h}^7w)+E zno$$jr_tZvcJlOjHS0W8ZJ)`g&E2k_&!?1-(o+(B!pNuRnD6+TDRj}#NWN9HLu$LW z2-lT7>>dB1wz^jbwAu)<-p2^WbW^@1E#5IE*aSmXSE3JouTPhp zF}ci^AQUC+8`LTt2Wr55fX?NrvZ!~^fa3O!yeD~=XTG_pnD}-mCGFb}Wu-H9ugEE~ z<+Az-T(ZYtAh`E#TdSG8e`cht>wO3?!{H4c$M}@*JcT-zx?u21g8P01;RpebHS@$` zw4|U3fWQgbm?u5cc0+~n-#QxFyK;@j7qBl`$BW$aAzkcwYHjNP)!fQj@l(i+LCO=7 zdaahzVU}eIa@>IK9LV@r>+_0NHc@Lj16)2&R^#YjV#a)L#>(t`m`6?^PBM*p{@ip&ZTdn+U()*&) zny`9|PdD@y>9xa>jtvWk5w0oGk47tB@$GV_Whw*Q?rX`Z7rK8}89?dCG8Z90D~-&s z0jqa5=3~o0Y>);*3}z81p#VFK^q-NTmPB_vZB@+ZkoQ8xK*L)yp`5pSNb=+)2(;xy zF%PyQVv!e0`5cA19b{if7`3D9OOYsi`_hMi)U41EosTxYX+nkew_8s6I?{y_UZ)+Nn|OSA|D` zb=mO5$`@?SM7}Rq8T=E(?MaGlX?zG;uzrW_niWSOaqJc;`n48Ww4qcImJs8zwNHWk z4?=c2ot7~}MHE%mq`y29;oEQWm_@nju*D}&ih7m-gs9}@U0z9W)B4BT>QbUw~329ap8 zJ1vnSK+hl(NJuE6cAzWQyNeW;mcmrB;?{baTI5!NFdw9R{*Q9zFT}(QIw!g2!A5Kj zFi>MN+8dn7^>?ZdY43)we0V%IHs<^17=U_J3XzE0@4~^aBmKRwr$HJI*AULn8#mOV z47$~F6d6WuS=N!U8@Gw%O%|RDZf2atu3KrkH+?VJDvL$L5_(IM^&6Pf+J|Nrid|M@Q0 z=}=WwRX=$JmxMbxJBzk+0n_VW(NFO0MP*l`pYyT;@H-;@`KOn`;Ksc$CJ%Qb1b}Sc z=;tT%y%;V)A&UZ|pgIB!|_Wu$lu-{Fkh}!FH1u4Xx^&QXjX#)OH(45OVT;rwbAi$zv>$N1N^rp@oa-F zvseBa9qb<;J0oVb{`IziB`uTu`iRALzS)l3eeVg;Bl(6&MuL%lVR%Z2499ZW>)eiq zO$!M~uKt>prMsS_$faGbIr@KnU9U$s4M!`#B~+QkM=K1XB@qAXTVMqV=JdbIE>Nl~ zq6mER`wzn(dV0F2E6hLt*MoU-VdIjqDQB#fMwK4><5RM=Nc~{{^%egf6n<3y-7i$< z#J}DLz~HaAK zs;V#??@muoE9Z%-#BmBCpe0uxldd*1e&JC(cXtaebyxvddp&bhaByZAt32-e+~@Im zB4gJ1*9SKQfDh)FBf!+Yq$2;diKInRqO4aWd(ZCpAD=}Mg2j1A0Ry3ZF`fLZ#yYDxX) zFTnsnQ4tALfI?D!!96YhR-W#H*g_U~I$Tbs*Q4v=Nq2qDz5;XERKR~&gYE~}t`2k@ zgTmwS_?<)x0O%kzwc)+J1&XjJ!|_1g8e_0NrAbsC7<8fWHe0?CY$4lf`AsFhocY^% zV52r8+mdzvy27JnpD`Yetl`x6mzXGV-on&T8ZChS z1>?p&R;UdyEmW$xI+U&RLYD)qJLMXE_EQ)4Z@?bd=yyuf3`UOcCB$wEG!W9-1 zk^ro>uV!#mOk)eMey8>YHZu+U?coe1xUct-OE17|WOc7U|p$abrNu6QTypVzpMeBrgyIz_M( z1JNAa@lnu~=eFJPgw&~jd))_db6M^GiBr4@OdkeojqV>=Sc9vM8(%G0vz>C(DN#{c z%9E8=UE6b(FMdtx^?Z!iV(WP=KmRHW{tl@D)Lwv$a7zI7u~f{H%mQt1xf`7=v?`4x zK)3u3kZ5d zGU=XCAGh(i*ltU9cO$&>TZpdWQ%El=ThdjsxQ<@0ww!gf9D3^^KJitz5dRAcmLJ9t zprNp@7SeQh=K_s`o;V?3!2NI=OFD+qlvW-E+YK<&5ud*R zGUTbi_#1Q7f{Cf{O2td{L;OgZy=%!MeleZY`>(9=sUvi~kuRV8l5B^#=y< zIJk0}J_8HxC~zSVnULXe*t{zibvIdh^(L&ZD?&2riKr{Xx#lA(--muA2(aL<~hBC+G!TAA}mG76eHFYm3z+n2Qoz{ZrfDTceiK}>j1;#W!E!uP+}nK zzcPN59K+;8McoKDheBQuZ1L=O=t+rB05PjiogeYag;ZvNwC&v-QIC&QQo0aFfT$y( z2~d@oYSk&9bf{jt&i-B!VCprncRZ;WFSuLpuifeg#BeAuQ8 z#{lp=0Q{-ovVLB0w_^fDAQX%Ym{#kwA6`=v-w7#HsVO&gu(OLY*d#c2DA75+I{xysWH$JG!QP(Ds$ZEb`)cJb ze9FN-6BrgL0WK6A{%e5cyue+j7as2*Y-a_8%(H+6X7Ai}++aeE%p-5X!nxH3B>2U!U)v>90P_&yXtUUSZT z67#Ckah2>{M_f20j}!?wT^aE8Vae+C-FaHYP@TG_Q?gzVy!A9ufrj%Z{ENm{D^#ox zFb-6(UDe2**)m%_B&=UNMtB;m*d$LESq8c=Vqg=e1H;l42d;E+I?(ub!8|P|q*H8N z2SL7l|7+~PVk{0xDW9v zW#hHKFFC(QhgukYgOXyfdf*zJHWCKgPCOkfl@J-Pa0u1ZOr|=u=tHfxKed0KKoSD- zxy-ves{>-IhFVFsN3KaLt=}SyLtMn-_|32Z;=Bdwd;97#p2HqD0upE(Bo*qKue?v^JyzL2E^z&7Px_#WXn?QT(1-#udwx`T7_t1>r=w8;N$6y$>fjDpQkQOs5}zErC0oU+dQ6 zZa{f{{;}cMq5Ay1B7j`Y<2zt~3{a&tw;l^)?5|dsFnv`qKJ^SNCk&{lV3aTH>P7HK z@oTV51-mdf_L%Luu`^11dJw)09WRdn`si!@b;qGAZ383=$T>Vd8@Crjc_Z>DPE&&D zIfQ`%7ZMI?g|yFNG>x4YFBXY6hKd; z=%m`dg_X1;y&e3Q766aSRh4Xc{)V!j!oA9o%Cl6;Cy%t!-)o9kWx!qmpo>C3Ndn=& z(m8Nm+!Ld=S^8=_a&&j-t3nk122^a7LTR8$j4^Vw`JpwpX9>u1MDOna)zHhWXblI=0xNGO~PWg!uAuZ<6#D;)1wkhfbS0|)i?(X z!y&2;rklnZ_lEfB@?Gs6Vq(h6B^Ij;`(E$WIuBu!u{+~}TU5s}z*Ai0gV&jE^ya(B zjb$F+I-xjqJ3h!Z(Ujhu`K3q{WxmB;=}3Qo?Z%=(6J74#~9(`k3|P%j{tD;~Qr*idBpw1BhX7WvV5 z$~0_sLU)S}bf4dg0>mYJZCEu_6KTA)WxmH9E+@a<=!1!LJDCFs8f1E(+^o6IM+Ey6 za#zG3$h&W7uqxz5cV%l1Nh*)hzG;|r!hypNF`!WF>>WGH*=r1VYg}#XFCDfzJUwkl z7zYTV=ISjQPd@eQ+Rt6w(!6x90~@#qA(8rCbo}2JvGq4x3CnqO! z?DB{s*>cQbML9Z8&nq>)Z7{8##g;5f!&!PQ{*@nrA{bUiL+;Re>wX@GN}d91q*y99 z2zvOa0OF7mOvYD}dGa<_MkkG5DN`Ex=IBLFVqK1_Z(usciPOvC1^Y-XzV=AECX0;V+eesX zCeU!u6uQWuY!7>dV#8Q08qWic^P{9=SqBDJSxYOB%cvOG?M|h5u_|>hf?{$ZYx>8a z_Ul`o`%WBKJ3f|DG=}f|i(aa9L$Li+k3R>*3-J(e6rn2(u-Pwn#K>`1yZ)rl)!D44 zGRo|8f&J&U_*alDMa3ard+3O6p8!PIeh}1Wm{b6UyFDeh$610VVmca}R175xk5zM} z%lU8V0w*@PZT`v*Q^%(H$9at?C(KVkY|Ct6EbxnefYXprwV$JVj$(T@$yF?yp#HA) z>w?9zvmuje<#PzWs>R17-Zbcs2n|P32oy*K5zS#@Uq*n-%A~Xcs7&hdmpxW1kPLCv zzuCJSG<#!sT+mmKk*emu(f#sIQojkV4H^Yd`DKWQr}|l(V(hzZ;?Bm~uJ+#&kpGnr zU%u|wH3S$6OaO_i|Gj(vbuR+1Wq#__5_(7B)Y-0e2p;EnPkV0d=oM98E1B#@lx z4o$J-^NW3T??sTplQM=UKb0~jAkJ`X8rg);00Kf5{m>Hk&s8K$0~RN<7NA-rYu6xp zGdk2-8yoL_9&fHc-ivztL%>oqZ(aCLn(5!G?K(5R7XV9S&%n-4>`Vu@?;8TcTsG%U zPLE@0vnFsSY&)9fYmeZtsI)yjsVW&Pw6H*e5`*1#pVW8)pUK0J+x&yN$4}ohr>D|q zL%%xVuwO||t3UNJTbaz^%h#;(uC1%fkOZhYqrSNeQ0nMwz;Cn%T75S$z77eJGw#l{ zg#IX*`<=^p1pvsd!0mZgegS$Uj8bqYPX#Zte0Li(5;JUBET(yzp&BqC%@$zm1=z&{ zpu#+e>vt6HZl3U4ukD|$9UvL~ND^4E-wFhx{EDjVIJ}v0GVY)Nu{Kr0Ba_JHHP<31 zDB_3DYEXJs|6+FR6%N!;jeq= z>qY~aA>JkPk(W!$D**7-tYqTlIzZO2@cJx)xhZ$6|aCB zkF=}V7}SeA=YD(;A);3f_#Ba}^4A9VYh7c>Cp(oi1Dr}&!>2pE)+q(rHA+X=L^-Bo z)*#6v;kG}Cq~LHK6bBG+?4l5GBfVP5mrgF?>?*#FVL!dC14WylnW#GLO=x=fA%r5P zw_Ory?wX`gtx=+%1~^G=!6!f+t{<3jT_nbP6As&n9!5vS8OS%N&bzRjAOH`oC<_@<4%AxT%5QF9GCSKrZ_|W56qMwP9%(#Jhzs!;=cSM zf-9glO5io};f;SApr}OWjBSotFQm-3$i1I=G@tX`>%^RXNPYfcH5;h&ZQOnAL&ecN zpaeq)E5R6uln={;KF11J5w<%sLV-8#UnP2?9%jEiO*y39bo8Hd<8xU9*qE!^UGWQK zRQ&b|QUaMf4s{qfM41;QC5Y?MqC>putiL3RfTf^rdlc*Acb#F;xyl8}`lI@r!ETCR2;_hL_c(Asd01mKT7;Naje9x5h%*A}UBN1NMjhvG;59PfKnyzzOU+2YJ=jj8+Ms8;F91QUs85R6?1XSGF-A58@6abfb(K|2n z043L4l{B(quj9Tx3U=LG# zjos$k$_eOt9J{Rs4~O}*Fr89H|Mo@7uj6uLq^pZ^(f>#z8LjsyJlRg}b0DPr1zYhl zWB}*W-NVBpsk5PuXljm62>`N&7%Wmfk1b)Yz%s+A0gQ`TvK ziN;$g1lFuSTTe7q@(c; zg0VfC{XWR1bE8pu^EK+;v^*O+e_pEI^?C%Gi3GU7TrIN|l-7j2F4G(?E_QDa3|Uio zWE1_wc5zK+ynK_&c)ap1sFR8yyI5gKd@ho)teI(91x)be-f_H@*wCTC;jD&YQZOJ9 z08P(u$CVL+d0XD7FO>)Y4&KwN4PzWQUHJ)=2Ldo3?mRu(Bf(l>HvO|8ELe#J#DK6! zk2;QyY_bfe;)n+GO$?5#ZhaR?tJR$Sj-j$vRKIf2l_zvY9lZB36%AaL`>-tapkrei z=Ba}~*2G-i(a}*J@VZ<3`xX25$Yl)rZu}=y=u;P&WSLU}XB7kAHDj`8mY}^Bl{?f5 z|4B}C=>B3#C9@fTL=_{N@nB}V)Mktc;bs6S)HXFw&Tcdw?0CS9x&N}lC~w%?K`G}f zNwSWVH52Hov;p~-+9d#kGxa#0mcb*o%)+PS=>tkFhLfWT#kx}A7EvqprHEP)oJb(D zBfORmEs8ZYGh2kiVoQu>&xt#>djOWPV?Q!y;2rb#w3eRM938j4ox_cF%>_XLk3;7w zLm{AlD~HED0|t=934cYdSvvM@$*ka&dN`8c_VbDI?S5T*77zjbrO4{Hg8Lm7SmxxtQL_X1uso9-nd+}xS-UC0J!pg(Td+i>>jZh_5mL9qo8|700W2H2Oui<_sufd#+-nkNIH znj3|7RLXtc2byHA1sx^ZRgQV2a4#aMj`v=h*tR_9jKl5O0`6JQ>dOYE=Rh-<*#_kf zdg(FrG?Kx^p0!?4>&~z2<95Uq{T1?oEHB8#U@*V-0_VkzEV>OKPnmADpm94P@Vs@2 zPIS`57Vn=sIyJQyz`gW_yhNam`(8*S5MBdlTeWUia2LLg&>LvRQ*_v>^*#GYCtnoC zpU<})ym>3K-gdDXQVv>Z*x3{Jj@bU>s&N+h@OP`W0SOty}sMJuwF`#kU-OY&9VlKEW zJ)~+;FF=*kYV%eu)2iD(S1=Ep?9sC3maSJ?>A7puGoISwx&4t^WBCdK!7>pAa+QlC zo;X`4Ei)lCUXC8o&|Lu_Lz?Bb-!`V}q+&Abop8?U+n$`DceWWg9fB$$`f#ax4RQ8} ze!0hKrj!BIq%`dLhno`Qnn)KnAAY7-5x=%)v$4vITX> z0VuIz*aX1j!CJ1u=7M@=e0~gnfY+Sr_`Cb};NZh*YHB)o%rvgl+o3vJym=!6lz!6k zC+yDRpRHb1MOP*PXZb%lHK-PxFLoe@qAhDBa7@QbV}WwBp7O{}Bb@tZfRWJddG30i z?s&GjF8S_NpeJj&w;*wU`_*W53kR=b$ny#gf~MgsA20iye*~!;D}5y#r~KBOb-?de zvCqV$lYDRI3G6D|79qh|naCBy2-J#xP*S)u`P(0CXf%n4ly&nMyq&+vQ*Q3Z1BAn@ z0V>&P`0P;IfnNx9${NKz26lKL!@&x*^m7NStQF8@&{T@#6O%a~dVxk$lMnr49z_rn^ge*)9EI1o9J+a(-@8I9*FJ)-PBIi6ut6xN$0^Tu?^S+X zBY(I2adQU-69g$}h)8DSaVDCVDFD_eCxzUZddvWMy6+B(BDXmWizI8di7Kgh>`M#O zN>t6L@&OUQy~TYu)fWaq3?iTlaLIKh0u1r$W8nRE;m2k;UWqc9wJ9`n+g%tIUv#8C%q`p6ch}#+UdtwWrXvkvs zQ_a>qH~)|PcM?XC2x7Mnox=txS1=w4qF~E=q7o(x8eU^grqV3F@pVdHCSFiySlRw# zA?k5uTX;_HhyZ@bHyVjg&jr4iZR~$RCB&lg0zwFHfChr|@OzQYb44=09>dYc|GeA9 z8+!#X6&bd%q)S9;b@e-lWa4%kPS?_WqLKSZ&S9WyvP?yZNhn&BqEk!uEV*GFZChYR$7LxB+6+CCM(E8Eax_1?#= z(BcmR`>jl@=O)U9f#5DW5Ab`=pov7Nmaz=2U8I70e)lLr%8bzSWDJYd~Lxe61(`qXtX zDFO7Tpjs#fYU?uVxDRDly)DR{PH)`Ly}iRv_t(5#PT_k$&-9pj=TqVfyF($!#X;18y3Aw@MU^_t!4o^PS; zspu7GW8>o?$S$+s@Yl6jlqmapmx}Jphr{{M_s>6^b)Z{r{4lCqY7K1kx%zo6@{tC1 zjr~@ym*u?Pc&QP*^8~mBCJTC5^rg&)0`E0};8p1KnQkT^bq-pT9JYWA>m9ZhA|Q;xn=6ZH>ZA%g+A-i(U7;{TMhChg)M z3gFdozJO*w4}7VR#1HId!Iju@%gkM?=9oTpnz%*g_ZGMuO8JId^alZuckA{PT-NGc z^7Wyh9&-=qH-zaqSHo6MgNLT4?_lEJ`RRprY;`)${v{L2u4YcPid;-J8Zbyv%1W|Z zbKVZos&OZ8mUf-5gfX#Bh0J&)aLOVFOG!(1bn?YK&ZqhK^7vvT*^^k_NzSvJCelUV zbSKmW3>e7Hep%*8myE&&grOFEc#)8BltP0`l^Y_(9V5)oLmb$M{5*blW}YQ69}F~QSI>g6+lG9wdvqa6NT$itjwcHj5-R59SqG0Ex z>7TPq?DJ}OB!Pg1mwU4C9qQKb0TsT^u-3^%UO5zO^>2drqwp5mqdHW1h4Di!$22+m z(>>u{416knZ_pUOdive6`ku#Gt>FL?vsGY6{UVN_s|YHthmx|2p7)6sl&P%W1ZKB{ zB?c~C?b|Gk%i{q;W=Zh>tXuhpLcy~WjFUUKGXdy8z=bhY7e!eJl(@p`ftgyC8|Hq7 z_h1y^q3Bcn4Jl?_JD%IG zEw()gA$PcUv|B#8J!M?&;ZwI}SO+_5_%XBVk4Nj26k?*6bAEWQ!PEUZgoryg>+|{1 za{b^tp-MKbygR(Mw{Ja^?KA4cr<%mMFQZwBANWPd6IGSLQl@JSs69OE&a=C{NbpS2 z6>~2id6kp%GKl_OL161*J@p#3dc9r_!X(LSv*Nq|`u`0qV3RZ0D9SODG~-0gNw=q8 zo0l&&e8oOLWkUHBCmyT9m{pm(l$6zAelbt2RksN1U~_Di_NPWA-bc!d$DpD1IspQb zb3isH)2a>EAGBg}*zp*WC|_59CjYesF2jQ=o#pnHb}$7O#r)Z4y{P&5WH3+bH^n1+ zALqNuD-FFI(Y9o}cs)dCX0nR4HHm`&l;Qp1Plx7&{vMR;Rv5q@!P`iQR&0`drj<_6i;4@`%|4* zAIK$2pMU>m=JMkuH+5>Y%_L!fI4aPq5(^$Sd)w0`Zn5l$mIFZ#IhS0dqQSls+gc|;o|HZ_tDDdcfc730Vn=OB98^6 z;BLu2<;G^$VENg=d~@)iPXdQU3Y;MNemV&JTFD>{Rj+fl`;6$o|6?nBSEcsgFIF;g`VBvRS;)q%Crr zC>MA3uVwi41Vzs-*6GRfd)B#bI2PeUe5Vww{3jrh@}Qe$zkXVq(BD#s$xdcMbCUUw=Gq zYM7vJVAOR!XWImBr+e5_cD?3s;JqPKL!Dsa;^_E(A8VBFaldET zpFW0twRE3oB=oG@a#m(m0(9zOLq>=oA_l^All*+^oSQEcG8COQ#;cnCUXY#~;3?`} zS^hH$zt-u+QKSOoQK`~eV5D;Yjk7^88Q0{T$r)ZttaA*b z&U5Z%Wyk%cke~DKUR(~FpfU-k%Mu$Xn|}l(2lNlAQZeSv(Pw@4{l9@}qt-T&iPB~< zXa3Dzwy zVuqJ@Umk2Y9&C`tJu|=k&`mT_7HsMF;1tw@C*?gM+e;G*4P!K;4_fmR%>c^CtGkl& z-oAfLc?UWOOa+h4CyN@3aUg?%q^u9mv`Tcg*-hnX#YZ%i7QrF;3VJ32f++q+DxOTV zV<+q71|Z0*KETZN>q!-KJW)=spAZ{PAr@p6b*(y01yT zgcy96a&}J>fReQOphRbG$9y|G-mZtl?|eH4HylSqctrE*#P~Qen>^tQfGi4i`n*i! zwc2Ne%#{CJ|Gl_U=;Yxw#??oZJQbK#@j$LB#iIU9Jc`~ftgtK-2htW#fJ4IMdpr>hR>%=C|uX{fUVq}YYFiM*Ma*cOTpp^%mrs@*8T@(uB9v%Tc&T@KNIID zJ`nPD{Pxtb_sYPLBvHp*vGPt}?i|P;^FV=jp*xBai1iHG0ljbU1g_#4;MkUFQlL}i zJy|ez7scjUn1`Ye@_|Ie+WyV2g=!VgK0OF5)Y*l7)+{&7>}f;8=!#<-98p#~1$_b` zs+h4;;6dI$^1~+3*ZQ60y&}6U4pVi1!nT`t-|hVfxHWNuW~jQHMK%q<(x67m1sUGKUp3_S-(b=bGQG|}W@mfWwy zT{4l>1}iG#)0Wl*u1rTs(2Z5{)jTJ*Tm%oUY2h_KKelm@H6u? z=48k?dQo;ji#kOUPWG9@0sm~gRDr-0n9i;Arck~WMYgM$$mb}&!=-vgcwuF`Y^H4a z(i`D%UWbwIZs@~hLox$EjgPeZAD0z$#>HHLAjWn8BEA72xU7JX^ORqwG7$gjpBTuL z=@Z)gHs8EHSgMrS)li%fG`n=5o`g^)#dtf(QJ||-vMaC(iO;33?_5gafAb8;A%_BY z@0l8UB0D#zF3@BR6vbO_nr=kNQ^AJLHi^xBt|oE95^PsuH>uYlqFuS-gpD1R!99brG`s@9dk^u4G*rvB~AEdI(CzS-xdp~BdD%#5)Ym-eHI`9 zoM91waxPlyDZ9;T&%407Hj!1q-^27f7MKuP+S)1$pzU8c(S2riPhiJ?+S&5J>lA36 zz21jTz_xj((T>6G1Z#h{NaR#sQVXXI0l@a$xZnVXpj@bM45n-fO^lyYdk zszanPHa*0g;9~l*5{aA&_b3FcuI~9Szy2wux4%TVGF`@MzcuZz{_V~BGmtd}0hxxi zO-@-W`9fJUzI83sndV@7H$}v9GKX&V*oMwEL|rpACQT&+0TG+=I47xXdJF^=Q!>3>zf&0!xbE5^jST1OJw#YBp7 zu)*cY*4>R9JVsFMnAG!gzY*Nl;oCVob>YKd7V!(__B{tP9NA_aOv!e-1yz5DTRof&(B! zAr~ItXRW z<#eF^n%?WqsOP60j4-5L$Nz+W6zu1y0KGcCMqQIp@rhp>+$v|On&lEXKem{gKPp7+ zD0Z)l)T**s*Mpe0C^qf@G~*lyB4M#G#P(EEaIB3jvu<~XG?LqH{nfs1{9Cmw&lu0s z!)p<6h%2aa*W=q$aTZYl@W4n*-T5xJeF7))vwvI$?VB)Cgy@V5?6cKq@ez})5&>?4 zfP-pJc}#mVuE#Y!PSBYCp>$WG+r^#Xs!`+Hs3;E?1qd1_pg+#j>BT5 zuILySHt!?rTJ2+e<6%9Wsp;>&`*2+0YfDn$v4K*ehvViMwh$ZmSi2qtbmd z*GQlUZ`-ULAxH<87t7a#-mh}T^7?(a&%8{2o5Rxj`DsLV?*Jl3=QfZe+osnoI~RS| zb_B7G>Wg0b`VI2f@^KwO49sU86BxVfZKim zO6B(okzdxbl1@Dig^IE3oHyYvK2^J)d6)gy9r@g@( z@qL1N2YR^9mR14rG*_O&|Ab-B8iy^tgC`wlMH^EcpFGb%|4?CN;-oc>Jr93{e8ix0 zg{bz~0S%|g8pGHa-BLSRf#_v4x04v%oRx^?g-|34O)M<3&<<|aas;Bc zWr&Y!)7|WiNv?@#^-At&!|w z324He0*afHM7YN}`OoHNpmdqu9dobIomBU$x=t+a&f;C{?Gf?19$nem6P5vp>gG8r ztXvnVFmPl?>>U(S_^NA7;F|^X&J(SoD=&wvG52=fhu;+%-`5T#VMvYP+Hsq#KLuya zk;7=uQ>fX6>ZXBt*mi7Y*UQ&ygRAZZvzNzXz&Pq-)%<3TDx25ANGIJKYZXEU)h9m$ z?Q_}SJmnTR)-FJnt*H)EN9q{e-s=0I4#9(~sx6!xcI^*Lr^*LLe}=!IwbS>$(d57C zzqj!I#C4>~Hrjz$)5Ye7C-{|ok&qVl}EY!NQSs%uc*5hb@*JNUXcAbC`_Zjz1gscG@S-E#)~Yv@yuMmdDNKFzw2h zs09|u(DL`j|D?4=_Fl?4O6z4)OuAL3yYgQkosJw1LhX?`FsjIR#N~uU4nvEBZ4o-; zYk4PLqcUAHG0FBPOsmk5uSd5uO5P3Fz0G&lIIj~|C=_UrD$>-CX$w9LjG|xX_9)Qw zTA|0%Nfs0WLLSdSKC9SHK0?8>7Nw)p478tO-55){Xs88}Jp`gqk|CP)?q2wxb?fbA zFk!km?ish~Hfi9s=&*MO$P^z;W{b0XeD~$nfNT}^{!*vtGUL?S5iz65bh@RkFCnq4 zS!sX>gPhb-acEzVFg|b*m|6zElo=6sKBM9(ABnxTFe3(M_N{ z_xtxF8>_|fd~sH*rh9~{sTaHU1v(JzcyAz=^lB3sB2+yOxFfH<+t>EzLpK%j^x1jc z_t?ZoFjcFH?yU>d7J-rsrwcAako@=0+Z3?f-PZ1*s&TfA200Hk@ka#pdb&G zC;ay7OEOA+$qkHqJFqn+cLS;IO+;iv!L^l1pwPE_GFIX#yUz)ZFfYqnpq_y1W*#*y z=YE*L>4XjZVY%y)Vx_(!VLv34;D>P>tivZIYqQpt|2>=ZUZCE*&EY+Nm+vbm9>&E5 z6L*>TU3i)FLbOe6x2JI!Ua}39v@dt-2K(8@IYe}sJnRF>KH zx0Hk;pi&|wAYCFUjS|vGx6%Rv(hZ`ZG>9M_B1m_Lq$u6pAtBwJ-+p!O{m{i6M&CWH;iIT&4Yo3}ZqKK_V&N-pKARx>MD}G_%rAyY4Rdmdn}T z!O#;ZNwo!PL-Ami{o|294byEg>0--XtSZmNfb(6&2c^ z`W*!>_D=1No|Eaa4c_kjRrU*i!wpUB4p%X)KeGRHq*FqHU7@nf#dmr#VsHM!E}rJy zC4BlPQYHHR%`yGU(+&DME2}A$hg;KOqcwc_LM}TPmg+?=Dgp*I;_aG5oKIioj(;@g z-Z{4SDq}o-mL?f?6~?7)x!%H%SnALD7|F|LvWdUgYjUt82+AxA8_#S>M773*R(ba7 zW~6|4ZFPmip;SnPWPwsB?HSe6X1)A;vKm8D$>cMyxQDcMm*}c(tUb-cIz!Bq`@IPa&pird6Pg&r*Uy0cRS{>x|$LCfe6|SL)l{sjXNTR zFm9&{L&$M0GxoXC;CGdocQ(?*$Bj+`20~@#4t;t1Rn_QHomS~bVd2U-)8^*Kll(XW zS+b{;V{D;(J;p7{8AjJK`d6HsO(|{XnOyX$n*>^YuEFS~`z$3)!s&?~4MIzlFPK<} z6~xdkJjvR$8Y=#-EL6!oyX|(+MEWjExqp&Su7I@ORdOZqR}CPlo}^JkQ1Km5GSsZO zf~Dl*W$rc9<&mc6VW@kAtQx_DdHf35PM9}^JT9M}4Wj3%q{RxUW2VTkIfYD4-t30B8|Ndp^)sO53d!Yj*-BSSsRksYFaafFKL$CyRE&Fo#K~w!i_4 zh*>mdB)Go`wCeN}HmaJBN{4B9{AAUw1M?^4(0lmQAG`vKpg?WPTx#8eX>VPX52R;X z;w9FlYisuQ?d`zaHeL9c{g|YmRbbt*>(i3#x{uO>`Bvw;q!yi!G1GsnZmS^QZ@h1} zI)Xx|jCE)+T(s;*61ZH$tV~46qT7Gk!miOUwbdWXlS}q86dh$Nvy_a#JOmZ<>XP(G z*|HaS3X()E9}C#eSDJ}e#|<3}P97vF9ZJ)uj?_4ua(x@8yQ7uo_6jS_HN3bo{)^op zj+*4dbM4R17gvzQ-OZh&{NOTY2##fV$NIYpxzFN#zPp^qF_x|K<+hUH81}0CPcR8M zGWlZ2yrr8a8=p;nD*~N?h9sPSgSN)D`8g`|ntN)_o$@*@e^rJUI*8WiPCUOEzuYI! zVs6Vb6zZVyH`i#HD|=irgA~o41KrI~0Og0|zs~Nz-k}%r8HQVQ5{{HRE63NWPON=h zofl)gry7@3mx$>1=c=ryy?V#^?xnw~47`PNk?1?dJjro5sj%)u0P1+qEsiOg{Ix2{ zBQ<9Y%_o^tuE763$zj34=1EtXQDL2Y&~ZqX$Hb^mE&AY5KY*vPrADRhUtj9hxz8jq z5kt4D+D69sj8;*a)QR;ulfw#6n%JF-%^0Su8c1`;#`_Z}X*RaMd)Bw2gikMGvjah< z?@{Z_Ns*<=r?EKx4dZ8vH`Ym8J0Be$8c2mrdQ#Vie!hCuk}F$}@MlN-gV@s5ZWtg4 zwej@;0_MKfUP%hi*-r(gJ*gQT$aX6WiV+MN%3r_>n&2Iy8YlPtU%9)mH}2JqL)H@9 zr*{jv01YGquV9(HI@+Rfs)u2o3atVEZXW)-D96Qv*~u2WY(86l&nNe37JqoZ-nMd_ zocSsEuQOA3?LD96ZPoM7SjT&7;J)>?E7!eoit~DtN+D_|pr$Ap)7ufKlX}&AJI-B+ zRhyoH5AqVmPkCp~lgkpwPlcve7r^OGLDMJ=Gg~H+3vDa>*6_t%G5d zI!^^$6Or7-eAf}zyr>>@CH09ogvl=7)%}Oatswkj6Iy)_7JH1CD!*El@I7rmRMs2t z+;@$Xpu2FwWlA9)bR*b=bt3eS^^dOIi+2qb(j%)nu?S1~j@-6zZETc`|G-fu;SOE` z*}TtAk3`t52h2;El3`C44rb)bjp_>7phh=QjD4k?mf|%6KGDKR*F^x-Vhj=ylvipa0PTg_eb|gL)8Q*tj|t(SH>U&`e+0yIDzMUGT1@tLZ3S6dwI7^fDEt_NW{AE@-gF$hZ+9$%KszV%2rDP`j(3| z1m{K<^yaW%g`jXg0!eyP$FRZF`ZJPF7Zp*eIB13Keia(bZUiEoJ)7PdJM`!lx(cp6 zn{@Yrsp@sB1tfguW0)+_J&*TuNDvK4@HU}%c7VS5}N=8x|U8;`~8TTZtL^QQXE z<%=x`brbVooXWF_O5%Zf15d=KrxXkC(7EqdI{)+cq@$l&Sa@Bs%$=gy-(osZj0a5{ zLK;%1-e2!!iY63NvPzfTmRrFfa-;I}MmAo)vM`B*@Ep*RX9y${xH4R5!mY)fI(h=U zV3?H^4ENL5`k5S$A!aaoX)A(8BS52DC2s?P; zsL=i&9}tNVpH40Jg)Zv>q?NCy^#dkqb{?D~`DEJ_-z508N-xuDKltHnLYJ&aXJ}|> z3K)3C%TljkF{h78vIzR!!72Q~u4rL940=hfkMgQA%n9=w2ikN>qYXgzLNhR-u}E+} zt!K07_kkEfaAq6^R{r1}{NH){bt%-gpa#eD1o>hwKiSPxA>y*b0E2wrd1lQY5K0Rk z*Ix_}A1yI=3|Nv%S^!ogK|ixXQqqH6>IYlhA0(JENp4tN9(-me?6GICQy2%fbF20Vj4o}Co`6p+w zcUJ7h`Y#q#*oZX*NBg1Uw z@;oZ=A(Q=j|4mn(p65H&N%P4X%7+^@Ci}UP@7X9v(3HSQ+Bxu79#t&|fiZ7;rvKMA z_>U#eo!Zmc zMw(jD(CO1`;0|m>b}uV#2SLkYNIAVrjpFQ{KmST~X|2jCaRR!b#WosA>yf3OAD{B| zWog~(Dh+(=;Nb8S+Y-lsyVenCC3K3})?Po|6P=b1yZ0%Dj#>4pUrIOFc?6@|=^u9p z&?(bxu)h?K1sd;_9v(tw4PS5r##!Lnv2lJ)L$`mXQ?jI9{i74tl0z}&Te)rLiN%sS z`wH^v;Bj-g&CK+)f#bU0$@p2aku8+8O_R3OIGQ8#4cNn z1db}5-VN9Nl}!)2uGJo+mb&3#-Yz~7OAd*SxTeI(LiA|l)%UbM)Yi)#C@1XC0$tu) z(jmeT3i@7Sr;wva-h{i%s>QJhqX!8;F1&EBfPhN?sgV)iF}xf9^WyKFT@8UF*{Y4~ z@7W0AwPb7ScTG`-4(7yiZ*KNV;CCgyF^~v}AuVZ92%K;~Gbv3_KCs>8!*{DOQyhQz zj!{e53hMQty-p#5{*vN$fb24e$0s%Wj0dtcm@~N*a!TTE%T6H)e@KR*fkd(1)oR(w z#0Cw)IK{y>JzxMbba_YTMP{UjTx2P|NPkkX8OwWCZrlhiOH0dkK?(}XmYCtl;722O z!HAY?P6SJOG~y`IEyPzmwr79Dp2TK#gmd_=787y$-8=S2G9?`qMj}t8N3#_Q!oN@M zN1mPA&SjP$aI6Q5^YQV$x9petjDudl(109ln1szadYkcOrSJ<>Op0^&v(L6_q(g}y zP`n$zkTm!awFNe3GIo0y9~euQhZzi+#l(*7{10tj}BrR`k@aYM$hJ?>@HdN!SV zB6Nhs`D;Wj{E3M4Q?1j-tL%dow4`Og&ZvW9$X?^;M>wz zn{ZX=?AW)#bNux}DcS(N#o>7BaQ}C2?vLx>KQ9R{8f13T4`PMJ{7yUH!k4nQ@sXi- z0ocgR+p;(Fq7tOw?B2L*5eWF(6f`B8K)7*q%69>J0!5#q047ZWG>)Jj`%}-HG$9J# z-1;Vn_dV8+!z9#E^vL@gH{4k-#z9TA$pt?EfD1{WK$Ct_OUbv=Gdw%kY@ij1sYwBOm%)W%l z&eIU3mnxFbW>3x86n}g>Bi*xUo9Ga{e=PH^?gn1!9rhvPFh@$AyznhE0Ik5s9b`MOBS%ezJwuSvcy;|AXRY_ioV3XAfLG|FC zaZ=*U0j15GkVL_+EES|zvuJDM;(KfRIcdSeHPG%UX^Clf%3%e=#yDgKQz4tzfXwk| zSBynt>K!xBJ>wM~z*?@xd#qfLa-aFq^fo{?rnI(Qi+h)zc2`-OVONY zYGZVBeVlGpvx>3YhCK9>QpStieHf_$bPHrqLi_sopgj5RkH)^EE0|)DtEb!;t(tS1h>-li~q0xW*)pGDmVyw!wbFll|q4gcJ52&PWIb;u=lin?|pPHiF zIo0zV%FuT%%hhS?yK=HK$Eem-q(;7bsm>%$$P)?LmV35!6Yj_PhKqNE8iP>4Sp9o8 z@gv2ew835nq2gzL^%B7;iuD%(seh*!^ee&t=lz1{2jT%R-AEF$zc4UI3lqGxKTdi+ z>*gsmY=5E%HeTjG7P_g9tX4ZZ%uuS*o>d)%ZoX&y?oa3kVH#A-Z7Q!mT1GPJA+d0z zY4jPFuJGF3{HpyEg7*%42c&43wMw` zf*j)Pe|^4U>UUm-A%fUjk3CKnc4x=Jzi%rR-uL^EYWOcN02_X%0}RkY*EIxrW@xN< zK3*0YRYq7FJcy1>U*7xM z-uhFZ^0p=*5&!@fzvpAGd^}}dC=;04eH*a6Csrs$tuTxvS|N+shu&wLb7L}tr%9Dx zz*BCrG0}Wr*|C|Q&AA8F?c@NjULx>Hx2vJS?>$oPB|DY=VM0Soi#7btM`}qLdMkA7x_=?k{}_3^>F6ksPNJZf1Tg=7H4Q(S+V$(Bc-I<2#9(aq zM$;-i^(D67O^cWD7pTgsvke*oGeQo^8f0N&y-Mb(x=X_`#Adsy8Ctm{+0i|K_n22m z4XDJk%NP2;gyb6B1!Ex&m}QN6jB~Tgk6%DwL#ISjz0weK=~MJp!H;i^kXr>UAytFU zju_@i-}k_8Tko#Q${kD=qZQhHdwUmaLC9^Edx-U&R>{-kywCQ_r5-SRJlf-Yr}?Bp zu;NzDf8I0y*RVufM7U;XcZ{El$Z)=$bPZEJz4ImUcRl|VQ8(#LT+NSqk~*>PaRg*V zr`@9xT}E1$ods)0M~P;oIX06uH=cXxBI6anfNHo*#OcBWr)H*ndDvK>4_C!v1@mRIXRg73QU~z_Yq^Z$D zBH&~l#NeSWH3Vo|bKdFclb0LPE|&kUOek4!1-@woPGL73UF||lPwyYu zDcE&kvl8I9KG?v!Yc_Hfdh%*QQ%^r7RiiWnllTuZ)Yd#ceX5+Pt~hxJn(a^u#XEr{ zLP$X6>~7Sp*~BUz9Ufjjz2~?d6EWYG5L{tj?f1c8O1?y@;*?4v(M%SQ21W{7J zEcWkRmp>)%xM8Sdf^G=z_Ec%h!!IDW(XMb(WR5-VNYOH#Os3+q+lj>--2V<~ZsXW+ z(NyxCjTlDGrvqT#i@!U$gpzeURflr<__WO0d>a(eJoZb}T$W>AFnoF@$lr+Q+J&;! zA@K5e{Xy$4fG28b>g9%&6~ed+aySBtJ#7gj)A#0z_BUh zeuRO8BmW4?eK3xf&9OsiT|z?7#BHr3mK&W>mFZG97Y-@E zzD+DlJeN!qL;;{SSS?R?v5rPM^5(e9&i(1H4`h5eM_|h2M?uKcwNNfE2-(=y13OP< z(4$@a7QUENOrLr4RP6|_5seL@LgS=wQKI*e{px7RgU^LV$|EQJLq#U!1KB$1FBZ;Elfp05ocy3z zl|0w={56op7aXQl;ovr*Jk@EDebJ*LMy-atETL&%VTqi>fx1 zjU{5g8Ahjgizi*m2e9;88inT`7=kdIx6DY};OSoo%zs~7#%rM(bNH=M>}Xr7tE*uw zIxah_qw+@OIjHI7HeznyV$UZCepv3UjiYa2H7kLIS5s?vIKu-a?HUi+^#0CRZXwlN z?O*`MQed7skf8h6<$W2Gkoz9v%q}+EJ^!o1>!M9br9k18~8;HN^~R$CY#hB^Q{`}4{grS zX=X>z+lK^5-@eYQiAus{p;UAvV0S?meW#!Gnv!7UK5s^>o zO!pBZ&5osaChA+6SdDNm9q+R&9()}7WP!}|_bv0Md)b_T$Ay1GV|0Mu!Td(7A>Lk| za;_3S@g3v)U^Zg|lvf>^$QHw~^}#bb-IP?%r~{tcW?Sj)?^kEk6&wNad$s+uL&Gh) z$aW-ejl*QGjbOjgAMt@-mAoDmx|;zhT)-W_y}`};7=rB4(tLYN%!@-R@!%J+qu1O| zPJtmZZrb`jjMdwLp55Sk-}-ztfc>g!#9S+mLMmFNrorVl@zxt%kF~2D+U-LGX?6YMecq=Tt+KA=B)AQokad-D6Bhxcpkl;Aa7W2Q}Y+rHw=Iw1N zH5RqDXbv3dNS48(<2m#xaJB4CvuCV44{w-MpAj605b?Nm#Od}} zZWkegG#S&Oe0E@SC+~Z%jp6&C?+%(B(3DR??RmuWJE;*~xWtyU-pXSVyyBFNyl^G> zN_EG2rlFjVu;E$Hm|q{aGRdiBd7tm|JtZnjE*G0+S4< zW`8=EX;#6K6x5q8zx-%>zQcD@*lWE4{Jk26Y_3_aojAKcd~vdsFY^82oV(htW6k}| zlyaNXi%-<8JI}ake^uB2EjRJTxV7;pJy^ZciBc*3VbHbojwQvir^9VOx~03c24c9? zdeUVrbNv@jRz7ccCy7w?dI*yY7aI0RpIx+@INsE)@~FGO`9(0P(D7WPSV_ZcFh|P= zruQCva)6nJmv0PBHnJQ1oNd0=aC`EXB7x#E;=sP*H`$ZXlR%zmk7OoUo2d4V<}jIt zPcR*wM>lMbQPH!W?Gii{EMo|U*PoJ)KmX|6L`fmC;Jds0 zqao=0%t5!a$nTfP1;0xZ#>P5@V(ZPK(CyvBxR@BP=u{?zH}|v5s$ZWt7|b>?QnvuRB$Pq~`8um&Pu~~} zgJgFbT0b!F74OT`zy>P>;bkt%?kovMe%HP0DE)!wFz-2b=?^&X7d+L)ZH)6j!ynd5 zAK?KeVjFM;Z%QqHCgAd9s@CgKmtXzH*OFE!We*pHYOtpAv`fUvS$8Z2Z>k`9I5&sa z0_EZU?v44Vt9!k4I0_V47;*O;JATZurCdO_Vtro(wT zAT@Y>v|HVHo6{CiT5K>J?E zlC%ap_#RZpzB2DRCJWowKWpy&IlU6s;rLE}y_Ii!Yina8e}TrHnOS^vegaZWL$kMh zL{_;~;9ir|+8J+0QDYR425%4zbd`ZHm|`koYxJ`#Ie?W4S|6t;D-T%%j*WloH4a>m z(#FnR#7h6Xo&WxNyi&01KCFy|o(k7_n!>q zQx1J`#1X9Yw2CV{IL-MfQDonE&Q4I};=rxd`AJ_Y79D3rA|w2JpmbX`tyDN_k#VP3 z&d6kacXzk4p3-{fnMa1FsroeJL zntfNzr&F;bQrVMr^!bunD4+e3zK*#zHOGeez`+%8^5wn~J;7nz_A*`moD;%87>#*p ztz2ve81fJqwZ7wqzoJBPkZvi3nFgJ`N9Ot?9NJ27#J1y?jk(KXKmQ^`xY|ak z=gsO8RtKH@puvslh*J9-`*4GuC8I=ApkGSv9deWsK z{X%rZ>Kh|J_Jv&5g`dSh@Ncu+;m+@}g9{=K-!I44NZZOvO1^jKxQ2Cpy?Y*3=d+L4 z#I-S~7TIQOH~(OI|BZP2ulIn#>J32dE66q<*0~j&L3<)sug2FxgM-pCCIU1~oN>Kr z55B&9v#~iN5y7fdBPT_HW>LRJa?b3-DDB{^?LhH-tbwh5V- zgp>Lbn$@>lxd=HKC(*dA#=ts)7%pBT?Mgdr$918eJRX}kJBBkDHtk#!_eZPoBC^b9 z@{3I?FaGx@VZD4;8%W%{G1!3Z?XbUIbN-_%*{4EoXQ5jW_(3OC_Fods4I|G=NXoi% z+i}#3O_9L7#P7Cj>|ut<&2s1Mi_d`?w&L4-{Mpt7n#63M*&Ps>u`qy#omMD+%1-~` z$Lxm`ns;lVI?HS@%<<7Ed5VTWfj}PCm$B``(J{xU`T=HxA?Y$8or96%lGhn*_Y>@e zMw{oN&|}^_+ReH!irMl8T0rk}$XInxa926R8f1)*4PSktq`;|^{QT+6^Sh|`252aS zDus~t{w@job5QWY@iuG@r*d2y6AX?XCFXXx3ptT-u4XDPt2YQkZ!B`I1;w^RGT(#I z^)JMOVkyMi)EgcbtwXiJr9~TW`%uTE@4e00fW4jFHv&)NgJUh;msc7B2wB^XFDEA# z5i=4ZDs8f9KxA{=Qg7-io zPj5y@QyGr)f3}_a@#>Px3XBK;mWOf?z&BzTbwTMN6z^e?*R#?IiX-&fGI1}gYM8J8 zaQ{OTiJ=adrkACY@BiEw-WU`c-`ZtEw!kw0Prq1?`x`-f%z}RP2ZPHi6Gh~_IyyDE zbr*8?$eJAO+h3_<4c<~=*ycDyF%9E1mtc7R&PF)1!dR_X$h}X7ZRcl(0|pP0?PGCQ8M{bkq<+1F4XWCR zV-HEE|9bd;?HBJRmZ@-d=CSed?mWHoCXXzniOEbA#;$BBD(J>24zepPr%Q%~i=15O zcS4*#;UUB=R64QphuZxAzW85Ph7m8nq@*M~?ByxjkA^qi2=!sG?QGMVe)B;pqZZ}Y z1k9R4IKBeEIT&7$yrE0hU;E$dpg{2)3qhCz%0V6ZwcB5t>7UJ3N=@J+E5$ z>wM||_dDniWO>Yo_5+9*2AILse9Ux@VdnpxAO7i=dSk%%$G9T@cQwPG7XWt;+1+#T zRh6rQpL^p<*zet`Z-kIW45NRY{@-O(MQx?C?PdVhl9uKjla7?E+p>{uJ<_-CR}oz) zRsa0N`6Uq}y40^bESU;dz%Irp>rc=3Pd`#vpvG{S2ah>#0i>liWJh$dDqFKebbo8U zJ(g`DNCzHAk7{aa$_uL;9u02vi$mlBqiwwrG2~ZJ?|a!_0w)p_FzjoHzvr0k znsig=<@KqW=eK4X8$|vgTfoIbn+m`oC;83Sn<~a-koPD2Ccg1HgV!J%sjO zyAZ?K8|*G;7JJiQPcOW7+MKBe3(cW;;Qe5ES`A;u!NH-H3>B`a@jNGkicwr{P@7Nv z#!7?OhA4RJP|Lh$L#TPfL@3;kc3zWkvmmsmkXqNiFCZsg3);s$L)2U6Cbf9~yp>TO z=`R-29JPRfFIo|r?r#%^f!he!79mR;%+)O@O@5HEIR=R`l>3b^J7=c{6+~yj5Eu?I zvI!a9%g5I|dme_q0+s|gg!nJ>9+iXsq>x&E-{9qL}5f9I0S0lAwhXOYS8FsU8TN|jB zjZ7WtOHuID;p*oDE?cy>RYbd|<=0`3bnwJ*n!(krcEN;(e+0`T0xOjZo4|7A0aId+ z9F0@j=W`uFL9wNuh*#gp3?7uRo9tOY8z`~ng2&1Z$JiKIeQ)nIF0Rs{Lg#A^Yhy@< z(TUVjSNp8Gnrd!;ogMPSS+^I02;09-u9B7%{ykvfIF85c>H9$Mc=bGCFu!LrY{In| zE5}24)F85Aqx{_5+|c!Iht-j3&+}t)l;i0w`j-~zT$H0XwGdV;{}9!MhcMcp-z`5j zh6_FK>-3sT7JNp30BYWnEcsTGy2a1>k;9QazcqE20~Z)(Vg=rR8hHZDf9ur|mAArn z_-$oCvO75p$hRMr8>`s9@NBKKz;Tk&ur-o2T`u8%KLb7`jv1;dh!{V~mz^YYE)8Ub z1Ph%3wcjPlHY#_h*qISVV&!!1ul9~wXnF5$m;AJ_teS6b5xcAeb5&Bw@0UC53cbx+ z^%<0~@P1tHyGZg0I`QS>O{JEj3fb!HGVy%)kVA_O7aA1+Dc70==iZqMQb*T+E&h}> zTL&4+Pf%fC8kR!+f!3b6ierDv9MZt0g_o##A5TimsKDDlqwLh){RH zy8&a@X4|81?m4VJn6}!UnSFEZz_$Nk-x<)oZg%4W>~Cki^N1FKLVz2!6A7sc8P zn~@?vF?VG=qHR+prj^U|(*P}=x6T)bSG=zQcn4q8oIA$a4S6+Z{vfIsd2v!GVA@5| zm!~Jx*7)s8jokm>tX*JKvG&kE_aKmtyXQ)Qv2-P$I;Vt3R0+?${;P+f)k zeIl17gTMmUQpjEd)92Urgg1X*_Nccv2DT0K(@*0@lV2QyIKRI7)NfOEqSB*7;u{J= zn+;S36@`4|_gBuL>n0h;g9*k*OCR*8UY~Vr$1j!#wJEFBSztarW|5PVdpdrc0E|d% z!vRlyBzJt~!6;hE&{{_h7d^6pQ2RQ7=W@w4BYeon$V|ub1-UFo^j(tlPmk>1^P3@` zjTGX8)u2!6x2VfVFgMv_9f!0nTHqS^`AYok(6K+R_rvZVB;|3s{&{=0yKz=JWKE~Q zZCL5%J&zlp5b^QTyeRC?Z}%K@=CjAQqjYcRcfO^SjHE__bU84sU2}o&l#b%0RH=KLY~=>$=d|>bABhiZd8B$nLyl2)Ykp^gS?33nBxH&(`uGvo1tLtRRL4 zT+$iJDqbLC{m-jXNHYry`x&Jh#MrLCa;V=IAH z@@oTF&8vi537iW{n6Do>9^=SkG&z2`CkgoSY52`M_n1Q`dlwA4TS!9)ZLHSGU*@61Ii$FL`IAt8hY1 z`wMw}FO$6-$QfOlq@AdCpXpC;;R0&^WjA8K;~EeFtN6RqcUz=TKK^?D=m->mRJkn} z6vLFW`@)e;l=_B`L(wH(JffZv1B06a`(@Qs$uMN_Ru(~e_kfY#A9e3|XYqqxxbJz{ zq=#5%f&jQuU+x&f3BjQza=(*Aj(S(hZ{ITchtvLAO?u}GYv*#c@v~0jQ*vx6`Cov} zehHL`nsrq+{ae!(9WQ0s(hj@d7e@U!$SgA|9U^14B{O%oAn6+_e%XbE5$qylz2HIwY4#rneqC{ zj_aqphg$6Iya>sLapTh|ui)X)8bD?O|>P$$QRPS%jUQDS)yHoEz)J5r(fxH0oFTQ@0 zdh4FeZuRYkpyw8E(Rfmr{VL5=BAw!snb4Z`y}iAo^5Xros=?HU!;v%Ov$jfktx>Gg zL)}z#TDklkdOSGM0<0V}UmOlGxwXk1>Rq!Q1jH)Lzw4TfdQ9_aB26~d`qG;8Ij}_QKyA(Tw2uy2{8*I4 zeNpI7MZYweTvxdh!I5ND=h$1ks9WcTj_xXRQ|JniK8mIoma~*n)#;fuDztGdgmDLU zi>mKUzy5n3GtElj85eo0s3NyvZqJ`{%A%qc>}ieBL(ZS-e(6!^+AdGfHQkXiPe#Qn~ho|flD5c z|Ag9s0l|2=BW7xA=Zd_Z2kV_+l6ByY^!>D*x8uBW2-bRI#BA1V6%N~)gQE@NXp8;p zckZ-0ue?_z+8U(@B)O-FzOz1Fl{M;|8>xwKF%YtB2qx7s(q_pnB3Ku4x-VO+QmE6;1=_x6lAE zYpnG~VXp3Q{0?5iqGbBkYUih+bFK9$O+z%XUm>**qmr1_*?NKGeyKV(t@Hgy^VP94 zZm>Tvt-~MCFq%vtZF)zWcx9=~YEazMN9(5~FT>xCh1c#S$x!Wwy~fPhF8Ql`C$FiP zV=|M@C?n_;8M+Eut|GTavS1bmXG@dB%z+#@RH!5NO#kd7N3_7 zSdy?Zfz!zWdrKrsE{dD;mYdJ#ZNjf0_^+Y9Y8~Zu_OsLD(OPTUyxF7lh2@qA=AY}k z4Rw$kEz3qzuHVb2$B}nf93iEWxLglDP0AZ5G|&s}-wlYOdjoQX{-UEQ569PO?*4%^dB7P1873Ivc;idif?+e{kmkP5k=wtT#h9RG3w9rje5s666j31nS ztJ4zq236g{q)w$?<7yM7Lb51YwnmZoDVh6y0qWTEEGsB>G(w}=UPkRh^6&$M1~9P{ zstL=9gKMKvU$(|I zsNqBc2nJ5Ail#)tkW74Sp}=6tuipHw`3R3F`gYK09Jk5sB~H^9DCjsTFb}8U@$XLl zUn>FJX0(oY0duY-R^ro077Yu|tKp)yo8fbxRElo=$P$X=cyGl?j*b3X!xW~TB=zBl z@BL)T91fAtW2Gb^Pb2X!3CZh>bJbt4E|;41Vu5N|qC4fgGT(X+!JFX`m-dK#9gP=9 zAe>6Sb8)5dE$v!U1pV8Dez*BHv+|00QBcplWv5{qPVyjK8LqknvdC_ZJ<1&q~#hJ?}1m;ZZ%UU#dpb?wW)=q z{kZ^bS75OB3Uc2Hsl^dGNkTd5SK(hhgW_Hzgk};>7s)qmknGE3txO$W`H{UkB zYh}Fnf%Qie1}mUl4^G`_iWaD}!kCc4b@hzPfgMN&ZHLRM6qVqF0oK>3SOiS3kx(u! zoXfo|QHj1|v{R4K<5^_f4u~iGMM5^xL7QUi*`~16G#9+?GnryO{F8fw# zpE4Rf@JU-&6gpArx05>r!?{N~oFMGH4CJahkdLEiCkQVU-e*EO952_a@!(Tn#t9p% zbmkBp^D@j2^)oaaIC7kH|7p-RfpU0<5gI;c3q2n%88RPDMKEhsM$X*eeQsEex*fz0 zLUKt~1BB~i$=yZ=(RtK@45QKR#^LAprxf%v?!uP_DlI`hu0d(d@aN+ zLCCL}oXbKzAOCO+-SwxZQsOD-?-aLYn-7)CAJ%xBQqKzIWx=Qlg1L`4uRO}DOW1h+ zx{m*`tnja1lt_D55|{2q8+W`HPav-*A~+s1*^45F>5~K8dh6db^~5=-+=7m7Q-ggCh2rb?qWHNwcvNS!1M# zS01Zt2_cL2dmhwtK$Qah`S235z+)H7ezE64<+@t7dh%t>m?pae+r4zML*M0|%Iz=q z%f?Q8W5I_#${3K6^Y8_%g7WL{y%>xg(++!vy0bjDOZbUS|1Jt7?ud|*)8BA<|z%`8&|Ghhuk$D2K<~WLc8xf zRSjT)SD&8)g(IbFvcLd+cxXrg=)bQ+e5lgq7nQJOY5G4;|< zc|T#R1!Pp=3xE4FC65W-BH+aTMLHmgg|>s7`1;}QGNDS25+$81at?`-JBz)p6q@qF zP*M}{fnIZ;8;&2zMhJYV^8C(&^OvQ-i@e}BFpq5o%c3} zNk=N3VhS$f7H2_eX=E`H^e@w4F3vT-=E3X7;7v}=h0LZZ(|=DdR>*bH5t@vZJFOA) zVz45;{%sC$J}`7Eiqb>;^sN@K{`M{4d%+h0^W<37JWUY|j`VaGRj2@&r&(>Sh`4?0 zp{m~%l8j2Nv+bg@MjY~mM9;ImBBuPe>`xj}L7R3_wO#FSS`2*=hN@S0kl3cAw(KwI z1&>N*qR?#zCBNqTy)Ps0Q@B^`%)YVSi?ov}Ai%{?LC)^etFX(MO@|%?kBzCTpox{0 zJPQj;1ki;QNGFFnPy%k&`gUXw2{~_3eA@R(B>Ot?0u$VHJ7vWPLH3c z-j|9YpTD2>3mED*y>rJa9{KoUn@x=I-nIG4bA$H@U3(&T?Ag-LE9hZe{WR#|;~R8h z^nAW;QJ-;V^&RcW>#z@}tD`k9KHC~+l(g;T@zicZA_MkuUoNVnzxv~h;f7(zBobGy z_r3mxVUC7`yCF*f{qxziH8}y-y;OvU280uOXki!{89j(Qqk>?|AmGS5iH*WDGlg5c zpoL_IpPB-#t~cCYva%SV%@pH%h4hBL>!baS!P{15x+L zrwych9w+bV_MAJX55QgF;`izYdhSeD{<6hH6D~0B@fr$PF@a#HP^Z#~UDD?xoG!^- zl+3o|^S9JeqVQlJZ_CCgtPB;L=A7*;K4JipVgxr#JehRS)@PYG9J$5REKQE(zM6Tl z@EpX@6r62Y?`>U#|KUthq+HcUtCs)n0iHqB*U!DYeQq%jWRv{mk%XskF!HzJ%3z@F zi3qFbfE~2yu8JpqK;PhUSW$mESuFr208Ltr^}g6ta5wRC8@CZHL6ueZJdw5SJDjpI z8s|kVvw*J?R>lqFi|NE=7axzeer$Q#!1!*>T z(A(X0*)jD8Txz_^Rc#6NE~D*s$Kb$M-6JN8%8kQqlhxwk)#+sNCYn|N-uf1V^fCIC zr|;Z);D256QZI{xZne_w_dBB{Z9*5%a36( zUKo9a%#PEgP%-6xGBVoDz+7@&{NtTf`66Q(TEeK32wFYCrHLvNCs~@Y22iIHliG2v zjm)>b3jn8CvIT8&f#)A|1uD=rLl}$gEFP$2so)f|NGMs1j)Vbej>vQzh(!v6&jgTj z{ILGAB>GaQFmPA2QowoZCHVD<1BR6XajNMm%ybZ09?1CssOB|t^xN}@INqpK`74f_ zUO2u^AD+d1{OAVn)5|dD^qa-IqsEZLBv9yt1_g0KRH5_2|A2uCBR#HyKX|s=XOLGX z3?(gA`Y$0N{pB1rMz+6xcW`ra6|iAE_O=ILISAQf#++1VsBt zdazF+6TDnZrUv2>68EDms;-LYJE@c%`(}aGiJa#Blwc@nkon=tuY|=56Zc?mHMR|? z7Fr)nY()eb8MM++Nv#D$o!>o9pm}YOHBfB1Z2U0hZuBsdU(jk#dI=5J!dTJZyF#P= z$%7E=`(NxA?^B5frB&E3`;FW%@6Q&8>-?!8IvoVeWUecG7m*%OBaAj-g$M-zX*=-D z0!o6L;34>Wfw?$vY>?W=wX3#EI18dYpj!SeT?2^~kW%mFG+FE^ERfh_Tp=5hcHSmT zEmW&S~T{ zpk0ZewbEr!&kucR-baY~T>sy9 z02eHfIs|1p{+QJm$%t5Lz#zdSqDq%bOg}~6>mFp)L(U-+@<68BM)~;i*DlkKL0wTw z=W==S>=_PC+}3E>ns^!eu7CFR$<6&|j}p_$4%t1g?6&uOa3vhciC9ootu7KOdQxE9 zcm*;JosrW{AraLDEA@3zAX2Bnq(-#NxG&B#eC~?A8MwHwB~f{@1^q^9+>cA|mpn}1 z=LHq4@_LvMz&kPb9CMvkLP+naMjW5fSG2Js!uHhmi~toe^l# z`(*CO8J02MZ{C?%m_AjQkDZ^Z%NDMs#(*lSOKgtUcD{}H>0mCYPL+$w^QHXoMCN@c z+Qlq_(Eq%T^DU59!fGar;+#XBtGIaKxEWlfxeEq%J(sB>F3{Qjgwc&b!})LY}DK^{athJ>5Xglzk>EgY@H za6lR3;xEUk~6uG?fgVi`c|>Q2pHvC{lhO&0k5ydwTC3vsL9AX^mH> zE!&1R`#zXhap=6U>E%+MwN;cUq=3w;NhO3 z4&-VuzomPWru|879wt#=P3~dE*-{`KdU20ic>$8qx4t;!55b#k>s^ae_lrXptVBW2 z0djM6@Gnm>XbkQ_$7hMdmdR4hTFb%7YU0Z~Z&D2_xs4bi$Doya^Bs$hZ|Sq~6ea)p z|g2Os{Aupa*M+5wjJMT2o{TA~$IH7#VJb zgOiB}A*=4)3g&yg{kb}$3rF56Kx1Kf$EueQP9rUD^Wz&O+=8C5`CEza4nb#`45(Pw z$zhF9?3g6S*xMFy<_t6ikb6$ zchg|2H}0NCJ5rI~A36aIZN^v{|=Q z7f2okLDYbLRz{u?Em7#d(QiQznO2wnX_@6!?T}fJ!{?fbzkw2 z1oa6FDEOr=W$SFLc^H0x&v*S>m;Ae5{(0K0;w-ZA%xhKv<3O_?O&u9$RRqPt8!{(V zDgFj@|D3ou!uQKf1(*&2{3W;bj!T>Q&X3g#ILrMKc!-g>H>CB7p@xFTeM+UsA{K+N z!vI(pb|(8ctU^hy3H-Ot!${s4Apn2Je~a(0wp?fuHxL}fo{|A`flnB+(SO$%zRBj( z?~P+ps50%R%wvc)>z_WppvvWyd#b)%=VT?BUIb3ABc2F{!VA^Pgq5!1PoAqUBEaJFQEZ-tkaeYRBwZ7vC*!79fGnWVsUdcCCYogVPI(R|?D zXMO#9kh_lQ%lSvJ(u7_;8pOXO4fX-ivq#X8nT_i(M={a8fWy8QeE&Z9?Cx_|XezXC z$J1-UsAJC~VkFh!yK`osq21Kqd%Qe&G0>}_1QH!R-Bw80R_+aJ#keH;94M^@dYuh= z@?E_0WEOmPD&rI}f5mto=?LJ$sC$R2OsWrtegK=-z+Cx65tUqd>>=+VB6Kt{-&i>T z$C10hZLqgB|9o03gm8YO?F>A96EPtbgUWRW@PKKD+Xu*If_x(OZC?mLL5ShG&E9Yh zNr`Ta2>wBHC#aK#E3zc>Mf{~XERHn20&d+DN6m>n$y-j!d$m6S(?=rW76VHlhi|OaV$F0 zVDsO1tZZ>V&TJ-(8c&}12JPvSOTT#}gwlsP6%GXbY3!^q?%29@X>ePm?C(kp)66<% z{3Y@9FlvRWgOLG!Y}8!&#dd$pT!F6l{Sks8+cih~JJIiJBx(NLk&RG-@DX(-tJg(} zIdM;|XR4KTH(1=ouR#pXnCNn_k+rqqs4}+@;n6cR=>gzVK zm!B^L4UkIYK|z_*a7d^eo!gHnHgt_zxGYoCv_L+vf3O8|W)g;Ix~fj*KlR}AyB`fc zLG=PlQIisdiM9V6JEvYDiGxTjUo)t-!1H8VU(jw4CpOQUoF6dKL9rocKAf8a#y=yV z*Y`(T$JJ}H`IKVXg^Yd{5&IEI|B#GL6Slwv_mrz=k;#@)HzMGv+&S zpZhT4+KK_fa<$VG2BU5@&RB_#%7gnr&z+4Qcb-k^Bh)5{3YZtFdt2ETX4n8x$^sg= zGY$UP0mqm*AUhsf{Pu|fsGR55KyW0c!Ri$lwsn;QA5&^4#F@RV^Y8W}^v~O=UpGpy z+1a9Q`JB7CBd*yvDz);}FOODVM-mLV9Q)hQM~=m_qoMVM`R?A!YUt?8) zVwz)rZb;){HD4V$U1up;Hs`FL<8|_Qx=afN%+t7E27VL~tTxZ`!6_$2Eq-qbaIk>w zCZ`>FE51gDRR@C{ux~W-ErG{~XDp!Mj=Zk3X&)a5zk9R=5>*-tofIjKf>la;q`l>; ze=pcBH1;wuF{NU*hK1Fz(g?|Au=0A9VL7aPe*-$LXV-ek0-|?`Ib8F{IZr4TpP`)e zDMX2xqFLn4=V6cTNvXu%Bszc{4#eKMjaC>+S^x=;JuS+-;}frIS&)GH>D{|`fqU_k zxeB*1yhflB`fME%4@q!rb7=!i)akbBe=rzwKC>NJ_DT2+qFc~dg(%;l|Hk$Me1h*0 zn`RYD{dg>oQ9j*li+}zRLdSV8ZUx%@0v(UNb3D;>%jjR3E)eghFR`uhJOz6jHj!e9 za4%!HO_?(hi--D3o#jk0P~}tpJQV%reoS)V?tA?#+H$J7z}*fhx7zSr(pa^0=4%}E zdQ;5fWIGpF6NqF`4BN?7Ls|7y&s<4#&dvZLs0=DJglBiBg#0!^5}PrjEtCE#7j$B3 zY6Z+2Tem9ro%PLV!2GNjiO!jFCe&(=%OD zfjZ3&0VjEp;#@&{A75vWhd*y-IAu5Lqqm0edogd%T>IM9=ID5z8L}?<8$2ET;FTQ|<$#8zX28XZ;W~yZO zimtx4xl8o#O_H5pWt~+W)%8_{85hWMFZ-O3m z=ZM{39yDCN)6>qA@v}Qf7*J@3>k?mjF?NMKiq^#a{jEw({Kjf|Nkfc~s4VQHK+ zWIPTDQO{&(9gA}C-8{)OC%^km40u)=|DZG^_#Xcj_WK?hf*O#v9eBt{J8+>F?Ea3R zvrvX4i!B$}U>v?Q!HSGIND){0Rh6L#PLtJ?szc=|Y+^Rm9Kp(Ql8y3j_&z6PI-oRG z3r4c&G!12R^w72|f4Un+n~4?g$S*gX{e~&PCSulzf-aZ^BUlVwv0Lg(yR@v0ZT_0A zBD6I4#Ze6C<7kjs0H`pUMC+kk47(xYu3UyZJeSo;gg^2*-6aESIh@OCkZ9px{i}*x zx%~r@3mxDWdFI03>4`3sVJk3!!48nt8|43m^)$zFc^cqq#It%`4}maTcZ92UwVx5vlwm?k8Kv+P1!v@!6APi){r4v zp`B04-Sfx-Q$ZMsBxEulxPwBYhL511Dvr;wDNWVhZy>!-$U%~ zTl;<~x$=1cm>vRA_XR@U_h4BLJXHan^PcAnfDFdrmGsDZy4nvG$0P~YYtBe(xd%N7bsd?AKt}i@_vBJu z$cIl2NM zu`yD$Nw_5iy!IjQ7shzZB76HDR(AbnlXIId%7Iru1`r&qOBaR!pIjv{fu~(*miCZ0q72gm_^jg<#fWaK>=_`|;bI+WViRMbJ?w~lNZG%tn#JfWUT2}bK6}=b5^Y*zeC|@pASh)6?emIS! z^84aB{*ED7bZbxYd6R z{wWVY$&2{SVIM^sS4CM&+lgLo!0%Dpw=CD2`cyvUbLsWom(Lgz_*qn32^x}fP0qRg zm`-VR#eI4$<8;{pzsD$;aDf8)+2wZP2B0>Lmf6})o%xwon+;y>!75Fb7=Cs8!$fncC9vh;S^O{dfm+Se*3^2T5aaQo*)pcS#iDAZ>d!2s53y-->%=$KnA?h zA*3+K1g?Vr@x8n|q#$#NkB2=%h(qs@%EJ-C(D^*t0ohc-pVg~KpQfeO$ zFxbOW^VO@0ye&f)do8lX{bo4Zfb`pvFMxq%a-<1!puE*N@?)aG(vAaY8H65%S;)T-y8G1}4b898TXU z3qFYZe^~QeEtcYpiIINu;TXClfrN5eg&2;|edV;|GJaJPy6w0!s1SuT?N59S`Eb<| zP0Ve+wu1msYhnchUnH9=B9&|j+*b0Xd%nR&0EPow{|Pv2qflE4>C~rT2toZjNL1tU z&TcAFvd_ltoebWLKQB)VMI)px0!7}H85Jl43Wu_JPk|zkHAxg{l;Mj$;|UU^Oh^Ci z61El#{jj55rQbe(juMnRNx^MH+MmcSiGNv)xj2f7GeUdIzZG}FKlWTaI96FuUQki? zn8xmc<64>i*Op`@u8zMG49`OEWUKR zF7F~`frf`6Ds+xc>|6jeW#s1VPY5=|Y@h)5EO^DnN(4 zkGrd(10ARcsD62HQqtt=K%x@A^(1T1G{R`N{sZ=N)$&N(O;7tO9#^A;eJrQI%V2U^Fd-v07gJJS`_|aj& zzzbgjS!UKW!908h73q9$tQI|KhK$yHoa5rY^}v)Gi-{pg)US7SeGCdtws+u%sb$ir`4P;`Ytq`e zgkuTkDl&HIRxdDGGJ+4`axArK?)MzZMRPr$Q_HxdV7zl%66;A(D8+P*xj6S|6(&~E zH6Wg338?swdI*%C@=FrESi8#ZA9+IKmwsa2XBtExBb=C50m+%?Z?crZbkeJJdei86 ztet*LdVp*#{Sy0=UNm-zMnVZVowRtxJ=ppTQhuB^Ru3uS47D#b5$CIB&jh;UiOvyY z6;<$&(L(39w(D#reY6a`)yR7YK|g<*V%4HGemVSr-HG;7$JEj}gf}a<<@F3s$d>c= ziU+xsqEVk|@{A}o7K%JiZ$Y|;VSi8^nEMU|Dj60yO$9rhFKc$RrkOd>q9d;^Y z|K7{}0wos{l&LFd-^9FHeooGG65qA}bCg$Ei%?E$N^Sa}a&5)vQ>*da%ZG$ms||xs zU8(}lab~>a1}66cPFa;BLD8m1^NtrEU+~ha6>{+VY_LcVTOuzb(irFpUq;FG&pgo= zKj?usmale?a_3?NFk?wWl0e{G>r~bp>BY*6e(;bnhfwv5Tcc@#b0UymEP_-(j7~Z($}!~ebH#aBP?y`67A39w z-s>mU0EDZGfxNPRcd{)E$2ilI)+ZD1Pvu`ZcWgUfs+k=ottRB?|mlB5toE-0`syyn1`E{hRI*e zIQ4zGcUf=$=|pRIjbu{|23 z+%~g;>Lt1|b$hcpw@U+Jjy>o`(q8;QNmxVUvYHeE+&FOhKmKw)`2^>m(pZSn6WvTV zeu=%&Edmxy5C^=@l8!_M82o8v9dfx}9SUp~;&Lwbu7+8B{dMQ22Rv=xn?+c#+c4DjjPv+Ng%P8XG6e$JW5-gL2Pe zp_bD=-~HMXo2VF5qewioTnWR=`33zshkrELQARQ@0r;umCfKz`uzwH+8*lk9Gdl!#gA|Wz#tPfYAi=POZ%pv*;#1 zlGKe7qoKt+2htru(fUv`jn7Mjh}}4fH!0G8=@ds&ED(>5OXVbwp(qkQq@!bo- z678SVhD}Y-3=qz>)r0=y)JN(hM-Io!f>zcAqAU*ey}|Z;ebB1&Ur+C$BR7d0(^A(b zLsDs&D}KA61W;XhlTM{kP%t8zZ}0>>>s;Uq ziI-RM@d*GMuY@#9-qmPZ0HVH_?K!d3qiB}27y8AO7uL*FXBmUs8#4Ys{DkUp?Ck6) z=l>Y+{)-Ih2SPyRbQvq|l`&v?JgR!dTN~#k&MD86|)sBKpoV<+Rg) z2+|43u)tFMiBN$Q4Yi=pM>Di8@B@P$7s5~p+gc|5Tkl=cJul4 zQ1V2XvA6ZiD_FwLYbVe#rmjq`Q-sso9js_MLm=@W!qe-zw-EpSRg5GX=AIr%FFRcC zSJJ&ESz(8N!O$KJGTO}GlO!8#HhQLzC=HCO)b8GC%*UrwQw;$I`@bNGPgTheZDa4X zK25ALqVq5&>d-&qtWaUVdE`H zQSI#LrGSgmNMi^2UvH^M*e#M;^GvVD7G<9*O(PH>&uD!M(0`e^MrTZE zZs9_(UFZZ+au~z#&v%yfegdFG2~f%a{HuQo;Ep}LF(EjJw!W(^S#-;|RigcjAOFIy z98iKPN6kvxHMBmil-I>mOo2gm<>%G+5C18){<9EpY|u2_o-IYFp`QZ`7<7%f@vXj& z_SbpsmLyEi`uP(yKRzIC_h3)U6XHU3Clvia5yzAyu&BN7r82*|9dwiJqo>AC zLjG}=-?exzntwN$%TjnjRZmGxaP~3W@*;G~q3<}J<*j`2ndvHDM2GYlu$vF+@lho( zr?gPr`{_s``X-|}f`ZSJn*4%KuY{tsqbwC5LH8d$lksU55XJ5Unr~d&q?NwJ5Zz{n z_?jv|G`PmwXA@eLqgvEBX2%Us_Vw%I?)9&1Uk8l;*ehWBkp{w2gL@7redqw+x zbzLjvFCOoIF|2NC3G|pYpc%}T2N4>-mPF@7p+Y47N_VhGbS2zKsveLC4CgCpou3UH zMzg5~GNkd=7DOq55qj*zZ_BLdEIjlCM!)aUZv6*xZZj3i39+YNV3yYN#mpu-+_qm} zo-FHMFSkp2cIsPvV8-fBJ*o^W9LCVxzI6f569(tl3BkP@hYoKy0lv5lyyRZzE0Vm~ zxL>y{1OzUZ_UrY?lf$At4;I-v>>C7-5sMWyJQkLt7Y7Xjke!E@D~6)Rt>Xc3F21LE z4_i&RT`nop#tCe_}!`RoUbZ@i8-T+gsIqfw+)_ZFHQPGx6(b;PEz&BLzi_R z^XxiI%R&R}pcv^m<~KPq@ws3gQFNr;5lDmn*`(Tcv0Rj70c|m3FZuq!UlWx7j8gvm z;H!jIS!6ftyfv05N5ZW*1|taU_-(54_GG*9>!^e?UVE%}!8KQ@%aF%fp88Vh7Ppzv z5qYuviz1V~_6LD9L20E{s!)h1y&nKBfNg+=^u zYk2fjdZpK6qMScmxGe@9pMFsYn}R=U(S2%P+XS9kCbD)tkY_2q)$tBYHv(Bw1Qo)c zCr2J0sKs#W34{nOPZn}o&om}RJ(V-T-TFoiIDrxpMiqn`dS@enAZg0j%c zmw|HX6i*v+I16Mbsjp~#zC0i@102)Qa(z*+Y)Z&P9bn%kfLMkP1c zz-ND1{OEhX9R6j>JttU<`DnJ5BmD_7kc~Lt4hq)KG@v&UBo6Kv76ms(Hr^L>BYCs1t^l zdi_0Bcv-FIE?}x>4zA-|Y}=En8{|(Sf#(>;H;5{O?7Z?!ZHdv_3WtYdMGLorugV)K zpWORrp$k!}-uFb7hQJ z6|hY*@Bx)C09`*6>b5l2HCo+jo8NAZ1CAU+D?g$ck~D~EYzg`o@8k)*0<`wNYLGZ# z^1^UW<+I4b>j**ju@cK?IfDv^l3wY5(s%y*b^m%29ZdHeEIsh3c$;6rL-ptc#+1X1q|U(YX4WD&UHRH`yD6$Mrr6+c1~ zYLh|*>bICA9*30|m3Q8_UQ!5pE7sY}h1xut4L;qS%L2#P2$+?5Iu8L43!YOz?=vuN zc?xtDBUr{aTt%%EBb?z`(%r{@%t0gB+l1 zivhE*To7HP2pk3&=%HOa51@MOchRkA7xir1fSC?4zdHw~?R*MIM|;ye4i22lvDhD} zy&yRTC=nvS=)!9J?svss$+K@UAN`L$;E(k%`0OiJ3CpYjadtSS*W?qF|Nbg%R_Nsp zGjnq~Ya}--e~sUEp0A)s_lSyWJ5sMioAY7;c`aGo33w$8V4N9sBf-I&lc4~ZW8_N? zV{Z^1c6iD{{{qDRQ=|P~A9CNcjg6^2?M~ZJSMM%Rww-IF zvj!|fL{G?a^B%BudTi|7m+%B8#c@4+C>82?uDl6)n~`5!-fHivOdgtN?1OtJ z1~L`$Vi;5|)HuJdKOi^Ze({35#R!M`bze@)}t+R^Rm`4EoIC&nW>L)WzYJuQ8A6#=F>cv99QEGByhz!(2c z3%CRp)6reqe_i3L?Q){#^r1P7CxQ@QX%%d`1`sU3iz9>rH+7*NYsFF@Q$)qxCq3Y3%52e zP2V70zp=L$BrRfD-bMo2w`__+d&*~ma|!`($^a4Zv3n=CYiuXJfC;*ZyiD7>|Kqm) z`=ZE)d;F6IM{5QuPQ!rv@rmmNll$4bAr{eGPyv6MF8*P1pBGVr;0-SkXE5fR+jc%%EC}yS;6-`LT|iN{Tlz@9aC4nKqF|*$ zfQjpy;EONIZvfd9FkKYv8$M76Q8i2(tt?pGHz^rOH+jNHQTd;(aVv~<0O5bRS?flru0 zHiH58aeYMu(I3+UVAR+joJCSr3#tA8{t6XZ90p}t>OTMh-0(I)xG4a9YCslb)bao$ z*^M93zu(wqxUI)CYq7QK++&`6g$mRTJ@@}+xBSkTrT={1`gG%xN z5pN1ev5_;EPQV0rmL3me#pHRM?!KYF;Ith7E(LJdr>3T+fG40uAHMA~L282p_gFPY zngGd^LEHWae6x1wom>C@b$@iI7JaB?22qjw-RM6|(Sm8-F}LCy1g7jsS!8Aa&PnM<}`d_1zw(KkL0)!V|9 zJp=nHr>dz7&^a4Kc#7(adjrPZ2B6=4$?HJW15p;+8YogaJgpv>37`S~B*fA`@gMHi ze-30oNF0C&GOZuJes!i59{pcC&3hI!aASV0^}kikQFc4{jqc52$Hc@0;OXoJ=GWg3 zfd|^J%LvHPX_(YJo1_$D5alUh>%&&hbG*Vw@1G*P7oP(%XSMYV7Yyv}`QheP>tMYo zbAl41n@hL_T?!yW=&nN*M*rWX&`S-1n8dUc3!-wKTk2~*{8t?z^qKmF+2F0DwWAr8 z#Fl&})nYN=8<7VLp2g`2{hps3q`Hh6PKy)I&W0bD2IrKK(?~oBCVO3b&50$Od@E1h z@J%vTiMaxP6{ZGQF9A&65B{$M!$*D*q=^l`$!Hh9Ze~CF?~_emc5!3mS99u(8{9AMJK z&8V9HqAP-8p-_KR5tNz3Doa z2ql>@5hG%?sqfM$+;M`U!m&Wz2TW8M6D=qYj<+wQ zqowiyq015ebdlWG{P8vJ$pD}qJqL zGLNy8sU%(O0cG~e&RZ90>*SAx8bzepEMOc{ycU%d{FsUKebfD)J<79_Lkv1esxdD` ziEHX|(Dn_KrbihHgj;y4y{{T?&1C(JUdzU|flhm4J8{J6@Cyq;WWfMC{ULBmpa6QY zPe67-9%Evn5+8exc>8&Eb*m1&!j?+|>k(i;pfNV4PjAmCUY zeCu+0Yi16p$YDF%+dvKiQw1<*Wlc@i4VyQdZ037~IJ?C{sk5(F`rqFkECi8{LO_+9 zo!q0KrwlUcL^EZMP;R~v;Tv#dhcp*!{*N_+km7xOCiQnoAT5qEUyjDp>%`sE*bSn~ zFBS>W@h7&LxMp1%28nu`Gq&j~uGrXJ0+J6jU-+;P0JkRKO)d?1tyw=*aK-6tAkfkhKd5^5ng~?GmBFNmA9m&y-q!A9`+V5TO0L@*0;z)LBXK);%O8M& zlD6~TfEswUC{@wRU9LeZRq!#GEtXRFqaxAm)SFG!HwVX8WI?%)r(@k*Rz7qoA8?M#~mQ?JbX(YXo7?y}Ygg5Iuh9jJ<1 z2`F6KCpcV?RWc9M>e~j<&;fqi ztLM*0^6+;8f1^tVpb$g@f~M_H2SGk;_3?YOfC`??EZmvAP_A1Hh`yfZ7Sg0=rWuQoE8};I$Ty<4GsDt;2v~8TFm#fO1aUJVZ0GF-MRjsLD78CsKDtn~q}t)g7iL7zr9mD zSXWyc*@$TCR|L8w`4Y0XUjar#u#cka@WsmRPiu(x4QOX|z?3QPxr^V^Mz)gyQ~f>9 z@bo*NTYe!3k|)wQfB>r!*b4;OR~U3rhu<}^w3GqZ#wAToBghe%wcO_?vh`druI~yZ ziUwL;`oXjFPEa4@kRt_y$oU)lvVd_!lzJcH`vw0`dT&U#*8d*Lfv#w05=UK!>oCXT zqS+V;K2*OlSFmH5Atr|aT4q~3wbi0^7#H(GzrBs5h&agrY9IZy`a?f)&M#60pr8TH zVx#r;Dw{Jt=}K2;Y8y8o+X*D=PPtvDFF?RmGTM3X6zEy^t)XfMGdkGeQO1nT5#-85NRTDBh>V1Zr(pfA?PiLe)elO^)(3l7{(!0sQc=nY9Q46_<}&E)ipAX zQDIv&;N9_6o_zEdc?gdJ=wL=5n7b$*0ae*D@dEWanntgm-{u!&HsDIi^g1j5#$kh? z)jB-eH#A;QAWGk!x{Bb&_PS1~Z-PduKB`*pi+2ZNxhxNtJ)rpPrLz){3`-EOE~Gzv z?Yt|Zl9Jo|=@}NTmZaNKQzQAHV11(xl6+^TDFE#G!leP>`S%R%v*9-uIk1&CWde9I2!K7#fDhOd+WE*Ozm`sGmVzbGc{jVp0EZfBh(M~libgtLgQHA6hE0#9 zW~Ec&O7pLg8HA|vg^}OHKW7-IQx+-wcpTTGy=wcaU4MwsAGJ_c7+?O1?4YX_fEbj4 zB+QG?36%&1f=kj1pIGH62Pp@2Ro+^QN7;iHb!r0#K#VoWTJ~b=x`q1z{PKaCjV7UX z4{$Na8MB-yLahA|u?l=$XDg!z+z~J;1fFNo9DDkTW3~udj6PvhX+*Q0u2;gp0NpMQ zojbs33+$tFIY3-gLxhO}o;Nm&R;AP~+_XO}ujd1a9QC2xDZ?lDdC7-$M*&IQ<``?LyTNF{Mv zJ_S1~e1hrl9Bm(OXhAGy3uO$5#L6(^GfuRK|!yz2V}482H_zb=26j~ zL*IeuFfe={gY$Z)8udn!Z!QrAM4=aoKo+v!*4hw=epCf;)mRH;{b^ytfU*RdC%ayY zHUSJG2(5E3PPd)RXV7VN7@Kk1=_+5!ikT4RU8O7kG+e~*lg|5LlhN&I`rripf3e?i zaM6LisUIGlG;>-t%hq_|!cbVh%@hE!(}Q3h^~OcxFbe^V@^$#>oq^ssSCu$yikH&u z0r#3lZV}&AtAOL)zKgZZ)BtOEd*Zq)_`ZB716fm$t#&GuBNI!-6~m=oTKHl;gJC}g zg-cS1zF7HAxr-~+ak&a6`;(}j2Oj=i!bDY~o{tti%;TCj{qXZ*fH`91=c#ow9Oj2H z0eph*4Y1wgKnug*f1$99js=W`50BHO4+-^Y5>NL8>Gu$}jAGfTtdgj2n?{Ez0;Wxe z9cRYHcRy3PiGUgw-{EyeRx?$D%@*Adl~k!1Tuo-gY>j0+G^+}CANV)` zUoUCk8%nG6>ot(CgJH~Q%PAAD#|iVpCohCT8IC)lI8*GA`sRt{g7l- zBkqC;wYZ3&^3K($d1HALqCCTS28)sTr(2086q!rjT_KzFDqNeV7C$8BHRJ5U?wp7D z%n6y32H9gK-J~=C&0zW%QL%+pTZ@4$g#A3 zi!VIm+m`_iNK8*N%eGgyY+^RkH7U2ntk?q-@4`#xv}YtfE3Au)W4fy`s$S-Yr#!7E zyg>+G1=4w{@&qvRCf_f4kgE?nR@?7zF38-> z4sK?8aEdc;u_owpBdG(#8R7{ys^33*7a_VCPp|Y5q&w4)1YA?Fn}mLzGW}%Hx;NZ> zW~|75{iuAZmWZ`4p#Z?yQiZGi(URl_lZEeY9BK20vLptFI!a?`0{APa5eKnM-XD5k zPLOun@BWN@bAWQ;Nl0{cap|Jtjc!N`GS(CeS7EU#I z|CZaP7!&Ra66@T)ssg8N>CM<{%2MURDo@qBcnG`TEKk0Ar0=AM_@mtr6^-9sTzSQd zN1&@-jSqMWWI8HEPcQFblYiH>gzHmlk4=w%mU#C&3FGQ)Bsisx^c$EMIkVS<=Ak$YwUm^ zNlV260xY~3lczeTzFR1X6eLn2pkL|>@m=GzwX`Jp)ydgHD~U9GlX&1_baVEG2t;M2 z7=skW-H_5EdQavg5kQ0SO(Zx(@O_Lu^R(^EK=g!@F*$4Hz4kn_E9m*@=IR<~FBC=l zCJ;hYtkX0eKcGsSv;^_pJLt0$7EY|J39C_E=k`}v;+Eaf=3F_Vsgt}|1}(Yr7S|5F z4WbjDMx76)k&Z*g|3Ox7fO`=57N(z&@xpj&pO_;xo^9qfOVw|K3*#_cV@`s;r)qIK zlvvn3Tvy=GUp8{{+BzXiTINujL->rxU%I?7`~8Ap`JT-kj1|BOh7LYoeZHsysydcD zU>31cCFMUJLACB$y1Q$;(w*A!)wT71mQx@aXz-tL`@D9s$pfykNpv5z9M^&je6nH4 z{_$(T-OA?pz!3WpN~Z($?qA?6(HQDIlSqhN1;zrICWo zO|j!(@^Tp>yuLL4XcJk8G|d<6oVfmE=k zfLeD|4h-NV8eR9J+!ItkkvGk$#hvZbA`!E0n4Qz!OCQ}1+X|}n76L{xYkoj`aoX-SUFn=R<-f4LHC~1kngV`u^88IMYCQECKgR3duoJU6B`BZd zojSXn=T48ttQJqMmtUmJyp{}q*SZ$^sQZy-vl)tg{c%czLs0+?L#XW&VGC_7@wnK7 zb>F?PsiHIrk>^^Qvaw9DkKyhnc|aQSLuw9~S_nXZF9B1kB6j{HCB4UZ=Qe8m9^0yikZKbdj47UkKg8V+9VHHt<( z4k&{FF3q&e)M4}OD9s8(nSG!z58@WpH%x22x==x)e0r$x^WQh(4@qtx~{l+j| zp>oY#`-G;OVf*fE!)kYPl=5s98`L^kopA!;b+HE%PvUZBt5ACb3`ei*~4_+Ee5eR}LrRGxP4WH0U~z=uYJCt6hN6{&QdT_e1%mvdr3 z+>4rk7+|`_OaR{V{us45#++zU%jHQCc39p@>Y}3i<;h+iX@ip+Gn;W=HhiYXab$e4 zh&|=MW@&!tLX;sGm)#AFJhI6}jVPe764;ron6uIt$T(AgvH;6ZGW`D$TJ^@q8;<}PQy?mKuOQY6C2O<(f3dp#$A z_V-ZX9?E%X&nG(y)!%>2lMzqbPDwqXop7971<0-oU0D?wuhUl=tPprRuO?x*kO{rE zyW@C|MZ2@+!o_wX()_j-_twga7*M)Bvh^$}sRilNRcw{>3|Dq!j`8R_85CMtX;n8e zx14IZXVM-6tLdu+Kg+Ra>TII8*8!rtakRk>eEOxeU-*<>H@YB-ZXfTCKn7ArRx>7S zPR1_#;%Vhm0_DjCGwb*gU%R02J2_@)l<6sDeh#9yB~SJDL5;=E{5(N2tMN?t*;&}T zDs>$N=}VCVwD=szrtr6kvISafIt?Iq z#6`h8Eiqg)j-@o+|2K6BC{D>y)Hek^k3ua}%S3?uE&bxyA_N!->eJ*KYi| zlHWMhgdI#Tv>L`AP+ogs>&Jz3WZ$OyDo~O-dw9G(MFLb)g9iRQwqM%iQRrgY=kjPZ z?jEVNg#M~wlQ-;Ppswb?opytGU}=HmN9USjb_ce+fqK4VlMpkgDyJDMdR)bP*7d zl8L#j@|B~{!!Nq$kGF~7r{HjS4lEde^Xy5Ae4iqRf_I0va?vOQs74is`dCBiTJ^nl z5>i=Re|m%Hfzsii{_)_WOJH^J<7L1ix66=ub-x$Ew-g^E=c?Xz>9b!$SwY+af^E_T z^PY)prrAm~U$#Vr0b5CI(?OR8apsrlzFIo6X~si+#>s@_^cRG( zXjh~2Yc_??F4TvJ=rLU)#7}eAc(3m>ZI|g@DFi>xpN(rKk`93K7D?UeJVMc@T3t)VH!wl#49DFfhDq6@UNRf0j}NZ*igj9yVDH;CSXQ zTtDAHoI9!(nQ%6|G>(`>Wu*8ZPhcOyZ`uFm#=gr^hf8r{fb7TE@vT)b)@hFFH-DI5 zIf!1)hWruTV^p+zyGJeozq&i04A@5+3t$_WrBiI)HoW!M=^ogIb`wqMrxB5JGg}lI zygxZJqw?wQLo)z#IoP`W8l+;(rVg)ajR}k4aca%2UO!CQWp_XN#ir@GI%-7^D#ea% z%gh?R28SGI#(~ztkH~Q?EkQsa+8oLXkY-4b?=~b`2SEz?VBn0G2(lLUwI@uPA_g(8 zD0I(%y?SsRWEgO}Iq)9#28@K;VzFp`9bSy6Rp$AX6_txRA+krpcqD_*x>-_EyZRzm5NjsXd!yCkH$OFEPW>6DW0u7P2G zXN-IGem~ED&tG?5S72t&`<#9DUVH7eOc}4}G`cSoBGynff80($%Rf`XCbFF3q^F#6T)N(ws>osprk{%6KjqoKFT||StE;R1 zk%1=J$n(^P7^1a$U*Pkt4faLg3Y%HCWwN{ZMxdV-Fr;i8H%3{vB9qT)ABX!pTn3VG zGrVjIY*;Veelwh{7%A-XM%Qrp&FvS=hfx{mG9UO#Q0gt5>RRTh1l_&5qFD2azS2O) z3T+iBF9*Iz_!Y=wKT_H(Lwj<8ih&)ldUim(FW?)aj7f%Cj2d~vtJ|rEM#3+Eptt+Ru(-_JS@(Nx{hG^+ihm=kSW7C)N?rO0h4I2i0|oFAl?*GX)&;bDj(H# z|7m-h-beYS5<_l{BFaiD_czBqjVb%p?e75(&uaB6_MLy%?>E;VmKg$|Dn+1jpAC$& z4uL+<lE-~k8gQwxmK8rWCNo!CZFn) z)kTd@^X|~YwMdyqvcOd@fREXh#1CpLfdV)h9umi7$NISK01AN*$(&Jg8_gxHj^wWI zzpUKpe^;nm`(%{K4wbn|3aE&GP0q7`mUpKEne%9Sx_1-`km56JKxhC&Wd5&CoxM|$MlP3}P3*PnJ9KvKm zQdunfc-4<|(WMvg`V~Wx>b)m%*8ijh{90B(+h9`8eF*pz?$KvLKx0<+dv6vPA&8Ls zuuJ)f4QNa;@ucK^&An`}03_Z$qt5FeiJ%%Cuvp2r(O`}a(lw-zbi6qs#c#9xQ6-pl zb#vmN-25E3DKn{`{|eeGRoE5A8fqy{JYZ((AK$YHhJ+%RnmONTdamK$GJ*E-MwZl}qX zzo}YCErLam4;$#w7SW1^#Sub0(%-&TLA+umNDD%%EBSMe*mZhcF@ z%GV%6P%h(a+&6occ0HWr#M=9(X~kcLg53oEqe!r769ae9Y*Ea8{!U>h7IjJ$UV&`C z!P7L^IQCKMs|fT%`RhTw{q#NQk6mH3XErq}Vjrq6(=H8ZAA+Ke+H}0T0y$I2$+mUq zAUvsXw%B7L+=oFe`<6zh@Kp81}zSgSv@M?}f6P_8zTI6HmJwmVT4;k>~~O ziYx(fRV=^oo-A~X?;cr_B6gd@K0_M`U(NMpfByl0JqSpT=KXdy=92BnM!0JG2wW>V z7)1c(1Nwl=hv&u*pT&o|kXIC7D4Z6fQ2XfK*>-n47PIO_&RBJ_pry!@C>97{!J-Q2 zdd;^7Q*v!bj8PKzt*@OK3hHUVzfO9xA63@Y3WD<)IAS{LezPYAn~UhO?Fhd5`i7xk zHSLCVgX`rjT-?i{3*Ky9s(lW+$HG;X(`HXpmOuVw?$V=$(0v<+@95ZVOg;+fFs2sW z#pw>GW4;u$LKP9QM5aP-S9KV+F$Ma=*zMOv*_reo5F2zSp}ZT(Hv{#UK2vwLyZMD|d_rBGq5aF3N3#j?3v?>ht>fqj6CeUw zJz+TJLwp5=FHfXA3$>r>QYj(t(4ftV)=Q>7eAj=GWt6;qzahF*B(Y)Ek)z3%CYDN% znD@71#}D&4$gA7bkP98*+W8$2h64;uU~Ak)A157>i`0o_rM=9J3cr2w7H&iNbIw>zOGI-sX%xDd($tw&HInX5zQ9LFLRTSK@A^(k>!V( zw>CsAx6SN!M$ux}oJfBM$<$;|?L$*8&8L6AO;ZgT=qO=31(I`;@6*j?hqWH1>8G{5 z8c5B6rj~`;qrClSkGDMw#%W~{%7GDm8uiPTz`u_7b6s*YV_kF%$)2Z?CxrrfT$MaFR z%(T4x?(y+xZK2kuz>&O5uaKgU_2Ge~Av0Imzn2Q(c_oOV@`>$0(lbE z01=W)6nZyP?}B*#4C<*2Ou25LL+%|QlUjW9HP4y$b-I@MH2RhbVFE=X(6HEDeBDuo z?xZ3FA6T_!KdaEFu6*b7uO+i7VQ6q{u3r|<{UGzyADf@~dT~i=WijI)Tj0k_ zd@oOzz7J{@P)l+lJM7u#grBCruV4W5I2$%-Lr)KS5ujEN!hPw z1uq6V-)nSc{&}9M4Is0EcG&zVA-~?IN6Zt+jk_8nANj9`s^^59rwaE0;)~ybadGwH z+B@srJne_f<yu zMnTr#&=ImLUf7QV1YH zfdenwG!0rg}R?5pWvl<$8P~JUS7?l(gD*~GdbnJ{hABd3F+bLC=n$kvAs5++$*F>vi2l4 za&&DRR}h^pgdC4o+GBxIIT*~>yP8`I{j~S|YyBbUgvIZgO4aZEwHL&Y0&c36TOsAD z+dD~%b~JLD4t&>D)AWUd`7 ze17K*RHwdo4#lVt^u%NaE8aOU%!DAp&ab}W|Mx=oT*9(Dg{ca;L5KIr_CKNlo%cb_ z{iMiuKUOBS2;4mbCo^SBe;qL~bYw2B#zzO4CiRC7xA>h|E@3>9~QG2`pJ{i$>sGD6$ z;@DpwO?t4rd437BSQJZKNoZxlr9(QtMhW6!LoV*hCitA=Oq9Py>55@}2Q=L_)N$5F zEU)P5>LTuVK$`L&Y`O#tiGlT%hs!ML9Iw0V%t2;?kuIHd%jM0Em$!Es z;wzrxgT4cv!yQ{jtF!mYHB13F`*>rRN+|zWXK{2ZJ9m7BZ;wF4p^nFJB@f2$CGA`O zCr$3JLPE4dCm0{4?bwwO+RB9pR7U;@WuhX>=;))Lht%o5PUj!;ge>L_AL zv`z-MlGB|gk9kG%?*EbQPJOn-yZQHpua@Z<*w^T~c6}e%h60BjO|3fyxdT)l z+1|j&F-2x<`&CY6fP6g5i_BGotL)Y6U=%=F8kOT(hn?V31U1`Cytbse5k$%>KJ9#T zTez5A3C^y?fd{4!-##sxO<$8gEpYP_JFz>+lx-UuD|Gs3bYvM+)aoLEyqeJ+DX}qX zu2Ax9*nu!?HVnkxh0Tefj%ZdXN8XsFfA69)VztW^u6(E|-A#7b(B?)L=8wlBc1Q#w zOW=t+%onHHao`4!nZsF#Q;ZRItFdEHt-RL&tIWN;&b)5Y!u+R2Ueg7di7Wc5TrA(0 z3udy1IDlI44&>BnlD!&MHa3{I+sAgo6?cID0VW~K&QMijjnS4KR!9$UmA=(qph+)W z(eOOmCMq}ARss*;K&~o{z@_ol37vcrdCpKePXlg95I9_pyK^E*A}&`&D=wPaa5fI_ zyxAOoHImDE6^DeBGUhCm>pK18R1_$2pRS%5JOI_{`tMj2%|`d^T{=wQG((fA={EWlx6Nh2OoOIPuRR1;HQR9M!L(nHMq5;e#4c$2D-vUciJ^41Mgb&S4FHY++QK*TREi$eUk&2)*k&PQdfxvw znj7o)(jiWBYK+*)wzi!&$O;&pdA_|J?aDskOp_w@UYf976a#IkFh(V#8-15TGLBb| z!IuOMSuel8wFaeY1#Eop28t{U?t~+<4YVrB_m{i<-k58?1akP&-=pyx;WGrdh$&x{#jXtS9SYk$etCI!o?N1)HsIZMV=}(QahFQ_+{ADl*@;G~} zj+McO?=A#oH63IoYO?W*-@OmenB*bjIeUEV0NCTEWk!AoAfG7He9EDl-yOy34MBnG zcct$Ymy|%tR{#kk`VEbP4 z%iY;0IYY)T)=Hyv$$Rj|A4=%KSND{hRqm0DP%9;a`2dtVzBm}MJRMtc+?gL;C&C3{ zEsc$@#c|H{huye)?EuH;{;PiUkb2#e2R`rp3GVn(3bR9CqXq75pk%?BXxW+=9laS- zq$33YDw-)6^jI>Y4X35RRS6TYE*tvp${=(6dzfX2clT>@6RZ~6>}4!5H{_8p)nc1~ z9{e82stgp9W8xU_2|(K9m&ydcF$1(M)&?`h3*vbmbehlj$wae2n4*~1o@`Inx7RUu zPyYL7LDa@Xy>J<>m28gc-3fm|)4XrV6b)o|^6aygkx;I^{L;mvj~ksZSX2Dt!E5m3 z>4WhOXDGZ&IrqiJ@id52*Ob_Z&5|lipyxn8l?>$^#DE7c#!wkF(y0N<>(-`|u5*fU zkqDnlpM-pGH82>&rr=tY3BWvX0`nE4D?(1+DVA-W{!KACcp;!ivCc#yz#6X!Q=`IE zXmUma^2$YIE8E)^^+5*Rsn0>Jp>R5u57S&Z-L5sc$-^XCZ3LSvED*V8dD${oY9;#D z?#^h6Vpg>afz~r=6#3kvK(_+ikUreb zH(h3LCH0K~C;6i^P#So)lC4;;!NAYDU}bXjND++oS_8eg?raXz$A4t@5b5gxXDn-Y zR!Yctd+q(Q3yJzH3`~G_B;C0d%?g(ZamFjs`;=3F%Tx>p8k|RK0ITp$OG`_F>Kb7K z+w|<5FTVVPeUPy#&R*ph{W2!+v>g zn*7yf-@w-UotoeWitT-;!C9`V{ht7GWa# zIe-`sP*vYa78ohrQ36k|V|cmZ&!{VgR7O;tE4eE3B$26NVw97MY4rPwiu3UK@EUiC z-NX}6FYt4*k!|vb;A~D!OstWh;8O4t&?v#LsfJlhyL`Wtur!-0Ap=~9A#P%F0Y~cU zP2KWFP#a6fuu&vsXUw(*ksUlT+@<~Z!)v1%U}RofhiQbR5{yl7mzuk|!4ByR%`NVN z9Vdha2FCM^&(GJgl6%U$@}rc|$JHM(|3s+%NPq~@i6Ock=M?)KRR-vrfX+tyBu@oY zxLOU)!Y%7oo1aO5d%KT?w!l0ucO4$VsMXE?mh>&C0IUxIT0hOr%}BtVxukfqtR|Ya zi2xdHSEZ)<&*%LGn--fOso$2BT$iX3fdO9*xwP&%kQ;2txpx!PnGfk9z!7{N6wx37AzL3ifnyUVPJXSFECic* zeifz^Fq%DE{F*PiBlYjc4I)ns#^LIOCa=@PAl*R0ni=~)XV(8YBrL5>ue&la%vn|^ z5Sg&p6@rY0IR`)i{~PqUKu5*k4Ce(_j}F*KR&|en3e}fY#n#r6hc^*<=wIJuK(?u^ z4W3r>w3aF?2gKo;Q(!yuaM4ih{y*>bGwaL49|zWxTH4yyr@Q(TJ)(}g)PNqPPh|e` zPLF0&UtONDdIhs;WuT#QY{h>rWUzM${i#Gnz~HwR;8!;_H`6>=9|zkvTcP3hV7d%3 z%~F}de?HeJ^)BG(Ux3nUywngYeZd|u3rp-bRIVNr%r9$5lkq*6ePBVD_vd;4@zn;T zs4cYUr`0TX=m{oYT|KxH8RPS3n&ydolZiTQ$K`0<2Q$kie2ll^a=H`H(jr~E? zBdOUHtG*~&!#udZYFMz{`S0HaSM3NU;;aHc?yAY-68%4Sx<5MPrBsOC`fz78konmD z)__Bz4m&PL?u-GGseYYKX#xw~WA4>9D`*0j8=ic@m2K1sfIDJ(x zPXX}z%CJNz{jzLGJ`^_>EQb@3-Oq0a+TqCB+Q?J)?`O)ZxWSuYVk-#;SX8qPyDmpp zXXH2cCPjQpatCLM%O@ODeaxhrgl|V&^rg!sk^+SZ;PJ}e4-B<|sSU?%_Rdm9{9Hs> z#?O#VP+8%7bAgJeA)ig*lE{RqnqZ6(UW@VK*lWmXKB_D&{9*_0OW?*In^GYn~$PNxlZO zB!@{%fDbs(zt*t7BI<}i34qdk?WRK~$$ahGvB#a|q<~uM8#Bg3&S%9Ds})_MDY-(1 z47E2ID-V297EPEUmX2xA6HCDP;}B zapD!^UQWb@UW1*Z+TNH6i_Sj1_nEkoHHa5_XozTLbp!N6a>mGB4=>WQ=$2dulb+o3 zEC-#pAr}&Ucxgb!(-G8Q(4#E?M5rF*P@4i<`q&^ubhOi!OBBdJImgAtHB#bLdHWaC z@^3Xb&sYqYgl1}uY(fDB>S5HO_pEP!tGB&|K<$`yc!Bv@g>*F&yExbb)a$5xOAQ#u zbTZLmD{>SZpuu^#Iii{jY~YzdzvJpGkhBUaFgvrg9nR72K8+_s>=R_nz+0TiV7Ntf zL$0C~AVl*E3u!3l$H&L7`csgAg*^p_VAX%y1i#U;5@c|9w4K=+&ntfEeldkV&6LC_ zK?)p?)UF+<7F-I}@FZ`6fR&o#Y4|X`cW(Kf`QRr_0e zYHeM({VYS;i;TB$0gU;zwF3!2g$$cV23?`|hmXO09D1U_rG*f$9)BtDT+ue@{XogA z%7#~w&)!R|Wc5Vw1k8SAJlYldW9>m+6Nst-ySM?oZM=6pvIEjP!{Zct)rb&3L%`nT z>HeAQ028qz^Cg>r)XlYHJPH9+fHDdb!N+xN7uw=_RfZ(*|2igm=E%TfYfv_KHibr~ z;h0-Qr*7Y8-um*p;py4gN4w4!0+#2q@cuKMdZ)Z(hs|$kCqN1eXQ?X^J8U(ls!Ak@ z%kW9Z84{HZ3@spfb-`St0=wix5q~V0LCl{jCRw0=3XOl^$o69ue_!f)caddcpdP`u z1njEghW$qnXB6KF`GbwlJwcU>3_cy{vI-7Vw^Y!y5#_wk@A2h zK>_(bbl?aag3qB>bi*Gvv^;wMA}0QBBN$HQbGd(-bAIF_Ql~1PD9~#h6j5q2c1Z;U zj%8VwZ1M1h4=>+|^jzNHH~=*p0T^8qJHl}k$~LE>qFUG#udJ+OAZyvb!sQGHcbD^4 zZ%P-JpPO=HL1xTjD_a>e+!1|>KcZr)v>vpa5rH`})YP15sYtFE1J}W{gWi?s;=AC$ z(gG}->fQLVYYtFl*54e*Fw*#P$4G-+CE(Baw#-g#Ix16RbN0+X>gecbq#fsLvJsnF zHvaLp;FW9F{N(Y_oXt%)LfycR0=4Snin&qXIRp2flVW{a}do zY25u*wWJ=7P+`-%!rh^pk+@fF?w03_R|YH;(5prn5{1!nb&J2`a5n=Y_$d( z9$>!|X!s|Ups5a(%cvupd2xLmemPcWa$;B!$Lnz4{rreHvPgkoZ4eE13GIGTnO|mb z#{Ss*DqdOs`?5;JCU1F+$REAR4`29Vllsef*m2|;T?ppUybz$5oZNRq9$^L!zxt#( zH&zWAQp5-`-U@`XzF$A8h$#SK{s#9xK$G`P1HPaAzUd!^isj3d}q*o$HP@mD-4jqjN4 ` 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

pWpFtlY6667e3;H$YIQ+;1vWbg& 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/lJ*L21_?o)=GotrRu+|nH(uFql@ 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

\ No newline at end of file diff --git a/docs/numerix/v1.0.0/architecture/index.html b/docs/numerix/v1.0.0/architecture/index.html new file mode 100644 index 00000000..51bb28c8 --- /dev/null +++ b/docs/numerix/v1.0.0/architecture/index.html @@ -0,0 +1,143 @@ + + + + + +Architecture | BharatMLStack + + + + + + + + +

BharatMLStack - Numerix

+
+

Numerix is a Rust-based compute service in BharatMLStack designed for low-latency evaluation of mathematical expressions over feature matrices. Each request carries a compute_id and a matrix of features; Numerix fetches the corresponding postfix expression, maps variables to feature columns (treated as vectors), and evaluates the expression with a stack-based SIMD-optimized runtime.

+
+

High-Level Components

+
    +
  • Tonic gRPC server (Rust): exposes Numerix/Compute for low-latency requests. +
      +
    • Accepts feature data as strings (for ease of use) or byte arrays (for efficient transmission).
    • +
    • All input data is converted internally to fp32 or fp64 vectors for evaluation.
    • +
    +
  • +
  • Compute Registry (etcd): stores compute_id (int) → postfix expression mappings.
  • +
  • Stack-based Evaluator: Runs postfix expressions in linear time using a stack based approach over aligned vectors.
  • +
  • Vectorized Math Runtime: No handwritten SIMD intrinsics; relies on LLVM autovectorization. +
      +
    • Operations are intentionally simple and memory-aligned.
    • +
    • Compiler emits SIMD instructions automatically.
    • +
    • Portable across CPU architectures (ARM & AMD).
    • +
    +
  • +
  • Metrics and Health +
      +
    • Latency, RPS, and error rates via Datadog/DogStatsD UDP client.
    • +
    • Minimal HTTP endpoints (/health, optional /metrics) for diagnostics.
    • +
    +
  • +
+
+

What is SIMD?

+

SIMD (Single Instruction, Multiple Data) is a CPU feature that allows a single instruction to operate on multiple data points at once. In Numerix, this means that operations on feature vectors can be executed in parallel, making evaluation of mathematical expressions faster and more predictable.

+

Why SIMD Matters for Numerix

+
    +
  • Postfix expressions operate on vectors (columns of the input matrix).
  • +
  • SIMD allows multiple elements of these vectors to be processed in one CPU instruction, rather than element-by-element.
  • +
  • This results in low-latency, high-throughput computation without the need for handwritten intrinsics — the compiler handles the vectorization automatically.
  • +
+
+

Why ARM, Why LLVM

+

During design exploration, we tested SIMD on different architectures and found ARM (AArch64) with NEON/SVE/SVE2 provided excellent performance for our workloads.

+

Instead of writing custom intrinsics, Numerix compiles with SIMD flags and lets LLVM handle vectorization:

+
RUSTFLAGS="-C target-feature=+neon,+sve,+sve2" \
cargo build --release --target aarch64-unknown-linux-gnu
+
    +
  • +

    This approach works well because operations are straightforward, data is aligned, and compiler auto-vectorization is reliable.

    +
  • +
  • +

    AMD/x86 builds are equally supported — enabling their SIMD extensions is just a matter of changing build flags.

    +
  • +
+

Request Model and Flow

+
    +
  1. Client calls gRPC numerix.Numerix/Compute with: +
      +
    • schema: ordered feature names
    • +
    • entity_scores: per-entity vectors (string or bytes)
    • +
    • compute_id: integer identifier for the expression
    • +
    • data_type (optional): e.g., fp32 or fp64
    • +
    +
  2. +
  3. Service fetches the postfix expression for compute_id which was pre-fetched from etcd.
  4. +
  5. Request is validated for schema and data shape.
  6. +
  7. The stack-based evaluator executes the expression in O(n) over tokens, with vectorized inner operations.
  8. +
  9. Response returns computation_score_data or a structured error.
  10. +
+
+

Why Postfix Expressions

+
    +
  • Stored in etcd as postfix (Reverse Polish) notation.
  • +
  • Postfix makes evaluation parser-free and linear time.
  • +
  • Execution uses a stack machine: +
      +
    • Push operands (feature vectors).
    • +
    • Pop, compute, and push results for each operator.
    • +
    +
  • +
  • Benefits: predictable runtime, compiler-friendly loops, cache efficiency.
  • +
+

gRPC Interface

+
    +
  • Service: numerix.Numerix
  • +
  • RPC: Compute(NumerixRequestProto) → NumerixResponseProto
  • +
  • Request fields: schema, entity_scores, compute_id, optional data_type
  • +
  • Response fields: computation_score_data or error
  • +
+

Example (grpcurl):

+
grpcurl -plaintext \
-import-path ./numerix/src/protos/proto \
-proto numerix.proto \
-d '{
"entityScoreData": {
"schema": ["feature1", "feature2"],
"entityScores": [ { "stringData": { "values": ["1.0", "2.0"] } } ],
"computeId": "1001",
"dataType": "fp32"
}
}' \
localhost:8080 numerix.Numerix/Compute
+
+

Observability

+
    +
  • Datadog (DogStatsD) metrics publication via UDP client: +
      +
    • Latency (P50/P95/P99), error rate, RPS, internal failures
    • +
    • Configurable sampling rate via environment variables
    • +
    +
  • +
  • Optional /metrics HTTP endpoint can be enabled for local debugging.
  • +
+
+

Environments

+
    +
  • Kubernetes (K8s), including GKE and EKS
  • +
  • Multi-arch builds: amd64, arm64.
  • +
  • ARM builds ship with NEON/SVE/SVE2 enabled.
  • +
+
+

Key Takeaways

+
    +
  • Minimal service surface: gRPC + etcd.
  • +
  • No custom intrinsics — portable across ARM & AMD via compiler flags.
  • +
  • Supports both string and byte input, internally converted to aligned fp32/fp64 vectors.
  • +
  • Stack-based postfix evaluation : linear time, cache-friendly.
  • +
  • Predictable, ultra-low-latency performance.
  • +
+

Contributing

+

We welcome contributions from the community! Please see our Contributing Guide for details on how to get started.

+

Community & Support

+ +

License

+

BharatMLStack is open-source software licensed under the BharatMLStack Business Source License 1.1.

+
+
Built with ❤️ for the ML community from Meesho
+
If you find this useful, ⭐️ the repo — your support means the world to us!
+ + \ No newline at end of file diff --git a/docs/numerix/v1.0.0/benchmarks/index.html b/docs/numerix/v1.0.0/benchmarks/index.html new file mode 100644 index 00000000..a741f8e9 --- /dev/null +++ b/docs/numerix/v1.0.0/benchmarks/index.html @@ -0,0 +1,48 @@ + + + + + +Benchmarks | BharatMLStack + + + + + + + + +

Benchmarks (PoC)

+

This PoC measures the performance of vector addition in Rust with and without compiler SIMD optimizations. Requests consist of repeated fixed-size vector addition operations processed in parallel by the CPU. These results provide perspective on how much faster SIMD makes vectorized computations, and similar improvements are expected for other vectorized operations in Numerix.

+

System Configuration

+
    +
  • Instance Type: c4a-highcpu-16
  • +
  • Processor: Google Axion (ARMv9, 64-bit)
  • +
  • SIMD Extension: SVE2
  • +
  • OS: Linux (Ubuntu 22.04)
  • +
  • Rust Version: rustc 1.80.0
  • +
  • Target Triple: aarch64-unknown-linux-gnu
  • +
+

Vector Addition Performance

+

With SIMD

+
Vector Dimns per opIterationsThroughput (GiB/s)Total CPU (raw)Total CPU (normalized)
100.39626 ns170,057,457,941376.041564%97.75%
500.6641 ns94,342,709,0951121.91590%99.38%
1001.1522 ns51,705,835,3971286.91560%97.50%
5005.0649 ns12,061,753,66114711538%96.12%
10009.648 ns6,488,848,7051544.51570%98.12%
500052.925 ns1,169,316,8131407.81590%99.38%
10000114.68 ns555,779,9811299.41592%99.50%
50000644.60 ns94,372,1531155.91560%97.50%
1000001.4530 µs42,502,2011025.51526%95.38%
+

Without SIMD

+
Vector Dimns per opIterationsThroughput (GiB/s)Total CPU (raw)Total CPU (normalized)
103.196 ns1,000,000,00025.031313%82.06%
503.866 ns1,000,000,000103.461417%88.56%
1005.867 ns1,000,000,000136.351495%93.44%
50019.25 ns1,000,000,000207.811600%100.00%
100033.91 ns1,000,000,000235.921600%100.00%
5000162.1 ns448,785,386246.711600%100.00%
10000332.0 ns208,428,151240.941600%100.00%
500001,740 ns39,247,646229.931600%100.00%
1000003,401 ns19,598,293235.241600%100.00%
+
+

Normalization: Total CPU (normalized) = Total CPU (raw) / 16, since 1600% equals full utilization on a 16‑core machine.

+
+

Observations

+
    +
  • SIMD provides large speedups across all vector sizes: overall throughput improvements range from roughly 4–15× versus Without SIMD.
  • +
  • For small vectors (10–100), throughput gains are about 9–15×, with ns/op reduced proportionally.
  • +
  • For larger vectors (500–100000), speedups stabilize around ~4–7× as memory bandwidth pressure increases.
  • +
  • CPU saturation: Without SIMD reaches 100% normalized CPU at and beyond 500 elements, whereas With SIMD typically operates at ~95–99% normalized CPU yet delivers substantially higher throughput at similar CPU.
  • +
  • Per‑CPU efficiency: With SIMD, throughput per unit of CPU is much higher, reflecting better vector unit utilization and fewer instructions per element.
  • +
  • Absolute values depend on hardware and load; the relative differential reflects the benefit of compiler SIMD optimizations.
  • +
+
+

⚠ Note: Absolute numbers depend on CPU frequency, memory locality, and system load. These results are meant +to show relative SIMD benefits.

+
+ + \ No newline at end of file diff --git a/docs/numerix/v1.0.0/functionalities/index.html b/docs/numerix/v1.0.0/functionalities/index.html new file mode 100644 index 00000000..820fa713 --- /dev/null +++ b/docs/numerix/v1.0.0/functionalities/index.html @@ -0,0 +1,85 @@ + + + + + +Key Functionalities | BharatMLStack + + + + + + + + +

Numerix — Key Functionalities

+

Overview

+

Numerix evaluates mathematical expressions over feature matrices with a simple, low-latency gRPC surface. Each request references a compute_id; Numerix resolves a postfix expression, maps variables to input columns, and evaluates it over fp32/fp64 vectors with compiler-assisted SIMD.

+

🚀 Core Capabilities

+

Expression Evaluation

+
    +
  • Postfix execution: Linear-time, stack-based evaluation over aligned vectors.
  • +
  • Vectorized math: Compiler autovectorization (NEON/SVE on ARM, SSE/AVX on x86) — no handwritten intrinsics.
  • +
  • Typed compute: Inputs converted to fp32 or fp64 for predictable performance.
  • +
+

Input Formats

+
    +
  • Strings: Easy-to-produce feature values (converted internally).
  • +
  • Bytes: Efficient wire format for high-throughput paths.
  • +
+

Request Patterns

+
    +
  • Single entity or batch: Multiple entity_scores per call.
  • +
  • Schema-driven: Column order in schema drives variable mapping in expressions.
  • +
+

🎯 Developer Experience

+
    +
  • gRPC API: Simple single RPC — Numerix/Compute.
  • +
  • Protobuf schema: Language-agnostic client generation.
  • +
  • Deterministic behavior: No parsing at request time; expression resolved from registry.
  • +
+

gRPC Service

+
service Numerix {
rpc Compute(NumerixRequestProto) returns (NumerixResponseProto);
}
+

Example Call (grpcurl)

+
grpcurl -plaintext \
-import-path ./numerix/src/protos/proto \
-proto numerix.proto \
-d '{
"entityScoreData": {
"schema": ["feature1", "feature2"],
"entityScores": [ { "stringData": { "values": ["1.0", "2.0"] } } ],
"computeId": "1001",
"dataType": "fp32"
}
}' \
localhost:8080 numerix.Numerix/Compute
+

📊 Observability

+
    +
  • Datadog/DogStatsD: Latency (P50/P95/P99), RPS, error rate via UDP client.
  • +
  • Optional /metrics endpoint for local/adhoc debugging.
  • +
+

⚙️ Configuration & Registry

+
    +
  • etcd registry: compute_id (int) → postfix expression mapping.
  • +
  • Environment-driven config: endpoints, timeouts, sampling rate.
  • +
+

🧪 Example Scenarios

+

Batched evaluation

+
    +
  • Submit multiple entities in one call to reduce RPC overhead; evaluate the same compute_id across all rows.
  • +
+

Mixed input formats

+
    +
  • Start with string inputs for ease; migrate to bytes for performance without changing the expression or API.
  • +
+

🔧 Tuning Knobs

+
    +
  • Data type: choose fp32 (speed) vs fp64 (precision).
  • +
  • Batch size: tune number of entities per call for your p99 vs throughput goals.
  • +
  • Sampling rate: adjust Datadog metric sampling to balance signal vs cost.
  • +
+
+

Contributing

+

We welcome contributions from the community! Please see our Contributing Guide for details on how to get started.

+

Community & Support

+ +

License

+

BharatMLStack is open-source software licensed under the BharatMLStack Business Source License 1.1.

+
+
Built with ❤️ for the ML community from Meesho
+
If you find this useful, ⭐️ the repo — your support means the world to us!
+ + \ No newline at end of file diff --git a/docs/numerix/v1.0.0/index.html b/docs/numerix/v1.0.0/index.html new file mode 100644 index 00000000..8de38ec4 --- /dev/null +++ b/docs/numerix/v1.0.0/index.html @@ -0,0 +1,17 @@ + + + + + +v1.0.0 | BharatMLStack + + + + + + + + + + + \ No newline at end of file diff --git a/docs/numerix/v1.0.0/release-notes/index.html b/docs/numerix/v1.0.0/release-notes/index.html new file mode 100644 index 00000000..72d0f680 --- /dev/null +++ b/docs/numerix/v1.0.0/release-notes/index.html @@ -0,0 +1,89 @@ + + + + + +Release Notes | BharatMLStack + + + + + + + + +

Numerix - Release Notes

+

Version 1.0.0 🚀

+

Release Date: September 2025
+Status: General Availability (GA)

+

The first stable release of Numerix — a Rust-based compute service for evaluating mathematical expressions over feature matrices with very low latency. Numerix executes postfix expressions from an etcd-backed registry using a stack-based evaluator and compiler-assisted SIMD.

+
+

🎯 What's New

+

Core Engine

+
    +
  • Postfix Expression Execution: compute_id → postfix mapping in etcd; parser-free request path.
  • +
  • Stack-Based Evaluator: Linear-time execution over aligned vectors for predictable latency.
  • +
  • Compiler-Assisted SIMD: Relies on LLVM autovectorization (NEON/SVE on ARM; SSE/AVX on x86); no handwritten intrinsics.
  • +
  • Typed Evaluation: Internal conversion to fp32/fp64 for consistent performance/precision.
  • +
+

API Surface

+
    +
  • gRPC: Single RPC — numerix.Numerix/Compute.
  • +
  • Input Formats: Strings for ease, bytes for performance; both map to vectorized math internally.
  • +
+

Observability

+
    +
  • Datadog/DogStatsD metrics: Latency (P50/P95/P99), RPS, error rate.
  • +
  • Minimal HTTP diagnostics: /health (and optional /metrics).
  • +
+
+

🚀 Performance & Optimization

+
    +
  • Autovectorized Loops: Tight loops over contiguous memory enable the compiler to emit SIMD instructions automatically.
  • +
  • ARM Focus Option: Excellent results with AArch64; builds can enable NEON/SVE/SVE2:
  • +
+
RUSTFLAGS="-C target-feature=+neon,+sve,+sve2" \
cargo build --release --target aarch64-unknown-linux-gnu
+
    +
  • Deterministic Runtime: No dynamic parsing in hot path; O(n) across tokens with vectorized inner ops.
  • +
+
+

🛠️ APIs

+

gRPC

+
service Numerix {
rpc Compute(NumerixRequestProto) returns (NumerixResponseProto);
}
+

Example call:

+
grpcurl -plaintext \
-import-path ./numerix/src/protos/proto \
-proto numerix.proto \
-d '{
"entityScoreData": {
"schema": ["feature1", "feature2"],
"entityScores": [ { "stringData": { "values": ["1.0", "2.0"] } } ],
"computeId": "1001",
"dataType": "fp32"
}
}' \
localhost:8080 numerix.Numerix/Compute
+
+

🏗️ Deployment & Configuration

+

Environment

+
APPLICATION_PORT=8083
APP_ENV=prd
APP_LOG_LEVEL=ERROR
APP_NAME=numerix

# Performance
CHANNEL_BUFFER_SIZE=10000

# etcd
ETCD_SERVERS=127.0.0.1:2379

# Metrics
METRIC_SAMPLING_RATE=1
TELEGRAF_UDP_HOST=127.0.0.1
TELEGRAF_UDP_PORT=8125
+

Containers

+
    +
  • Multi-arch images: linux/amd64, linux/arm64.
  • +
  • Build targets example: x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu.
  • +
+
+

🔄 Compatibility

+
    +
  • Clients: Any language with gRPC + generated stubs.
  • +
  • Architectures: amd64 and arm64; ARM builds can enable NEON/SVE/SVE2.
  • +
+
+

🐛 Known Issues

+
    +
  1. Introduce a configurable log sampling rate to reduce pod memory usage during computation errors.
  2. +
+

Contributing

+

We welcome contributions from the community! Please see our Contributing Guide for details on how to get started.

+

Community & Support

+ +

License

+

BharatMLStack is open-source software licensed under the BharatMLStack Business Source License 1.1.

+
+
Built with ❤️ for the ML community from Meesho
+
If you find this useful, ⭐️ the repo — your support means the world to us!
+ + \ No newline at end of file diff --git a/docs/online-feature-store/v1.0.0/architecture/index.html b/docs/online-feature-store/v1.0.0/architecture/index.html index e77710ef..a1ab0342 100644 --- a/docs/online-feature-store/v1.0.0/architecture/index.html +++ b/docs/online-feature-store/v1.0.0/architecture/index.html @@ -4,15 +4,15 @@ Architecture | BharatMLStack - - - + + + -

BharatMLStack - Online Feature Store (OnFS)

+

BharatMLStack - Online Feature Store (OnFS)

The Online Feature Store (OnFS) is part of BharatMLStack, designed to support real-time ML workloads through low-latency feature retrieval and flexible feature ingestion pipelines. It ensures that features generated offline or online are immediately accessible for inference.


BharatMLStack&#39;s Online-feature-store Architecture

@@ -121,6 +121,6 @@

LicenseBharatMLStack Business Source License 1.1.


Built with ❤️ for the ML community from Meesho
-
If you find this useful, ⭐️ the repo — your support means the world to us!

+
If you find this useful, ⭐️ the repo — your support means the world to us!
\ No newline at end of file diff --git a/docs/online-feature-store/v1.0.0/benchmarks/index.html b/docs/online-feature-store/v1.0.0/benchmarks/index.html index b66a3f67..a94269ff 100644 --- a/docs/online-feature-store/v1.0.0/benchmarks/index.html +++ b/docs/online-feature-store/v1.0.0/benchmarks/index.html @@ -4,15 +4,15 @@ Benchmarks | BharatMLStack - - - + + + -

Serialization Performance Benchmarks

+

Serialization Performance Benchmarks

Summary

This report presents comprehensive benchmark results comparing three serialization formats for the BharatML Online Feature Store:

    @@ -116,6 +116,6 @@

    Raw Benchmark Output [Uncompressed Data]

    goos: darwin
    goarch: arm64
    pkg: github.com/Meesho/BharatMLStack/online-feature-store/internal/data/blocks
    BenchmarkInt32SerializationPSDB/PSDB/Size-100-10 1940238 625.3 ns/op 409.0 bytes 461 B/op 4 allocs/op
    BenchmarkInt32SerializationPSDB/PSDB/Size-1000-10 288300 4056 ns/op 4009 bytes 4143 B/op 4 allocs/op
    BenchmarkInt32SerializationPSDB/PSDB/Size-10000-10 32144 37357 ns/op 40009 bytes 41032 B/op 4 allocs/op
    BenchmarkInt32SerializationPSDB/PSDB/Size-100000-10 3244 359932 ns/op 400009 bytes 401572 B/op 4 allocs/op
    BenchmarkInt32SerializationProto3/Proto3/Size-100-10 1703066 695.9 ns/op 486.0 bytes 768 B/op 2 allocs/op
    BenchmarkInt32SerializationProto3/Proto3/Size-1000-10 194142 6004 ns/op 4885 bytes 5632 B/op 2 allocs/op
    BenchmarkInt32SerializationProto3/Proto3/Size-10000-10 20937 57674 ns/op 48734 bytes 49408 B/op 2 allocs/op
    BenchmarkInt32SerializationProto3/Proto3/Size-100000-10 2085 556541 ns/op 487263 bytes 491776 B/op 2 allocs/op
    BenchmarkInt32SerializationArrow/Arrow/Size-100-10 302257 3831 ns/op 680.0 bytes 7032 B/op 66 allocs/op
    BenchmarkInt32SerializationArrow/Arrow/Size-1000-10 228718 5191 ns/op 4280 bytes 15544 B/op 66 allocs/op
    BenchmarkInt32SerializationArrow/Arrow/Size-10000-10 52482 23173 ns/op 40280 bytes 122617 B/op 66 allocs/op
    BenchmarkInt32SerializationArrow/Arrow/Size-100000-10 9765 120081 ns/op 400280 bytes 957948 B/op 66 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-100/PSDB-10 1919401 670.2 ns/op 409.0 bytes 461 B/op 4 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-100/Proto3-10 1733599 693.2 ns/op 490.0 bytes 768 B/op 2 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-100/Arrow-10 304066 3896 ns/op 680.0 bytes 7032 B/op 66 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-1000/PSDB-10 290784 4074 ns/op 4009 bytes 4143 B/op 4 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-1000/Proto3-10 196962 6034 ns/op 4882 bytes 5632 B/op 2 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-1000/Arrow-10 227908 5240 ns/op 4280 bytes 15544 B/op 66 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-10000/PSDB-10 31732 38064 ns/op 40009 bytes 41024 B/op 4 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-10000/Proto3-10 20827 57670 ns/op 48745 bytes 49408 B/op 2 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-10000/Arrow-10 52000 23557 ns/op 40280 bytes 122617 B/op 66 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-100000/PSDB-10 3268 363817 ns/op 400009 bytes 401575 B/op 4 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-100000/Proto3-10 2097 559621 ns/op 487247 bytes 491776 B/op 2 allocs/op
    BenchmarkInt32SerializationComparison/Comparison/Size-100000/Arrow-10 10000 118489 ns/op 400280 bytes 957947 B/op 66 allocs/op
    BenchmarkInt32SizeComparison/SizeOnly/Size-100-10 1000000000 0.0000223 ns/op 680.0 arrow_bytes 170.0 arrow_ratio_pct 490.0 proto3_bytes 122.5 proto3_ratio_pct 409.0 psdb_bytes 102.2 psdb_ratio_pct 400.0 raw_bytes
    BenchmarkInt32SizeComparison/SizeOnly/Size-1000-10 1000000000 0.0000379 ns/op 4280 arrow_bytes 107.0 arrow_ratio_pct 4881 proto3_bytes 122.0 proto3_ratio_pct 4009 psdb_bytes 100.2 psdb_ratio_pct 4000 raw_bytes
    BenchmarkInt32SizeComparison/SizeOnly/Size-10000-10 1000000000 0.0001182 ns/op 40280 arrow_bytes 100.7 arrow_ratio_pct 48717 proto3_bytes 121.8 proto3_ratio_pct 40009 psdb_bytes 100.0 psdb_ratio_pct 40000 raw_bytes
    BenchmarkInt32SizeComparison/SizeOnly/Size-100000-10 1000000000 0.001034 ns/op 400280 arrow_bytes 100.1 arrow_ratio_pct 487225 proto3_bytes 121.8 proto3_ratio_pct 400009 psdb_bytes 100.0 psdb_ratio_pct 400000 raw_bytes
    BenchmarkInt32MemoryEfficiency/Memory/Size-100/PSDB_Pooled-10 1926676 622.4 ns/op 461 B/op 4 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-100/Proto3-10 1713428 685.0 ns/op 768 B/op 2 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-100/Arrow-10 312584 4029 ns/op 7032 B/op 66 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-1000/PSDB_Pooled-10 290197 4189 ns/op 4143 B/op 4 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-1000/Proto3-10 195694 6078 ns/op 5632 B/op 2 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-1000/Arrow-10 224722 5190 ns/op 15544 B/op 66 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-10000/PSDB_Pooled-10 31898 37684 ns/op 41029 B/op 4 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-10000/Proto3-10 20840 58032 ns/op 49408 B/op 2 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-10000/Arrow-10 51440 24049 ns/op 122617 B/op 66 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-100000/PSDB_Pooled-10 3325 357690 ns/op 401814 B/op 4 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-100000/Proto3-10 2158 559694 ns/op 491776 B/op 2 allocs/op
    BenchmarkInt32MemoryEfficiency/Memory/Size-100000/Arrow-10 9622 117515 ns/op 957948 B/op 66 allocs/op
    BenchmarkInt32Throughput/Throughput/PSDB-10 290912 4101 ns/op 975.31 MB/s 4143 B/op 4 allocs/op
    BenchmarkInt32Throughput/Throughput/Proto3-10 199087 6005 ns/op 666.12 MB/s 5632 B/op 2 allocs/op
    BenchmarkInt32Throughput/Throughput/Arrow-10 229594 5207 ns/op 768.25 MB/s 15544 B/op 66 allocs/op
    BenchmarkGetPSDBPoolWithoutPool-10 23836599 50.64 ns/op 192 B/op 1 allocs/op
    BenchmarkGetPSDBPoolWithPool-10 100000000 10.76 ns/op 0 B/op 0 allocs/op
    PASS
    ok github.com/Meesho/BharatMLStack/online-feature-store/internal/data/blocks 58.891s

    -

    Benchmarks run on Apple Silicon (ARM64) with Go 1.22.12. Results may vary on different architectures and Go versions.

+

Benchmarks run on Apple Silicon (ARM64) with Go 1.22.12. Results may vary on different architectures and Go versions.

\ No newline at end of file diff --git a/docs/online-feature-store/v1.0.0/data-formats/index.html b/docs/online-feature-store/v1.0.0/data-formats/index.html index 300d6d37..e2446a6e 100644 --- a/docs/online-feature-store/v1.0.0/data-formats/index.html +++ b/docs/online-feature-store/v1.0.0/data-formats/index.html @@ -4,15 +4,15 @@ Data Formats | BharatMLStack - - - + + + -

Data Format for Permanent & Cache Storage

+

Data Format for Permanent & Cache Storage

In this section we will go through the data-formats which is at the hear of online-feature-store, it's inspired form other storage efficient formats like parquet & arrow, but custom made to deliver in constraint environment. The two key data-formats are:

  • PSDB - Permanent Storage Data Block used wile storing data in ScyllaDB
  • @@ -167,6 +167,6 @@

    Opti
  • Versioning Support: Layout version is stored as the first byte to enable format upgrades while maintaining backward compatibility.

Diagram below explains how compute cycles are saved by partial de-compression.

-

CSDB Partial Decompression

+

CSDB Partial Decompression

\ No newline at end of file diff --git a/docs/online-feature-store/v1.0.0/functionalities/index.html b/docs/online-feature-store/v1.0.0/functionalities/index.html index 4b66f528..dd05aa9b 100644 --- a/docs/online-feature-store/v1.0.0/functionalities/index.html +++ b/docs/online-feature-store/v1.0.0/functionalities/index.html @@ -4,15 +4,15 @@ Key Functionalities | BharatMLStack - - - + + + -

Online Feature Store - Key Functionalities

+

Online Feature Store - Key Functionalities

Overview

The BharatML Online Feature Store is a high-performance, production-ready system designed to serve machine learning features with sub-10ms P99 latency and 1M+ RPS capacity. It bridges the gap between offline feature engineering and real-time model inference.

🚀 Core Capabilities

@@ -115,6 +115,6 @@

LicenseBharatMLStack Business Source License 1.1.


Built with ❤️ for the ML community from Meesho
-
If you find this useful, ⭐️ the repo — your support means the world to us!

+
If you find this useful, ⭐️ the repo — your support means the world to us!
\ No newline at end of file diff --git a/docs/online-feature-store/v1.0.0/index.html b/docs/online-feature-store/v1.0.0/index.html index 038a7ea3..6c38f703 100644 --- a/docs/online-feature-store/v1.0.0/index.html +++ b/docs/online-feature-store/v1.0.0/index.html @@ -3,15 +3,15 @@ -v1.0.0 | BharatMLStack - - - +v1.0.0 | BharatMLStack + + + - + \ No newline at end of file diff --git a/docs/online-feature-store/v1.0.0/release-notes/index.html b/docs/online-feature-store/v1.0.0/release-notes/index.html index 4773cd02..d6f22f70 100644 --- a/docs/online-feature-store/v1.0.0/release-notes/index.html +++ b/docs/online-feature-store/v1.0.0/release-notes/index.html @@ -4,15 +4,15 @@ Release Notes | BharatMLStack - - - + + + -

Online Feature Store - Release Notes

+ +
If you find this useful, ⭐️ the repo — your support means the world to us!
\ No newline at end of file diff --git a/docs/quick-start/v1.0.0/quick-start/index.html b/docs/quick-start/v1.0.0/quick-start/index.html index 43b3a215..41c009bb 100644 --- a/docs/quick-start/v1.0.0/quick-start/index.html +++ b/docs/quick-start/v1.0.0/quick-start/index.html @@ -4,15 +4,15 @@ Quick Start | BharatMLStack - - - + + + -

BharatML Stack Quick Start Guide

+ +
If you find this useful, ⭐️ the repo — your support means the world to us!
\ No newline at end of file diff --git a/docs/sdks/go/v1.0.0/feature_client/index.html b/docs/sdks/go/v1.0.0/feature_client/index.html index 63ed7f2b..6a83cd31 100644 --- a/docs/sdks/go/v1.0.0/feature_client/index.html +++ b/docs/sdks/go/v1.0.0/feature_client/index.html @@ -4,15 +4,15 @@ GRPC Feature client | BharatMLStack - - - + + + -

Build Status +

+
If you find this useful, ⭐️ the repo — your support means the world to us!
\ No newline at end of file diff --git a/docs/sdks/python/v1.0.0/grpc_feature_client/index.html b/docs/sdks/python/v1.0.0/grpc_feature_client/index.html index 8de4755e..d7de40ad 100644 --- a/docs/sdks/python/v1.0.0/grpc_feature_client/index.html +++ b/docs/sdks/python/v1.0.0/grpc_feature_client/index.html @@ -4,15 +4,15 @@ GRPC Feature client | BharatMLStack - - - + + + -

GRPC Feature Client

+

GRPC Feature Client

PyPI version Build Status Python 3.7+ @@ -46,7 +46,7 @@

GRPCClientC
class GRPCClientConfig:
def __init__(
self,
server_address: str,
job_id: str,
job_token: str,
use_tls: bool = False,
timeout_seconds: float = 30.0,
metadata: Dict[str, str] = None,
max_receive_message_length: int = 4 * 1024 * 1024,
max_send_message_length: int = 4 * 1024 * 1024
)

Usage Examples

Persisting Features

-
from grpc_feature_client import GRPCFeatureClient, GRPCClientConfig

config = GRPCClientConfig(
server_address="feature-store.example.com:50051",
job_id="predator",
job_token="api-token"
)

client = GRPCFeatureClient(config)

# Persist real-time features
result = client.persist_features(
entity_label="user_interaction",
keys_schema=["user_id", "session_id"],
feature_group_schemas=[{
"label": "realtime_features",
"feature_labels": ["click_count", "page_views"]
}],
data_rows=[{
"user_id": "u123",
"session_id": "s456",
"click_count": 5,
"page_views": 3
}]
)

print(f"Persist result: {result}")
+
from grpc_feature_client import GRPCFeatureClient, GRPCClientConfig

config = GRPCClientConfig(
server_address="feature-store.example.com:50051",
job_id="predator-service",
job_token="api-token"
)

client = GRPCFeatureClient(config)

# Persist real-time features
result = client.persist_features(
entity_label="user_interaction",
keys_schema=["user_id", "session_id"],
feature_group_schemas=[{
"label": "realtime_features",
"feature_labels": ["click_count", "page_views"]
}],
data_rows=[{
"user_id": "u123",
"session_id": "s456",
"click_count": 5,
"page_views": 3
}]
)

print(f"Persist result: {result}")

Retrieving Features

# Retrieve features for ML model inference
features = client.retrieve_decoded_features(
entity_label="user_interaction",
feature_groups=[{
"label": "user_features",
"feature_labels": ["age", "location"]
}],
keys_schema=["user_id"],
entity_keys=[["u123"], ["u456"]]
)

print(f"Retrieved features: {features}")

With Context Management

@@ -85,6 +85,6 @@

LicenseBharatMLStack Business Source License 1.1.


Built with ❤️ for the ML community from Meesho
-
If you find this useful, ⭐️ the repo — your support means the world to us!

+
If you find this useful, ⭐️ the repo — your support means the world to us!
\ No newline at end of file diff --git a/docs/sdks/python/v1.0.0/spark_feature_push_client/index.html b/docs/sdks/python/v1.0.0/spark_feature_push_client/index.html index 140deb5f..afe6e790 100644 --- a/docs/sdks/python/v1.0.0/spark_feature_push_client/index.html +++ b/docs/sdks/python/v1.0.0/spark_feature_push_client/index.html @@ -4,15 +4,15 @@ Spark client | BharatMLStack - - - + + + -

Spark Feature Push Client

+ +
If you find this useful, ⭐️ the repo — your support means the world to us!
\ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 215a1dea..b40f123c 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -1 +1 @@ -https://meesho.github.io/BharatMLStack/blogweekly0.5https://meesho.github.io/BharatMLStack/blog/archiveweekly0.5https://meesho.github.io/BharatMLStack/blog/authorsweekly0.5https://meesho.github.io/BharatMLStack/blog/post-oneweekly0.5https://meesho.github.io/BharatMLStack/blog/tagsweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/interaction-storeweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/meeshoweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/mlplatformweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/online-feature-storeweekly0.5https://meesho.github.io/BharatMLStack/markdown-pageweekly0.5https://meesho.github.io/BharatMLStack/weekly0.5https://meesho.github.io/BharatMLStack/category/go-sdkweekly0.5https://meesho.github.io/BharatMLStack/category/online-feature-storeweekly0.5https://meesho.github.io/BharatMLStack/category/python-sdkweekly0.5https://meesho.github.io/BharatMLStack/category/quick-startweekly0.5https://meesho.github.io/BharatMLStack/category/sdksweekly0.5https://meesho.github.io/BharatMLStack/category/trufflebox-uiweekly0.5https://meesho.github.io/BharatMLStack/category/v100weekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0weekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/architectureweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/benchmarksweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/data-formatsweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/functionalitiesweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/release-notesweekly0.5https://meesho.github.io/BharatMLStack/quick-start/v1.0.0/quick-startweekly0.5https://meesho.github.io/BharatMLStack/sdks/go/v1.0.0/feature_clientweekly0.5https://meesho.github.io/BharatMLStack/sdks/python/v1.0.0/grpc_feature_clientweekly0.5https://meesho.github.io/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_clientweekly0.5https://meesho.github.io/BharatMLStack/trufflebox-ui/v1.0.0/userguideweekly0.5 \ No newline at end of file +https://meesho.github.io/BharatMLStack/blogweekly0.5https://meesho.github.io/BharatMLStack/blog/archiveweekly0.5https://meesho.github.io/BharatMLStack/blog/authorsweekly0.5https://meesho.github.io/BharatMLStack/blog/post-fiveweekly0.5https://meesho.github.io/BharatMLStack/blog/post-oneweekly0.5https://meesho.github.io/BharatMLStack/blog/post-threeweekly0.5https://meesho.github.io/BharatMLStack/blog/post-threeweekly0.5https://meesho.github.io/BharatMLStack/blog/post-twoweekly0.5https://meesho.github.io/BharatMLStack/blog/tagsweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/bharatmlstackweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/embedding-searchweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/inferflowweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/interaction-storeweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/llmweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/meeshoweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/mlplatformweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/model-inferenceweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/online-feature-storeweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/tensorrt-llmweekly0.5https://meesho.github.io/BharatMLStack/blog/tags/vllmweekly0.5https://meesho.github.io/BharatMLStack/markdown-pageweekly0.5https://meesho.github.io/BharatMLStack/weekly0.5https://meesho.github.io/BharatMLStack/category/go-sdkweekly0.5https://meesho.github.io/BharatMLStack/category/inferflowweekly0.5https://meesho.github.io/BharatMLStack/category/numerixweekly0.5https://meesho.github.io/BharatMLStack/category/online-feature-storeweekly0.5https://meesho.github.io/BharatMLStack/category/python-sdkweekly0.5https://meesho.github.io/BharatMLStack/category/quick-startweekly0.5https://meesho.github.io/BharatMLStack/category/sdksweekly0.5https://meesho.github.io/BharatMLStack/category/trufflebox-uiweekly0.5https://meesho.github.io/BharatMLStack/category/v100weekly0.5https://meesho.github.io/BharatMLStack/inferflow/v1.0.0weekly0.5https://meesho.github.io/BharatMLStack/inferflow/v1.0.0/architectureweekly0.5https://meesho.github.io/BharatMLStack/inferflow/v1.0.0/configurationweekly0.5https://meesho.github.io/BharatMLStack/inferflow/v1.0.0/functionalitiesweekly0.5https://meesho.github.io/BharatMLStack/inferflow/v1.0.0/release-notesweekly0.5https://meesho.github.io/BharatMLStack/numerix/v1.0.0weekly0.5https://meesho.github.io/BharatMLStack/numerix/v1.0.0/architectureweekly0.5https://meesho.github.io/BharatMLStack/numerix/v1.0.0/benchmarksweekly0.5https://meesho.github.io/BharatMLStack/numerix/v1.0.0/functionalitiesweekly0.5https://meesho.github.io/BharatMLStack/numerix/v1.0.0/release-notesweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0weekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/architectureweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/benchmarksweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/data-formatsweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/functionalitiesweekly0.5https://meesho.github.io/BharatMLStack/online-feature-store/v1.0.0/release-notesweekly0.5https://meesho.github.io/BharatMLStack/quick-start/v1.0.0/quick-startweekly0.5https://meesho.github.io/BharatMLStack/sdks/go/v1.0.0/feature_clientweekly0.5https://meesho.github.io/BharatMLStack/sdks/python/v1.0.0/grpc_feature_clientweekly0.5https://meesho.github.io/BharatMLStack/sdks/python/v1.0.0/spark_feature_push_clientweekly0.5https://meesho.github.io/BharatMLStack/trufflebox-ui/v1.0.0/userguideweekly0.5 \ No newline at end of file diff --git a/docs/trufflebox-ui/v1.0.0/userguide/index.html b/docs/trufflebox-ui/v1.0.0/userguide/index.html index 4933b1fe..0c2e7fc2 100644 --- a/docs/trufflebox-ui/v1.0.0/userguide/index.html +++ b/docs/trufflebox-ui/v1.0.0/userguide/index.html @@ -4,15 +4,15 @@ User Manual | BharatMLStack - - - + + + -

Usage Guide

+

Usage Guide

This guide covers the complete setup and usage of the Online Feature Store system, including the core services (Online Feature Store and Horizon) and the TruffleBox UI for feature management.

Table of Contents

+
If you find this useful, ⭐️ the repo — your support means the world to us!
\ No newline at end of file From bb0401774665234e7dadd72aec36bd40d35e16c4 Mon Sep 17 00:00:00 2001 From: a0d00kc Date: Sat, 14 Feb 2026 21:27:52 +0530 Subject: [PATCH 07/11] slug fix --- docs-src/blog/bharatmlstack-history/post-four/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-src/blog/bharatmlstack-history/post-four/index.md b/docs-src/blog/bharatmlstack-history/post-four/index.md index b9428b85..23d97525 100644 --- a/docs-src/blog/bharatmlstack-history/post-four/index.md +++ b/docs-src/blog/bharatmlstack-history/post-four/index.md @@ -1,5 +1,5 @@ --- -slug: post-three +slug: post-four title: "Designing a Production-Grade LLM Inference Platform: From Model Weights to Scalable GPU Serving" authors: [jaya] date: 2025-3-29 From 2a0a5ff44ca1bf315f0f8cce307a8241a731333e Mon Sep 17 00:00:00 2001 From: ansh-meesho Date: Sat, 14 Feb 2026 21:37:05 +0530 Subject: [PATCH 08/11] shifted helix-client to go-sdk --- quick-start/docker-compose.yml | 2 +- quick-start/stop.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/quick-start/docker-compose.yml b/quick-start/docker-compose.yml index 5d5b1b8b..6bff1db4 100644 --- a/quick-start/docker-compose.yml +++ b/quick-start/docker-compose.yml @@ -504,7 +504,7 @@ services: restart: "no" numerix: - image: numerix:${NUMERIX_VERSION:-latest} + image: ghcr.io/meesho/numerix:${NUMERIX_VERSION:-latest} container_name: numerix ports: - "8083:8083" diff --git a/quick-start/stop.sh b/quick-start/stop.sh index 8df92ecd..2e8dac69 100755 --- a/quick-start/stop.sh +++ b/quick-start/stop.sh @@ -67,7 +67,7 @@ remove_images() { echo "🖼️ Removing Docker images..." # List of image patterns to remove - IMAGES=("ghcr.io/meesho/onfs-consumer" "ghcr.io/meesho/trufflebox-ui" "numerix" "ghcr.io/meesho/horizon" "ghcr.io/meesho/onfs-api-server" "ghcr.io/meesho/inferflow" "ghcr.io/meesho/skye-admin" "ghcr.io/meesho/skye-consumers" "ghcr.io/meesho/skye-serving" "provectuslabs/kafka-ui" "apache/kafka" "quay.io/coreos/etcd" "tzfun/etcd-workbench" "redis" "mysql" "scylladb/scylla" "workspace-db-init" "alpine") + IMAGES=("ghcr.io/meesho/onfs-consumer" "ghcr.io/meesho/trufflebox-ui" "ghcr.io/meesho/numerix" "ghcr.io/meesho/horizon" "ghcr.io/meesho/onfs-api-server" "ghcr.io/meesho/inferflow" "ghcr.io/meesho/skye-admin" "ghcr.io/meesho/skye-consumers" "ghcr.io/meesho/skye-serving" "provectuslabs/kafka-ui" "apache/kafka" "quay.io/coreos/etcd" "tzfun/etcd-workbench" "redis" "mysql" "scylladb/scylla" "workspace-db-init" "alpine") for image_pattern in "${IMAGES[@]}"; do # Find images that match the pattern From 292512b7d80bbb1951646df4e16e6e0a6881f577 Mon Sep 17 00:00:00 2001 From: ansh-meesho Date: Sat, 14 Feb 2026 21:38:35 +0530 Subject: [PATCH 09/11] shifted helix-client to go-sdk --- go-sdk/go.mod | 53 +- go-sdk/go.sum | 137 +++- {helix-client => go-sdk}/pkg/api/context.go | 2 +- {helix-client => go-sdk}/pkg/api/error.go | 0 .../pkg/api/grpc_error.go | 0 .../pkg/api/http/header.go | 0 .../pkg/api/http/helper.go | 0 .../pkg/api/http_grpc_error_mapper.go | 0 .../pkg/api/request_context.go | 4 +- .../pkg/api/request_context_test.go | 4 +- .../pkg/clients/numerix/adaptor.go | 4 +- .../pkg/clients/numerix/adaptor_test.go | 2 +- .../clients/numerix/client/grpc/numerix.pb.go | 0 .../numerix/client/grpc/numerix_grpc.pb.go | 0 .../numerix/client/proto/numerix.proto | 0 .../pkg/clients/numerix/conf.go | 0 .../pkg/clients/numerix/init.go | 0 .../pkg/clients/numerix/models.go | 2 +- .../pkg/clients/numerix/numerix.go | 0 .../pkg/clients/numerix/v1.go | 6 +- .../pkg/clients/predator/README.md | 0 .../pkg/clients/predator/adaptor.go | 6 +- .../pkg/clients/predator/client.go | 0 .../predator/client/grpc/grpc_service.pb.go | 0 .../client/grpc/grpc_service_grpc.pb.go | 0 .../clients/predator/client/grpc/health.pb.go | 0 .../predator/client/grpc/health_grpc.pb.go | 0 .../predator/client/grpc/model_config.pb.go | 0 .../predator/client/proto/grpc_service.proto | 0 .../predator/client/proto/health.proto | 0 .../predator/client/proto/model_config.proto | 0 .../pkg/clients/predator/config.go | 0 .../pkg/clients/predator/init.go | 0 .../pkg/clients/predator/models.go | 0 .../pkg/clients/predator/v1.go | 6 +- .../pkg/clients/skye/client/grpc/skye.pb.go | 0 .../clients/skye/client/grpc/skye_grpc.pb.go | 0 .../pkg/clients/skye/client/proto/skye.proto | 0 .../pkg/clients/skye/conf.go | 0 .../pkg/clients/skye/init.go | 0 .../pkg/clients/skye/models.go | 2 +- .../pkg/clients/skye/skye.go | 2 +- .../pkg/clients/skye/v1.go | 4 +- .../pkg/clients/skye/v1_test.go | 2 +- .../datatypeconverter/byteorder/pack_test.go | 0 .../pkg/datatypeconverter/byteorder/system.go | 4 +- .../byteorder/system_test.go | 0 .../byteorder/vector_test.go | 0 .../datatypeconverter/float8/float8_e4m3.go | 0 .../float8/float8_e4m3_bench_test.go | 0 .../float8/float8_e4m3_test.go | 0 .../datatypeconverter/float8/float8_e5m2.go | 0 .../float8/float8_e5m2_bench_test.go | 0 .../float8/float8_e5m2_test.go | 0 .../typeconverter/tyeconverter.go | 4 +- .../typeconverter/tyeconverter_test.go | 2 +- .../pkg/datatypeconverter/types/data_type.go | 0 .../datatypeconverter/types/data_type_test.go | 0 .../pkg/enums/client_type.go | 0 .../pkg/enums/user_context.go | 0 .../pkg/grpc/grpcframework.go | 4 +- .../pkg/grpc/grpcframework_test.go | 2 +- .../pkg/grpc/options_util.go | 0 .../pkg/grpcclient/grpc.go | 2 +- .../pkg/grpcclient/grpc_test.go | 0 .../pkg/httpframework/httpframework.go | 2 +- .../pkg/httpframework/httpframework_test.go | 0 {helix-client => go-sdk}/pkg/metric/metric.go | 0 {helix-client => go-sdk}/pkg/metric/tag.go | 0 .../pkg/metric/tag_test.go | 0 .../pkg/middleware/grpclogger.go | 2 +- .../pkg/middleware/grpcrecovery.go | 0 .../pkg/middleware/httplogger.go | 4 +- .../pkg/middleware/httplogger_test.go | 2 +- .../pkg/middleware/httprecovery.go | 2 +- {helix-client => go-sdk}/pkg/system/global.go | 0 .../pkg/utils/byte_utils.go | 2 +- .../pkg/utils/byte_utils_test.go | 0 .../pkg/utils/empty_utils.go | 0 .../pkg/utils/empty_utils_test.go | 0 .../pkg/utils/slice_utils.go | 0 .../pkg/utils/slice_utils_test.go | 0 helix-client/README.md | 33 - helix-client/VERSION | 1 - helix-client/go.mod | 68 -- helix-client/go.sum | 613 ------------------ 86 files changed, 207 insertions(+), 776 deletions(-) rename {helix-client => go-sdk}/pkg/api/context.go (95%) rename {helix-client => go-sdk}/pkg/api/error.go (100%) rename {helix-client => go-sdk}/pkg/api/grpc_error.go (100%) rename {helix-client => go-sdk}/pkg/api/http/header.go (100%) rename {helix-client => go-sdk}/pkg/api/http/helper.go (100%) rename {helix-client => go-sdk}/pkg/api/http_grpc_error_mapper.go (100%) rename {helix-client => go-sdk}/pkg/api/request_context.go (98%) rename {helix-client => go-sdk}/pkg/api/request_context_test.go (99%) rename {helix-client => go-sdk}/pkg/clients/numerix/adaptor.go (96%) rename {helix-client => go-sdk}/pkg/clients/numerix/adaptor_test.go (94%) rename {helix-client => go-sdk}/pkg/clients/numerix/client/grpc/numerix.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/numerix/client/grpc/numerix_grpc.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/numerix/client/proto/numerix.proto (100%) rename {helix-client => go-sdk}/pkg/clients/numerix/conf.go (100%) rename {helix-client => go-sdk}/pkg/clients/numerix/init.go (100%) rename {helix-client => go-sdk}/pkg/clients/numerix/models.go (88%) rename {helix-client => go-sdk}/pkg/clients/numerix/numerix.go (100%) rename {helix-client => go-sdk}/pkg/clients/numerix/v1.go (97%) rename {helix-client => go-sdk}/pkg/clients/predator/README.md (100%) rename {helix-client => go-sdk}/pkg/clients/predator/adaptor.go (98%) rename {helix-client => go-sdk}/pkg/clients/predator/client.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/client/grpc/grpc_service.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/client/grpc/grpc_service_grpc.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/client/grpc/health.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/client/grpc/health_grpc.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/client/grpc/model_config.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/client/proto/grpc_service.proto (100%) rename {helix-client => go-sdk}/pkg/clients/predator/client/proto/health.proto (100%) rename {helix-client => go-sdk}/pkg/clients/predator/client/proto/model_config.proto (100%) rename {helix-client => go-sdk}/pkg/clients/predator/config.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/init.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/models.go (100%) rename {helix-client => go-sdk}/pkg/clients/predator/v1.go (98%) rename {helix-client => go-sdk}/pkg/clients/skye/client/grpc/skye.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/skye/client/grpc/skye_grpc.pb.go (100%) rename {helix-client => go-sdk}/pkg/clients/skye/client/proto/skye.proto (100%) rename {helix-client => go-sdk}/pkg/clients/skye/conf.go (100%) rename {helix-client => go-sdk}/pkg/clients/skye/init.go (100%) rename {helix-client => go-sdk}/pkg/clients/skye/models.go (60%) rename {helix-client => go-sdk}/pkg/clients/skye/skye.go (82%) rename {helix-client => go-sdk}/pkg/clients/skye/v1.go (97%) rename {helix-client => go-sdk}/pkg/clients/skye/v1_test.go (99%) rename {helix-client => go-sdk}/pkg/datatypeconverter/byteorder/pack_test.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/byteorder/system.go (99%) rename {helix-client => go-sdk}/pkg/datatypeconverter/byteorder/system_test.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/byteorder/vector_test.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/float8/float8_e4m3.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/float8/float8_e4m3_bench_test.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/float8/float8_e4m3_test.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/float8/float8_e5m2.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/float8/float8_e5m2_bench_test.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/float8/float8_e5m2_test.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/typeconverter/tyeconverter.go (99%) rename {helix-client => go-sdk}/pkg/datatypeconverter/typeconverter/tyeconverter_test.go (99%) rename {helix-client => go-sdk}/pkg/datatypeconverter/types/data_type.go (100%) rename {helix-client => go-sdk}/pkg/datatypeconverter/types/data_type_test.go (100%) rename {helix-client => go-sdk}/pkg/enums/client_type.go (100%) rename {helix-client => go-sdk}/pkg/enums/user_context.go (100%) rename {helix-client => go-sdk}/pkg/grpc/grpcframework.go (96%) rename {helix-client => go-sdk}/pkg/grpc/grpcframework_test.go (99%) rename {helix-client => go-sdk}/pkg/grpc/options_util.go (100%) rename {helix-client => go-sdk}/pkg/grpcclient/grpc.go (98%) rename {helix-client => go-sdk}/pkg/grpcclient/grpc_test.go (100%) rename {helix-client => go-sdk}/pkg/httpframework/httpframework.go (94%) rename {helix-client => go-sdk}/pkg/httpframework/httpframework_test.go (100%) rename {helix-client => go-sdk}/pkg/metric/metric.go (100%) rename {helix-client => go-sdk}/pkg/metric/tag.go (100%) rename {helix-client => go-sdk}/pkg/metric/tag_test.go (100%) rename {helix-client => go-sdk}/pkg/middleware/grpclogger.go (96%) rename {helix-client => go-sdk}/pkg/middleware/grpcrecovery.go (100%) rename {helix-client => go-sdk}/pkg/middleware/httplogger.go (91%) rename {helix-client => go-sdk}/pkg/middleware/httplogger_test.go (97%) rename {helix-client => go-sdk}/pkg/middleware/httprecovery.go (92%) rename {helix-client => go-sdk}/pkg/system/global.go (100%) rename {helix-client => go-sdk}/pkg/utils/byte_utils.go (98%) rename {helix-client => go-sdk}/pkg/utils/byte_utils_test.go (100%) rename {helix-client => go-sdk}/pkg/utils/empty_utils.go (100%) rename {helix-client => go-sdk}/pkg/utils/empty_utils_test.go (100%) rename {helix-client => go-sdk}/pkg/utils/slice_utils.go (100%) rename {helix-client => go-sdk}/pkg/utils/slice_utils_test.go (100%) delete mode 100644 helix-client/README.md delete mode 100644 helix-client/VERSION delete mode 100644 helix-client/go.mod delete mode 100644 helix-client/go.sum diff --git a/go-sdk/go.mod b/go-sdk/go.mod index 76d8dda8..19d67f2d 100644 --- a/go-sdk/go.mod +++ b/go-sdk/go.mod @@ -3,31 +3,72 @@ module github.com/Meesho/BharatMLStack/go-sdk go 1.24.4 require ( + github.com/DataDog/datadog-go/v5 v5.8.3 + github.com/gin-gonic/gin v1.11.0 github.com/rs/zerolog v1.34.0 - github.com/stretchr/testify v1.10.0 + github.com/soheilhy/cmux v0.1.5 + github.com/spf13/viper v1.21.0 + github.com/stretchr/testify v1.11.1 + github.com/x448/float16 v0.8.4 go.etcd.io/etcd/client/v3 v3.5.17 + golang.org/x/net v0.42.0 google.golang.org/grpc v1.68.2 - google.golang.org/protobuf v1.36.6 + google.golang.org/protobuf v1.36.9 ) require ( + github.com/Microsoft/go-winio v0.5.0 // indirect + github.com/bytedance/sonic v1.14.0 // indirect + github.com/bytedance/sonic/loader v0.3.0 // indirect + github.com/cloudwego/base64x v0.1.6 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/gin-contrib/sse v1.1.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.27.0 // indirect + github.com/go-viper/mapstructure/v2 v2.4.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect + github.com/goccy/go-yaml v1.18.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/cpuid/v2 v2.3.0 // indirect + github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/quic-go/qpack v0.5.1 // indirect + github.com/quic-go/quic-go v0.54.0 // indirect + github.com/sagikazarmark/locafero v0.11.0 // indirect + github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect + github.com/spf13/afero v1.15.0 // indirect + github.com/spf13/cast v1.10.0 // indirect + github.com/spf13/pflag v1.0.10 // indirect github.com/stretchr/objx v0.5.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.3.0 // indirect go.etcd.io/etcd/api/v3 v3.5.17 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.17 // indirect go.uber.org/atomic v1.9.0 // indirect + go.uber.org/mock v0.5.0 // indirect go.uber.org/multierr v1.9.0 // indirect go.uber.org/zap v1.21.0 // indirect - golang.org/x/net v0.32.0 // indirect - golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.21.0 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/arch v0.20.0 // indirect + golang.org/x/crypto v0.40.0 // indirect + golang.org/x/mod v0.26.0 // indirect + golang.org/x/sync v0.16.0 // indirect + golang.org/x/sys v0.35.0 // indirect + golang.org/x/text v0.28.0 // indirect + golang.org/x/tools v0.35.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go-sdk/go.sum b/go-sdk/go.sum index 32cd513f..9e87fe57 100644 --- a/go-sdk/go.sum +++ b/go-sdk/go.sum @@ -1,5 +1,15 @@ +github.com/DataDog/datadog-go/v5 v5.8.3 h1:s58CUJ9s8lezjhTNJO/SxkPBv2qZjS3ktpRSqGF5n0s= +github.com/DataDog/datadog-go/v5 v5.8.3/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= +github.com/Microsoft/go-winio v0.5.0 h1:Elr9Wn+sGKPlkaBvwu4mTrxtmOp3F3yV9qhaHbXGjwU= +github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/bytedance/sonic v1.14.0 h1:/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ= +github.com/bytedance/sonic v1.14.0/go.mod h1:WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA= +github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= +github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= +github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= @@ -8,41 +18,117 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= +github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= +github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= +github.com/gin-gonic/gin v1.11.0 h1:OW/6PLjyusp2PPXtyxKHU0RbX6I/l28FTdDlae5ueWk= +github.com/gin-gonic/gin v1.11.0/go.mod h1:+iq/FyxlGzII0KHiBGjuNn4UNENUlKbGlNmc+W50Dls= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.27.0 h1:w8+XrWVMhGkxOaaowyKH35gFydVHOvC0/uWoy2Fzwn4= +github.com/go-playground/validator/v10 v10.27.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= +github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= +github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI= +github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg= +github.com/quic-go/quic-go v0.54.0 h1:6s1YB9QotYI6Ospeiguknbp2Znb/jZYjZLRXn9kMQBg= +github.com/quic-go/quic-go v0.54.0/go.mod h1:e68ZEaCdyviluZmy44P6Iey98v/Wfz6HCjQEm+l8zTY= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= +github.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc= +github.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U= +github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= +github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= +github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= +github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= +github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.3.0 h1:Qd2W2sQawAfG8XSvzwhBeoGq71zXOC/Q1E9y/wUcsUA= +github.com/ugorji/go/codec v1.3.0/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= @@ -57,52 +143,70 @@ go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= +go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/arch v0.20.0 h1:dx1zTU0MAE98U+TQ8BLl7XsJbgze2WnNKF/8tGp/Q6c= +golang.org/x/arch v0.20.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM= +golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= +golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= +golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= +golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= +golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= +golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -113,11 +217,12 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= google.golang.org/grpc v1.68.2 h1:EWN8x60kqfCcBXzbfPpEezgdYRZA9JCxtySmCtTUs2E= google.golang.org/grpc v1.68.2/go.mod h1:AOXp0/Lj+nW5pJEgw8KQ6L1Ka+NTyJOABlSgfCrCN5A= -google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= -google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= +google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= diff --git a/helix-client/pkg/api/context.go b/go-sdk/pkg/api/context.go similarity index 95% rename from helix-client/pkg/api/context.go rename to go-sdk/pkg/api/context.go index abd61e0b..72333d45 100644 --- a/helix-client/pkg/api/context.go +++ b/go-sdk/pkg/api/context.go @@ -4,7 +4,7 @@ import ( netHttp "net/http" "strconv" - "github.com/Meesho/BharatMLStack/helix-client/pkg/api/http" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/api/http" "github.com/gin-gonic/gin" ) diff --git a/helix-client/pkg/api/error.go b/go-sdk/pkg/api/error.go similarity index 100% rename from helix-client/pkg/api/error.go rename to go-sdk/pkg/api/error.go diff --git a/helix-client/pkg/api/grpc_error.go b/go-sdk/pkg/api/grpc_error.go similarity index 100% rename from helix-client/pkg/api/grpc_error.go rename to go-sdk/pkg/api/grpc_error.go diff --git a/helix-client/pkg/api/http/header.go b/go-sdk/pkg/api/http/header.go similarity index 100% rename from helix-client/pkg/api/http/header.go rename to go-sdk/pkg/api/http/header.go diff --git a/helix-client/pkg/api/http/helper.go b/go-sdk/pkg/api/http/helper.go similarity index 100% rename from helix-client/pkg/api/http/helper.go rename to go-sdk/pkg/api/http/helper.go diff --git a/helix-client/pkg/api/http_grpc_error_mapper.go b/go-sdk/pkg/api/http_grpc_error_mapper.go similarity index 100% rename from helix-client/pkg/api/http_grpc_error_mapper.go rename to go-sdk/pkg/api/http_grpc_error_mapper.go diff --git a/helix-client/pkg/api/request_context.go b/go-sdk/pkg/api/request_context.go similarity index 98% rename from helix-client/pkg/api/request_context.go rename to go-sdk/pkg/api/request_context.go index 2dd813d2..34c8e820 100644 --- a/helix-client/pkg/api/request_context.go +++ b/go-sdk/pkg/api/request_context.go @@ -7,8 +7,8 @@ import ( netHttp "net/http" "strconv" - "github.com/Meesho/BharatMLStack/helix-client/pkg/api/http" - enum "github.com/Meesho/BharatMLStack/helix-client/pkg/enums" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/api/http" + enum "github.com/Meesho/BharatMLStack/go-sdk/pkg/enums" "github.com/gin-gonic/gin" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" diff --git a/helix-client/pkg/api/request_context_test.go b/go-sdk/pkg/api/request_context_test.go similarity index 99% rename from helix-client/pkg/api/request_context_test.go rename to go-sdk/pkg/api/request_context_test.go index ecad973a..773e3448 100644 --- a/helix-client/pkg/api/request_context_test.go +++ b/go-sdk/pkg/api/request_context_test.go @@ -4,13 +4,13 @@ import ( "context" "fmt" - httpHeaders "github.com/Meesho/BharatMLStack/helix-client/pkg/api/http" + httpHeaders "github.com/Meesho/BharatMLStack/go-sdk/pkg/api/http" "net/http" "net/http/httptest" "testing" - enum "github.com/Meesho/BharatMLStack/helix-client/pkg/enums" + enum "github.com/Meesho/BharatMLStack/go-sdk/pkg/enums" "github.com/gin-gonic/gin" "github.com/stretchr/testify/assert" "google.golang.org/grpc/metadata" diff --git a/helix-client/pkg/clients/numerix/adaptor.go b/go-sdk/pkg/clients/numerix/adaptor.go similarity index 96% rename from helix-client/pkg/clients/numerix/adaptor.go rename to go-sdk/pkg/clients/numerix/adaptor.go index 48e88fa7..3f066cca 100644 --- a/helix-client/pkg/clients/numerix/adaptor.go +++ b/go-sdk/pkg/clients/numerix/adaptor.go @@ -5,8 +5,8 @@ import ( "github.com/rs/zerolog/log" - "github.com/Meesho/BharatMLStack/helix-client/pkg/clients/numerix/client/grpc" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/typeconverter" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/clients/numerix/client/grpc" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/typeconverter" ) type IAdapter interface { diff --git a/helix-client/pkg/clients/numerix/adaptor_test.go b/go-sdk/pkg/clients/numerix/adaptor_test.go similarity index 94% rename from helix-client/pkg/clients/numerix/adaptor_test.go rename to go-sdk/pkg/clients/numerix/adaptor_test.go index 082e9953..dd8d082e 100644 --- a/helix-client/pkg/clients/numerix/adaptor_test.go +++ b/go-sdk/pkg/clients/numerix/adaptor_test.go @@ -3,7 +3,7 @@ package numerix import ( "testing" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/byteorder" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/byteorder" "github.com/stretchr/testify/assert" ) diff --git a/helix-client/pkg/clients/numerix/client/grpc/numerix.pb.go b/go-sdk/pkg/clients/numerix/client/grpc/numerix.pb.go similarity index 100% rename from helix-client/pkg/clients/numerix/client/grpc/numerix.pb.go rename to go-sdk/pkg/clients/numerix/client/grpc/numerix.pb.go diff --git a/helix-client/pkg/clients/numerix/client/grpc/numerix_grpc.pb.go b/go-sdk/pkg/clients/numerix/client/grpc/numerix_grpc.pb.go similarity index 100% rename from helix-client/pkg/clients/numerix/client/grpc/numerix_grpc.pb.go rename to go-sdk/pkg/clients/numerix/client/grpc/numerix_grpc.pb.go diff --git a/helix-client/pkg/clients/numerix/client/proto/numerix.proto b/go-sdk/pkg/clients/numerix/client/proto/numerix.proto similarity index 100% rename from helix-client/pkg/clients/numerix/client/proto/numerix.proto rename to go-sdk/pkg/clients/numerix/client/proto/numerix.proto diff --git a/helix-client/pkg/clients/numerix/conf.go b/go-sdk/pkg/clients/numerix/conf.go similarity index 100% rename from helix-client/pkg/clients/numerix/conf.go rename to go-sdk/pkg/clients/numerix/conf.go diff --git a/helix-client/pkg/clients/numerix/init.go b/go-sdk/pkg/clients/numerix/init.go similarity index 100% rename from helix-client/pkg/clients/numerix/init.go rename to go-sdk/pkg/clients/numerix/init.go diff --git a/helix-client/pkg/clients/numerix/models.go b/go-sdk/pkg/clients/numerix/models.go similarity index 88% rename from helix-client/pkg/clients/numerix/models.go rename to go-sdk/pkg/clients/numerix/models.go index aa70b388..3983180c 100644 --- a/helix-client/pkg/clients/numerix/models.go +++ b/go-sdk/pkg/clients/numerix/models.go @@ -1,6 +1,6 @@ package numerix -import "github.com/Meesho/BharatMLStack/helix-client/pkg/clients/numerix/client/grpc" +import "github.com/Meesho/BharatMLStack/go-sdk/pkg/clients/numerix/client/grpc" type NumerixRequest struct { EntityScoreData EntityScoreData `json:"entity_score_data"` diff --git a/helix-client/pkg/clients/numerix/numerix.go b/go-sdk/pkg/clients/numerix/numerix.go similarity index 100% rename from helix-client/pkg/clients/numerix/numerix.go rename to go-sdk/pkg/clients/numerix/numerix.go diff --git a/helix-client/pkg/clients/numerix/v1.go b/go-sdk/pkg/clients/numerix/v1.go similarity index 97% rename from helix-client/pkg/clients/numerix/v1.go rename to go-sdk/pkg/clients/numerix/v1.go index 055fb628..6bc22500 100644 --- a/helix-client/pkg/clients/numerix/v1.go +++ b/go-sdk/pkg/clients/numerix/v1.go @@ -6,9 +6,9 @@ import ( "sync" "time" - "github.com/Meesho/BharatMLStack/helix-client/pkg/clients/numerix/client/grpc" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/byteorder" - "github.com/Meesho/BharatMLStack/helix-client/pkg/grpcclient" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/clients/numerix/client/grpc" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/byteorder" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/grpcclient" "github.com/rs/zerolog/log" metadata "google.golang.org/grpc/metadata" ) diff --git a/helix-client/pkg/clients/predator/README.md b/go-sdk/pkg/clients/predator/README.md similarity index 100% rename from helix-client/pkg/clients/predator/README.md rename to go-sdk/pkg/clients/predator/README.md diff --git a/helix-client/pkg/clients/predator/adaptor.go b/go-sdk/pkg/clients/predator/adaptor.go similarity index 98% rename from helix-client/pkg/clients/predator/adaptor.go rename to go-sdk/pkg/clients/predator/adaptor.go index 3090519c..4e292040 100644 --- a/helix-client/pkg/clients/predator/adaptor.go +++ b/go-sdk/pkg/clients/predator/adaptor.go @@ -8,9 +8,9 @@ import ( "strings" - triton "github.com/Meesho/BharatMLStack/helix-client/pkg/clients/predator/client/grpc" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/types" - "github.com/Meesho/BharatMLStack/helix-client/pkg/utils" + triton "github.com/Meesho/BharatMLStack/go-sdk/pkg/clients/predator/client/grpc" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/types" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/utils" "github.com/rs/zerolog/log" ) diff --git a/helix-client/pkg/clients/predator/client.go b/go-sdk/pkg/clients/predator/client.go similarity index 100% rename from helix-client/pkg/clients/predator/client.go rename to go-sdk/pkg/clients/predator/client.go diff --git a/helix-client/pkg/clients/predator/client/grpc/grpc_service.pb.go b/go-sdk/pkg/clients/predator/client/grpc/grpc_service.pb.go similarity index 100% rename from helix-client/pkg/clients/predator/client/grpc/grpc_service.pb.go rename to go-sdk/pkg/clients/predator/client/grpc/grpc_service.pb.go diff --git a/helix-client/pkg/clients/predator/client/grpc/grpc_service_grpc.pb.go b/go-sdk/pkg/clients/predator/client/grpc/grpc_service_grpc.pb.go similarity index 100% rename from helix-client/pkg/clients/predator/client/grpc/grpc_service_grpc.pb.go rename to go-sdk/pkg/clients/predator/client/grpc/grpc_service_grpc.pb.go diff --git a/helix-client/pkg/clients/predator/client/grpc/health.pb.go b/go-sdk/pkg/clients/predator/client/grpc/health.pb.go similarity index 100% rename from helix-client/pkg/clients/predator/client/grpc/health.pb.go rename to go-sdk/pkg/clients/predator/client/grpc/health.pb.go diff --git a/helix-client/pkg/clients/predator/client/grpc/health_grpc.pb.go b/go-sdk/pkg/clients/predator/client/grpc/health_grpc.pb.go similarity index 100% rename from helix-client/pkg/clients/predator/client/grpc/health_grpc.pb.go rename to go-sdk/pkg/clients/predator/client/grpc/health_grpc.pb.go diff --git a/helix-client/pkg/clients/predator/client/grpc/model_config.pb.go b/go-sdk/pkg/clients/predator/client/grpc/model_config.pb.go similarity index 100% rename from helix-client/pkg/clients/predator/client/grpc/model_config.pb.go rename to go-sdk/pkg/clients/predator/client/grpc/model_config.pb.go diff --git a/helix-client/pkg/clients/predator/client/proto/grpc_service.proto b/go-sdk/pkg/clients/predator/client/proto/grpc_service.proto similarity index 100% rename from helix-client/pkg/clients/predator/client/proto/grpc_service.proto rename to go-sdk/pkg/clients/predator/client/proto/grpc_service.proto diff --git a/helix-client/pkg/clients/predator/client/proto/health.proto b/go-sdk/pkg/clients/predator/client/proto/health.proto similarity index 100% rename from helix-client/pkg/clients/predator/client/proto/health.proto rename to go-sdk/pkg/clients/predator/client/proto/health.proto diff --git a/helix-client/pkg/clients/predator/client/proto/model_config.proto b/go-sdk/pkg/clients/predator/client/proto/model_config.proto similarity index 100% rename from helix-client/pkg/clients/predator/client/proto/model_config.proto rename to go-sdk/pkg/clients/predator/client/proto/model_config.proto diff --git a/helix-client/pkg/clients/predator/config.go b/go-sdk/pkg/clients/predator/config.go similarity index 100% rename from helix-client/pkg/clients/predator/config.go rename to go-sdk/pkg/clients/predator/config.go diff --git a/helix-client/pkg/clients/predator/init.go b/go-sdk/pkg/clients/predator/init.go similarity index 100% rename from helix-client/pkg/clients/predator/init.go rename to go-sdk/pkg/clients/predator/init.go diff --git a/helix-client/pkg/clients/predator/models.go b/go-sdk/pkg/clients/predator/models.go similarity index 100% rename from helix-client/pkg/clients/predator/models.go rename to go-sdk/pkg/clients/predator/models.go diff --git a/helix-client/pkg/clients/predator/v1.go b/go-sdk/pkg/clients/predator/v1.go similarity index 98% rename from helix-client/pkg/clients/predator/v1.go rename to go-sdk/pkg/clients/predator/v1.go index 7bfae8f4..c7169550 100644 --- a/helix-client/pkg/clients/predator/v1.go +++ b/go-sdk/pkg/clients/predator/v1.go @@ -5,9 +5,9 @@ import ( "fmt" "time" - triton "github.com/Meesho/BharatMLStack/helix-client/pkg/clients/predator/client/grpc" - "github.com/Meesho/BharatMLStack/helix-client/pkg/grpcclient" - "github.com/Meesho/BharatMLStack/helix-client/pkg/metric" + triton "github.com/Meesho/BharatMLStack/go-sdk/pkg/clients/predator/client/grpc" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/grpcclient" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/metric" "github.com/rs/zerolog/log" "google.golang.org/grpc/metadata" ) diff --git a/helix-client/pkg/clients/skye/client/grpc/skye.pb.go b/go-sdk/pkg/clients/skye/client/grpc/skye.pb.go similarity index 100% rename from helix-client/pkg/clients/skye/client/grpc/skye.pb.go rename to go-sdk/pkg/clients/skye/client/grpc/skye.pb.go diff --git a/helix-client/pkg/clients/skye/client/grpc/skye_grpc.pb.go b/go-sdk/pkg/clients/skye/client/grpc/skye_grpc.pb.go similarity index 100% rename from helix-client/pkg/clients/skye/client/grpc/skye_grpc.pb.go rename to go-sdk/pkg/clients/skye/client/grpc/skye_grpc.pb.go diff --git a/helix-client/pkg/clients/skye/client/proto/skye.proto b/go-sdk/pkg/clients/skye/client/proto/skye.proto similarity index 100% rename from helix-client/pkg/clients/skye/client/proto/skye.proto rename to go-sdk/pkg/clients/skye/client/proto/skye.proto diff --git a/helix-client/pkg/clients/skye/conf.go b/go-sdk/pkg/clients/skye/conf.go similarity index 100% rename from helix-client/pkg/clients/skye/conf.go rename to go-sdk/pkg/clients/skye/conf.go diff --git a/helix-client/pkg/clients/skye/init.go b/go-sdk/pkg/clients/skye/init.go similarity index 100% rename from helix-client/pkg/clients/skye/init.go rename to go-sdk/pkg/clients/skye/init.go diff --git a/helix-client/pkg/clients/skye/models.go b/go-sdk/pkg/clients/skye/models.go similarity index 60% rename from helix-client/pkg/clients/skye/models.go rename to go-sdk/pkg/clients/skye/models.go index 3ff2c304..ffca910e 100644 --- a/helix-client/pkg/clients/skye/models.go +++ b/go-sdk/pkg/clients/skye/models.go @@ -1,6 +1,6 @@ package skye -import "github.com/Meesho/BharatMLStack/helix-client/pkg/grpcclient" +import "github.com/Meesho/BharatMLStack/go-sdk/pkg/grpcclient" type ClientV1 struct { ClientConfigs *ClientConfig diff --git a/helix-client/pkg/clients/skye/skye.go b/go-sdk/pkg/clients/skye/skye.go similarity index 82% rename from helix-client/pkg/clients/skye/skye.go rename to go-sdk/pkg/clients/skye/skye.go index 776aa9a8..c02c7d22 100644 --- a/helix-client/pkg/clients/skye/skye.go +++ b/go-sdk/pkg/clients/skye/skye.go @@ -1,7 +1,7 @@ package skye import ( - "github.com/Meesho/BharatMLStack/helix-client/pkg/clients/skye/client/grpc" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/clients/skye/client/grpc" ) type SkyeClient interface { diff --git a/helix-client/pkg/clients/skye/v1.go b/go-sdk/pkg/clients/skye/v1.go similarity index 97% rename from helix-client/pkg/clients/skye/v1.go rename to go-sdk/pkg/clients/skye/v1.go index 4c4a9244..ca5f93ea 100644 --- a/helix-client/pkg/clients/skye/v1.go +++ b/go-sdk/pkg/clients/skye/v1.go @@ -6,8 +6,8 @@ import ( "sync" "time" - grpc2 "github.com/Meesho/BharatMLStack/helix-client/pkg/clients/skye/client/grpc" - "github.com/Meesho/BharatMLStack/helix-client/pkg/grpcclient" + grpc2 "github.com/Meesho/BharatMLStack/go-sdk/pkg/clients/skye/client/grpc" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/grpcclient" "github.com/rs/zerolog/log" "github.com/spf13/viper" "google.golang.org/grpc/metadata" diff --git a/helix-client/pkg/clients/skye/v1_test.go b/go-sdk/pkg/clients/skye/v1_test.go similarity index 99% rename from helix-client/pkg/clients/skye/v1_test.go rename to go-sdk/pkg/clients/skye/v1_test.go index 098275c1..603cb9ce 100644 --- a/helix-client/pkg/clients/skye/v1_test.go +++ b/go-sdk/pkg/clients/skye/v1_test.go @@ -47,7 +47,7 @@ package skye // viper.Set("SKYE_CLIENT_V1_PORT", "80") // viper.Set("SKYE_CLIENT_V1_DEADLINE_MS", 50000) // viper.Set("SKYE_CLIENT_V1_AUTH_TOKEN", "pre-prod") -// viper.Set("APP_NAME", "skye-helix-client") +// viper.Set("APP_NAME", "skye-go-sdk") // testcases := []struct { // name string // request *SimilarCandidateRequest diff --git a/helix-client/pkg/datatypeconverter/byteorder/pack_test.go b/go-sdk/pkg/datatypeconverter/byteorder/pack_test.go similarity index 100% rename from helix-client/pkg/datatypeconverter/byteorder/pack_test.go rename to go-sdk/pkg/datatypeconverter/byteorder/pack_test.go diff --git a/helix-client/pkg/datatypeconverter/byteorder/system.go b/go-sdk/pkg/datatypeconverter/byteorder/system.go similarity index 99% rename from helix-client/pkg/datatypeconverter/byteorder/system.go rename to go-sdk/pkg/datatypeconverter/byteorder/system.go index 74178382..87e640d6 100644 --- a/helix-client/pkg/datatypeconverter/byteorder/system.go +++ b/go-sdk/pkg/datatypeconverter/byteorder/system.go @@ -8,8 +8,8 @@ import ( "math" "unsafe" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/float8" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/types" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/float8" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/types" "github.com/x448/float16" ) diff --git a/helix-client/pkg/datatypeconverter/byteorder/system_test.go b/go-sdk/pkg/datatypeconverter/byteorder/system_test.go similarity index 100% rename from helix-client/pkg/datatypeconverter/byteorder/system_test.go rename to go-sdk/pkg/datatypeconverter/byteorder/system_test.go diff --git a/helix-client/pkg/datatypeconverter/byteorder/vector_test.go b/go-sdk/pkg/datatypeconverter/byteorder/vector_test.go similarity index 100% rename from helix-client/pkg/datatypeconverter/byteorder/vector_test.go rename to go-sdk/pkg/datatypeconverter/byteorder/vector_test.go diff --git a/helix-client/pkg/datatypeconverter/float8/float8_e4m3.go b/go-sdk/pkg/datatypeconverter/float8/float8_e4m3.go similarity index 100% rename from helix-client/pkg/datatypeconverter/float8/float8_e4m3.go rename to go-sdk/pkg/datatypeconverter/float8/float8_e4m3.go diff --git a/helix-client/pkg/datatypeconverter/float8/float8_e4m3_bench_test.go b/go-sdk/pkg/datatypeconverter/float8/float8_e4m3_bench_test.go similarity index 100% rename from helix-client/pkg/datatypeconverter/float8/float8_e4m3_bench_test.go rename to go-sdk/pkg/datatypeconverter/float8/float8_e4m3_bench_test.go diff --git a/helix-client/pkg/datatypeconverter/float8/float8_e4m3_test.go b/go-sdk/pkg/datatypeconverter/float8/float8_e4m3_test.go similarity index 100% rename from helix-client/pkg/datatypeconverter/float8/float8_e4m3_test.go rename to go-sdk/pkg/datatypeconverter/float8/float8_e4m3_test.go diff --git a/helix-client/pkg/datatypeconverter/float8/float8_e5m2.go b/go-sdk/pkg/datatypeconverter/float8/float8_e5m2.go similarity index 100% rename from helix-client/pkg/datatypeconverter/float8/float8_e5m2.go rename to go-sdk/pkg/datatypeconverter/float8/float8_e5m2.go diff --git a/helix-client/pkg/datatypeconverter/float8/float8_e5m2_bench_test.go b/go-sdk/pkg/datatypeconverter/float8/float8_e5m2_bench_test.go similarity index 100% rename from helix-client/pkg/datatypeconverter/float8/float8_e5m2_bench_test.go rename to go-sdk/pkg/datatypeconverter/float8/float8_e5m2_bench_test.go diff --git a/helix-client/pkg/datatypeconverter/float8/float8_e5m2_test.go b/go-sdk/pkg/datatypeconverter/float8/float8_e5m2_test.go similarity index 100% rename from helix-client/pkg/datatypeconverter/float8/float8_e5m2_test.go rename to go-sdk/pkg/datatypeconverter/float8/float8_e5m2_test.go diff --git a/helix-client/pkg/datatypeconverter/typeconverter/tyeconverter.go b/go-sdk/pkg/datatypeconverter/typeconverter/tyeconverter.go similarity index 99% rename from helix-client/pkg/datatypeconverter/typeconverter/tyeconverter.go rename to go-sdk/pkg/datatypeconverter/typeconverter/tyeconverter.go index 3ca8df3f..2599c26e 100644 --- a/helix-client/pkg/datatypeconverter/typeconverter/tyeconverter.go +++ b/go-sdk/pkg/datatypeconverter/typeconverter/tyeconverter.go @@ -5,8 +5,8 @@ import ( "strconv" "strings" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/byteorder" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/types" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/byteorder" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/types" ) // BytesToString converts byte data to string based on the specified data type diff --git a/helix-client/pkg/datatypeconverter/typeconverter/tyeconverter_test.go b/go-sdk/pkg/datatypeconverter/typeconverter/tyeconverter_test.go similarity index 99% rename from helix-client/pkg/datatypeconverter/typeconverter/tyeconverter_test.go rename to go-sdk/pkg/datatypeconverter/typeconverter/tyeconverter_test.go index 2180e999..bafc2ebe 100644 --- a/helix-client/pkg/datatypeconverter/typeconverter/tyeconverter_test.go +++ b/go-sdk/pkg/datatypeconverter/typeconverter/tyeconverter_test.go @@ -6,7 +6,7 @@ import ( "strconv" "testing" - "github.com/Meesho/BharatMLStack/helix-client/pkg/datatypeconverter/byteorder" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/datatypeconverter/byteorder" ) func TestMain(m *testing.M) { diff --git a/helix-client/pkg/datatypeconverter/types/data_type.go b/go-sdk/pkg/datatypeconverter/types/data_type.go similarity index 100% rename from helix-client/pkg/datatypeconverter/types/data_type.go rename to go-sdk/pkg/datatypeconverter/types/data_type.go diff --git a/helix-client/pkg/datatypeconverter/types/data_type_test.go b/go-sdk/pkg/datatypeconverter/types/data_type_test.go similarity index 100% rename from helix-client/pkg/datatypeconverter/types/data_type_test.go rename to go-sdk/pkg/datatypeconverter/types/data_type_test.go diff --git a/helix-client/pkg/enums/client_type.go b/go-sdk/pkg/enums/client_type.go similarity index 100% rename from helix-client/pkg/enums/client_type.go rename to go-sdk/pkg/enums/client_type.go diff --git a/helix-client/pkg/enums/user_context.go b/go-sdk/pkg/enums/user_context.go similarity index 100% rename from helix-client/pkg/enums/user_context.go rename to go-sdk/pkg/enums/user_context.go diff --git a/helix-client/pkg/grpc/grpcframework.go b/go-sdk/pkg/grpc/grpcframework.go similarity index 96% rename from helix-client/pkg/grpc/grpcframework.go rename to go-sdk/pkg/grpc/grpcframework.go index ca43d166..811cd66e 100644 --- a/helix-client/pkg/grpc/grpcframework.go +++ b/go-sdk/pkg/grpc/grpcframework.go @@ -6,8 +6,8 @@ import ( "strconv" "sync" - "github.com/Meesho/BharatMLStack/helix-client/pkg/httpframework" - "github.com/Meesho/BharatMLStack/helix-client/pkg/middleware" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/httpframework" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/middleware" "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" "github.com/soheilhy/cmux" diff --git a/helix-client/pkg/grpc/grpcframework_test.go b/go-sdk/pkg/grpc/grpcframework_test.go similarity index 99% rename from helix-client/pkg/grpc/grpcframework_test.go rename to go-sdk/pkg/grpc/grpcframework_test.go index 861287ba..96ae3b87 100644 --- a/helix-client/pkg/grpc/grpcframework_test.go +++ b/go-sdk/pkg/grpc/grpcframework_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "github.com/Meesho/BharatMLStack/helix-client/pkg/httpframework" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/httpframework" "github.com/spf13/viper" "github.com/stretchr/testify/assert" diff --git a/helix-client/pkg/grpc/options_util.go b/go-sdk/pkg/grpc/options_util.go similarity index 100% rename from helix-client/pkg/grpc/options_util.go rename to go-sdk/pkg/grpc/options_util.go diff --git a/helix-client/pkg/grpcclient/grpc.go b/go-sdk/pkg/grpcclient/grpc.go similarity index 98% rename from helix-client/pkg/grpcclient/grpc.go rename to go-sdk/pkg/grpcclient/grpc.go index f0c5d7c3..7490d1d6 100644 --- a/helix-client/pkg/grpcclient/grpc.go +++ b/go-sdk/pkg/grpcclient/grpc.go @@ -5,7 +5,7 @@ import ( "errors" "time" - "github.com/Meesho/BharatMLStack/helix-client/pkg/metric" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/metric" "github.com/rs/zerolog/log" "github.com/spf13/viper" "golang.org/x/net/context" diff --git a/helix-client/pkg/grpcclient/grpc_test.go b/go-sdk/pkg/grpcclient/grpc_test.go similarity index 100% rename from helix-client/pkg/grpcclient/grpc_test.go rename to go-sdk/pkg/grpcclient/grpc_test.go diff --git a/helix-client/pkg/httpframework/httpframework.go b/go-sdk/pkg/httpframework/httpframework.go similarity index 94% rename from helix-client/pkg/httpframework/httpframework.go rename to go-sdk/pkg/httpframework/httpframework.go index 977da553..e88a1129 100644 --- a/helix-client/pkg/httpframework/httpframework.go +++ b/go-sdk/pkg/httpframework/httpframework.go @@ -4,7 +4,7 @@ import ( "os" "sync" - "github.com/Meesho/BharatMLStack/helix-client/pkg/middleware" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/middleware" "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" "github.com/spf13/viper" diff --git a/helix-client/pkg/httpframework/httpframework_test.go b/go-sdk/pkg/httpframework/httpframework_test.go similarity index 100% rename from helix-client/pkg/httpframework/httpframework_test.go rename to go-sdk/pkg/httpframework/httpframework_test.go diff --git a/helix-client/pkg/metric/metric.go b/go-sdk/pkg/metric/metric.go similarity index 100% rename from helix-client/pkg/metric/metric.go rename to go-sdk/pkg/metric/metric.go diff --git a/helix-client/pkg/metric/tag.go b/go-sdk/pkg/metric/tag.go similarity index 100% rename from helix-client/pkg/metric/tag.go rename to go-sdk/pkg/metric/tag.go diff --git a/helix-client/pkg/metric/tag_test.go b/go-sdk/pkg/metric/tag_test.go similarity index 100% rename from helix-client/pkg/metric/tag_test.go rename to go-sdk/pkg/metric/tag_test.go diff --git a/helix-client/pkg/middleware/grpclogger.go b/go-sdk/pkg/middleware/grpclogger.go similarity index 96% rename from helix-client/pkg/middleware/grpclogger.go rename to go-sdk/pkg/middleware/grpclogger.go index 5a6e0fbc..7a362aab 100644 --- a/helix-client/pkg/middleware/grpclogger.go +++ b/go-sdk/pkg/middleware/grpclogger.go @@ -7,7 +7,7 @@ import ( "strings" "time" - "github.com/Meesho/BharatMLStack/helix-client/pkg/metric" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/metric" "github.com/rs/zerolog/log" "google.golang.org/grpc" "google.golang.org/grpc/codes" diff --git a/helix-client/pkg/middleware/grpcrecovery.go b/go-sdk/pkg/middleware/grpcrecovery.go similarity index 100% rename from helix-client/pkg/middleware/grpcrecovery.go rename to go-sdk/pkg/middleware/grpcrecovery.go diff --git a/helix-client/pkg/middleware/httplogger.go b/go-sdk/pkg/middleware/httplogger.go similarity index 91% rename from helix-client/pkg/middleware/httplogger.go rename to go-sdk/pkg/middleware/httplogger.go index d4c7ba55..160742fc 100644 --- a/helix-client/pkg/middleware/httplogger.go +++ b/go-sdk/pkg/middleware/httplogger.go @@ -7,8 +7,8 @@ import ( "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" - "github.com/Meesho/BharatMLStack/helix-client/pkg/api/http" - "github.com/Meesho/BharatMLStack/helix-client/pkg/metric" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/api/http" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/metric" ) // HTTPLogger logs the request diff --git a/helix-client/pkg/middleware/httplogger_test.go b/go-sdk/pkg/middleware/httplogger_test.go similarity index 97% rename from helix-client/pkg/middleware/httplogger_test.go rename to go-sdk/pkg/middleware/httplogger_test.go index 72aa28ec..887eb516 100644 --- a/helix-client/pkg/middleware/httplogger_test.go +++ b/go-sdk/pkg/middleware/httplogger_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - http2 "github.com/Meesho/BharatMLStack/helix-client/pkg/api/http" + http2 "github.com/Meesho/BharatMLStack/go-sdk/pkg/api/http" "github.com/gin-gonic/gin" "github.com/rs/zerolog" "github.com/rs/zerolog/log" diff --git a/helix-client/pkg/middleware/httprecovery.go b/go-sdk/pkg/middleware/httprecovery.go similarity index 92% rename from helix-client/pkg/middleware/httprecovery.go rename to go-sdk/pkg/middleware/httprecovery.go index 69f3e3c4..384e8987 100644 --- a/helix-client/pkg/middleware/httprecovery.go +++ b/go-sdk/pkg/middleware/httprecovery.go @@ -4,7 +4,7 @@ import ( "fmt" "runtime/debug" - "github.com/Meesho/BharatMLStack/helix-client/pkg/api" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/api" "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" ) diff --git a/helix-client/pkg/system/global.go b/go-sdk/pkg/system/global.go similarity index 100% rename from helix-client/pkg/system/global.go rename to go-sdk/pkg/system/global.go diff --git a/helix-client/pkg/utils/byte_utils.go b/go-sdk/pkg/utils/byte_utils.go similarity index 98% rename from helix-client/pkg/utils/byte_utils.go rename to go-sdk/pkg/utils/byte_utils.go index fd32d5e0..8415d329 100644 --- a/helix-client/pkg/utils/byte_utils.go +++ b/go-sdk/pkg/utils/byte_utils.go @@ -6,7 +6,7 @@ import ( "errors" "reflect" - "github.com/Meesho/BharatMLStack/helix-client/pkg/system" + "github.com/Meesho/BharatMLStack/go-sdk/pkg/system" "github.com/rs/zerolog/log" ) diff --git a/helix-client/pkg/utils/byte_utils_test.go b/go-sdk/pkg/utils/byte_utils_test.go similarity index 100% rename from helix-client/pkg/utils/byte_utils_test.go rename to go-sdk/pkg/utils/byte_utils_test.go diff --git a/helix-client/pkg/utils/empty_utils.go b/go-sdk/pkg/utils/empty_utils.go similarity index 100% rename from helix-client/pkg/utils/empty_utils.go rename to go-sdk/pkg/utils/empty_utils.go diff --git a/helix-client/pkg/utils/empty_utils_test.go b/go-sdk/pkg/utils/empty_utils_test.go similarity index 100% rename from helix-client/pkg/utils/empty_utils_test.go rename to go-sdk/pkg/utils/empty_utils_test.go diff --git a/helix-client/pkg/utils/slice_utils.go b/go-sdk/pkg/utils/slice_utils.go similarity index 100% rename from helix-client/pkg/utils/slice_utils.go rename to go-sdk/pkg/utils/slice_utils.go diff --git a/helix-client/pkg/utils/slice_utils_test.go b/go-sdk/pkg/utils/slice_utils_test.go similarity index 100% rename from helix-client/pkg/utils/slice_utils_test.go rename to go-sdk/pkg/utils/slice_utils_test.go diff --git a/helix-client/README.md b/helix-client/README.md deleted file mode 100644 index 8e7b2a3f..00000000 --- a/helix-client/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# helix-clients - -### Environment Variables -```shell -HELIX_CLIENT_ENABLED=true -HELIX_CLIENT_API_AUTH_TOKEN= -HELIX_CLIENT_CONFIG_REFRESH_INTERVAL_IN_MINUTES=10 -HELIX_CLIENT_CONFIG_INIT_HARD_FAILURE=false -HELIX_CLIENT_ENVIRONMENT=PROD - - -HELIX_CLIENT_CONN_CONF_COUNT=1 - -HELIX_CLIENT_CONN_CONF_ID=1 -HELIX_CLIENT_CONN_CONF_1_CONFIG_ID=pdp-organic-1,pdp-organic-2 -HELIX_CLIENT_CONN_CONF_1_SERVICE=MODEL_PROXY -HELIX_CLIENT_CONN_CONF_1_CONN_PROTOCOL=HTTP1 -HELIX_CLIENT_CONN_CONF_1_TIMEOUT=200 -HELIX_CLIENT_CONN_CONF_1_MAX_IDLE_CONN=200 -HELIX_CLIENT_CONN_CONF_1_MAX_IDLE_CONN_PER_HOST=200 -HELIX_CLIENT_CONN_CONF_1_IDLE_CONN_TIMEOUT=200 -OR -HELIX_CLIENT_CONN_CONF_ID=1 -HELIX_CLIENT_CONN_CONF_1_CONFIG_ID=pdp-organic-3,pdp-organic-4 -HELIX_CLIENT_CONN_CONF_1_SERVICE=MODEL_PROXY -HELIX_CLIENT_CONN_CONF_1_CONN_PROTOCOL=GRPC -HELIX_CLIENT_CONN_CONF_1_DEADLINE=200 -HELIX_CLIENT_CONN_CONF_1_PLAINTEXT=true -HELIX_CLIENT_CONN_CONF_1_CHAN_ALGO=round-robin -HELIX_CLIENT_CONN_CONF_1_KEEP_ALIVE_TIME=200 -HELIX_CLIENT_CONN_CONF_1_KEEP_ALIVE_WITHOUT_CALLS=true -HELIX_CLIENT_CONN_CONF_1_IDLE_CONN_TIME_OUT=200 -``` diff --git a/helix-client/VERSION b/helix-client/VERSION deleted file mode 100644 index 60453e69..00000000 --- a/helix-client/VERSION +++ /dev/null @@ -1 +0,0 @@ -v1.0.0 \ No newline at end of file diff --git a/helix-client/go.mod b/helix-client/go.mod deleted file mode 100644 index cfd1c694..00000000 --- a/helix-client/go.mod +++ /dev/null @@ -1,68 +0,0 @@ -module github.com/Meesho/BharatMLStack/helix-client - -go 1.24.4 - -require github.com/rs/zerolog v1.33.0 - -require ( - github.com/DataDog/datadog-go/v5 v5.5.0 - github.com/gin-gonic/gin v1.11.0 - github.com/soheilhy/cmux v0.1.5 - github.com/spf13/viper v1.16.0 - github.com/stretchr/testify v1.11.1 - github.com/x448/float16 v0.8.4 - golang.org/x/net v0.43.0 - google.golang.org/grpc v1.75.0 - google.golang.org/protobuf v1.36.9 -) - -require ( - github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/bytedance/sonic v1.14.0 // indirect - github.com/bytedance/sonic/loader v0.3.0 // indirect - github.com/cloudwego/base64x v0.1.6 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.8 // indirect - github.com/gin-contrib/sse v1.1.0 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.27.0 // indirect - github.com/goccy/go-json v0.10.2 // indirect - github.com/goccy/go-yaml v1.18.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/cpuid/v2 v2.3.0 // indirect - github.com/leodido/go-urn v1.4.0 // indirect - github.com/magiconair/properties v1.8.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.2.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/quic-go/qpack v0.5.1 // indirect - github.com/quic-go/quic-go v0.54.0 // indirect - github.com/rogpeppe/go-internal v1.13.1 // indirect - github.com/spf13/afero v1.9.5 // indirect - github.com/spf13/cast v1.5.1 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/subosito/gotenv v1.4.2 // indirect - github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/ugorji/go/codec v1.3.0 // indirect - go.opentelemetry.io/otel v1.38.0 // indirect - go.uber.org/mock v0.5.0 // indirect - golang.org/x/arch v0.20.0 // indirect - golang.org/x/crypto v0.41.0 // indirect - golang.org/x/mod v0.26.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/sys v0.35.0 // indirect - golang.org/x/text v0.28.0 // indirect - golang.org/x/tools v0.35.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect - gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect -) diff --git a/helix-client/go.sum b/helix-client/go.sum deleted file mode 100644 index 43bca6d8..00000000 --- a/helix-client/go.sum +++ /dev/null @@ -1,613 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= -github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= -github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/bytedance/sonic v1.14.0 h1:/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ= -github.com/bytedance/sonic v1.14.0/go.mod h1:WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA= -github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= -github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= -github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= -github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= -github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= -github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= -github.com/gin-gonic/gin v1.11.0 h1:OW/6PLjyusp2PPXtyxKHU0RbX6I/l28FTdDlae5ueWk= -github.com/gin-gonic/gin v1.11.0/go.mod h1:+iq/FyxlGzII0KHiBGjuNn4UNENUlKbGlNmc+W50Dls= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= -github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= -github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= -github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= -github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.27.0 h1:w8+XrWVMhGkxOaaowyKH35gFydVHOvC0/uWoy2Fzwn4= -github.com/go-playground/validator/v10 v10.27.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= -github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= -github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= -github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= -github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= -github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI= -github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg= -github.com/quic-go/quic-go v0.54.0 h1:6s1YB9QotYI6Ospeiguknbp2Znb/jZYjZLRXn9kMQBg= -github.com/quic-go/quic-go v0.54.0/go.mod h1:e68ZEaCdyviluZmy44P6Iey98v/Wfz6HCjQEm+l8zTY= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= -github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= -github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= -github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= -github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= -github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/ugorji/go/codec v1.3.0 h1:Qd2W2sQawAfG8XSvzwhBeoGq71zXOC/Q1E9y/wUcsUA= -github.com/ugorji/go/codec v1.3.0/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= -github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= -github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= -go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= -go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= -go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= -go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI= -go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg= -go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc= -go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps= -go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= -go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= -go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= -go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= -golang.org/x/arch v0.20.0 h1:dx1zTU0MAE98U+TQ8BLl7XsJbgze2WnNKF/8tGp/Q6c= -golang.org/x/arch v0.20.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= -golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= -gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= -google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= -google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From 1e47c8aa8fad9d8fbf4e36b45199917862793459 Mon Sep 17 00:00:00 2001 From: ansh-meesho Date: Sat, 14 Feb 2026 21:39:40 +0530 Subject: [PATCH 10/11] bump the go-sdk version --- go-sdk/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go-sdk/VERSION b/go-sdk/VERSION index 992977ad..0408c30b 100644 --- a/go-sdk/VERSION +++ b/go-sdk/VERSION @@ -1 +1 @@ -v1.1.0 \ No newline at end of file +v1.2.0 \ No newline at end of file From 871d9c1e7dd7daa52754ec033725e58fb633cf39 Mon Sep 17 00:00:00 2001 From: ansh-meesho Date: Sat, 14 Feb 2026 22:10:37 +0530 Subject: [PATCH 11/11] removed helix client --- .github/workflows/ci.yml | 11 +- .github/workflows/helix-client.yml | 71 -------- .github/workflows/release-helix-client.yml | 151 ------------------ .../docs/inferflow/v1.0.0/architecture.md | 4 +- docs/inferflow/v1.0.0/architecture/index.html | 4 +- manual-release.sh | 5 +- quick-start/PREDATOR_SETUP.md | 6 +- quick-start/setup-predator-k8s.sh | 2 +- 8 files changed, 10 insertions(+), 244 deletions(-) delete mode 100644 .github/workflows/helix-client.yml delete mode 100644 .github/workflows/release-helix-client.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82a0e8c5..ffe4e44c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,6 @@ jobs: online-feature-store-changed: ${{ steps.changes.outputs.online-feature-store }} go-sdk-changed: ${{ steps.changes.outputs.go-sdk }} py-sdk-changed: ${{ steps.changes.outputs.py-sdk }} - helix-client-changed: ${{ steps.changes.outputs.helix-client }} inferflow-changed: ${{ steps.changes.outputs.inferflow }} skye-changed: ${{ steps.changes.outputs.skye }} multiple-components: ${{ steps.check-multiple.outputs.multiple }} @@ -48,8 +47,6 @@ jobs: - 'go-sdk/**' py-sdk: - 'py-sdk/**' - helix-client: - - 'helix-client/**' inferflow: - 'inferflow/**' skye: @@ -77,9 +74,6 @@ jobs: if [ "${{ steps.changes.outputs.py-sdk }}" == "true" ]; then changed_count=$((changed_count + 1)) fi - if [ "${{ steps.changes.outputs.helix-client }}" == "true" ]; then - changed_count=$((changed_count + 1)) - fi if [ "${{ steps.changes.outputs.inferflow }}" == "true" ]; then changed_count=$((changed_count + 1)) fi @@ -96,7 +90,7 @@ jobs: - name: Check if any component changed id: check-any run: | - if [ "${{ steps.changes.outputs.horizon }}" == "true" ] || [ "${{ steps.changes.outputs.trufflebox-ui }}" == "true" ] || [ "${{ steps.changes.outputs.numerix }}" == "true" ] || [ "${{ steps.changes.outputs.online-feature-store }}" == "true" ] || [ "${{ steps.changes.outputs.go-sdk }}" == "true" ] || [ "${{ steps.changes.outputs.py-sdk }}" == "true" ] || [ "${{ steps.changes.outputs.helix-client }}" == "true" ] || [ "${{ steps.changes.outputs.inferflow }}" == "true" ] || [ "${{ steps.changes.outputs.skye }}" == "true" ]; then + if [ "${{ steps.changes.outputs.horizon }}" == "true" ] || [ "${{ steps.changes.outputs.trufflebox-ui }}" == "true" ] || [ "${{ steps.changes.outputs.numerix }}" == "true" ] || [ "${{ steps.changes.outputs.online-feature-store }}" == "true" ] || [ "${{ steps.changes.outputs.go-sdk }}" == "true" ] || [ "${{ steps.changes.outputs.py-sdk }}" == "true" ] || [ "${{ steps.changes.outputs.inferflow }}" == "true" ] || [ "${{ steps.changes.outputs.skye }}" == "true" ]; then echo "any=true" >> $GITHUB_OUTPUT else echo "any=false" >> $GITHUB_OUTPUT @@ -116,7 +110,6 @@ jobs: echo "- Online Feature Store CI: ${{ needs.detect-changes.outputs.online-feature-store-changed }}" echo "- Go SDK CI: ${{ needs.detect-changes.outputs.go-sdk-changed }}" echo "- Python SDK CI: ${{ needs.detect-changes.outputs.py-sdk-changed }}" - echo "- Helix Client CI: ${{ needs.detect-changes.outputs.helix-client-changed }}" echo "- Inferflow CI: ${{ needs.detect-changes.outputs.inferflow-changed }}" echo "- Skye CI: ${{ needs.detect-changes.outputs.skye-changed }}" echo "This workflow will proceed with integration tests..." @@ -137,7 +130,6 @@ jobs: echo "Testing Numerix matrix operations integration..." echo "Testing Go SDK compatibility with backend services..." echo "Testing Python SDK compatibility with backend services..." - echo "Testing Helix Client compatibility with backend services..." echo "Testing Inferflow compatibility with backend services..." # Add actual integration test commands here @@ -218,6 +210,5 @@ jobs: echo "- Online Feature Store: ${{ needs.detect-changes.outputs.online-feature-store-changed }}" >> $GITHUB_STEP_SUMMARY echo "- Go SDK: ${{ needs.detect-changes.outputs.go-sdk-changed }}" >> $GITHUB_STEP_SUMMARY echo "- Python SDK: ${{ needs.detect-changes.outputs.py-sdk-changed }}" >> $GITHUB_STEP_SUMMARY - echo "- Helix Client: ${{ needs.detect-changes.outputs.helix-client-changed }}" >> $GITHUB_STEP_SUMMARY echo "- Inferflow: ${{ needs.detect-changes.outputs.inferflow-changed }}" >> $GITHUB_STEP_SUMMARY echo "- Skye: ${{ needs.detect-changes.outputs.skye-changed }}" >> $GITHUB_STEP_SUMMARY \ No newline at end of file diff --git a/.github/workflows/helix-client.yml b/.github/workflows/helix-client.yml deleted file mode 100644 index ff236ded..00000000 --- a/.github/workflows/helix-client.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: Helix Client CI - -on: - pull_request: - branches: [main, develop] - paths: ['helix-client/**'] - push: - branches: [main, develop] - paths: ['helix-client/**'] - -jobs: - build-helix-client: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./helix-client - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version: '1.24' - cache: false - - - name: Cache Go modules - uses: actions/cache@v3 - with: - path: | - ~/.cache/go-build - ~/go/pkg/mod - key: ${{ runner.os }}-helix-client-${{ hashFiles('helix-client/go.sum') }} - restore-keys: | - ${{ runner.os }}-helix-client- - - - name: Download dependencies - run: go mod download - - - name: Verify dependencies - run: go mod verify - - - name: Run tests - run: go test -v ./... - - - name: Run tests with coverage - run: go test -v -coverprofile=coverage.out ./... - - - name: Display coverage - run: go tool cover -func=coverage.out - - - name: Build SDK packages - run: go build -v ./... - - - name: Run go vet - run: go vet ./... - - - name: Install staticcheck - run: go install honnef.co/go/tools/cmd/staticcheck@latest - - - name: Run staticcheck - run: staticcheck ./... - - - name: Check for go mod tidy - run: | - go mod tidy - if [ -n "$(git status --porcelain go.mod go.sum)" ]; then - echo "go.mod or go.sum is not tidy" - git diff go.mod go.sum - exit 1 - fi \ No newline at end of file diff --git a/.github/workflows/release-helix-client.yml b/.github/workflows/release-helix-client.yml deleted file mode 100644 index 5ed33890..00000000 --- a/.github/workflows/release-helix-client.yml +++ /dev/null @@ -1,151 +0,0 @@ -name: Release Helix Client - -on: - workflow_dispatch: - inputs: - version: - description: 'Version to release (e.g., v0.1.20 or v0.1.20-beta.1)' - required: true - type: string - is_beta: - description: 'Is this a beta release?' - required: false - type: boolean - default: false - is_alpha: - description: 'Is this an alpha release?' - required: false - type: boolean - default: false - branch: - description: 'Branch to release from' - required: true - type: string - default: 'main' - -jobs: - release: - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: ${{ inputs.branch }} - - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version: '1.24' - - - name: Validate Helix Client - run: | - echo "Current branch: ${{ github.ref }}" - cd helix-client - go mod tidy - go test -v ./... - go build -v ./... - go vet ./... - - - name: Create Git tag - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" - - TAG="helix-client/${{ inputs.version }}" - git tag -a "$TAG" -m "Helix Client release ${{ inputs.version }}" - git push origin "$TAG" - - - name: Create GitHub Release (Production) - if: ${{ !inputs.is_beta && !inputs.is_alpha }} - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: helix-client/${{ inputs.version }} - release_name: Helix Client ${{ inputs.version }} - body: | - ## Helix Client Release ${{ inputs.version }} - - ### Installation - ```bash - go get github.com/${{ github.repository }}/helix-client@${{ inputs.version }} - ``` - - ### Features - - Go client libraries for BharatMLStack services - - Numerix, Predator, and Skye client integrations - - Type-safe API bindings and gRPC support - - ### Usage - ```go - import "github.com/${{ github.repository }}/helix-client" - ``` - - ### Changes - Please see the commit history for detailed changes. - - ### Validation - - ✅ Tests passed - - ✅ Build successful - - ✅ Go vet clean - draft: false - prerelease: false - - - name: Create Beta Pre-release - if: ${{ inputs.is_beta }} - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: helix-client/${{ inputs.version }} - release_name: Helix Client ${{ inputs.version }} (Beta) - body: | - ## Helix Client Beta Release ${{ inputs.version }} - - ⚠️ **This is a beta release from the develop branch** - Use for testing purposes only. - - ### Installation - ```bash - go get github.com/${{ github.repository }}/helix-client@${{ inputs.version }} - ``` - - ### Changes - Please see the commit history for detailed changes. - - ### Validation - - ✅ Tests passed - - ✅ Build successful - - ✅ Go vet clean - draft: false - prerelease: true - - - name: Create Alpha Pre-release - if: ${{ inputs.is_alpha }} - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: helix-client/${{ inputs.version }} - release_name: Helix Client ${{ inputs.version }} (Alpha) - body: | - ## Helix Client Alpha Release ${{ inputs.version }} - - ⚠️ **This is an alpha release from a feature/fix branch** - Experimental build for development and testing. - - ### Installation - ```bash - go get github.com/${{ github.repository }}/helix-client@${{ inputs.version }} - ``` - - ### Changes - Please see the commit history for detailed changes. - - ### Validation - - ✅ Tests passed - - ✅ Build successful - - ✅ Go vet clean - draft: false - prerelease: true \ No newline at end of file diff --git a/docs-src/docs/inferflow/v1.0.0/architecture.md b/docs-src/docs/inferflow/v1.0.0/architecture.md index 06860e46..789e9a4d 100644 --- a/docs-src/docs/inferflow/v1.0.0/architecture.md +++ b/docs-src/docs/inferflow/v1.0.0/architecture.md @@ -126,12 +126,12 @@ This means new models or configuration changes go live **without redeployment**. - Auth via `CALLER_ID` and `CALLER_TOKEN` metadata #### Predator (Model Serving) -- Uses `helix-client` for model inference +- Uses `go-sdk` for model inference - Supports **percentage-based traffic routing** across multiple model endpoints - Configurable calibration and batch sizing #### Numerix (Compute Engine) -- Uses `helix-client` Numerix client +- Uses `go-sdk` Numerix client - RPC: `NumerixService.Compute` with entity score data - Used for compute operations like reranking diff --git a/docs/inferflow/v1.0.0/architecture/index.html b/docs/inferflow/v1.0.0/architecture/index.html index 0860f87d..aa0a5091 100644 --- a/docs/inferflow/v1.0.0/architecture/index.html +++ b/docs/inferflow/v1.0.0/architecture/index.html @@ -94,13 +94,13 @@

On

Predator (Model Serving)

    -
  • Uses helix-client for model inference
  • +
  • Uses go-sdk for model inference
  • Supports percentage-based traffic routing across multiple model endpoints
  • Configurable calibration and batch sizing

Numerix (Compute Engine)

    -
  • Uses helix-client Numerix client
  • +
  • Uses go-sdk Numerix client
  • RPC: NumerixService.Compute with entity score data
  • Used for compute operations like reranking
diff --git a/manual-release.sh b/manual-release.sh index c39da4f1..dbaf398a 100755 --- a/manual-release.sh +++ b/manual-release.sh @@ -11,7 +11,7 @@ CYAN='\033[0;36m' NC='\033[0m' # No Color # Available modules for release -AVAILABLE_MODULES=("horizon" "trufflebox-ui" "numerix" "online-feature-store" "go-sdk" "py-sdk" "helix-client" "inferflow" "skye") +AVAILABLE_MODULES=("horizon" "trufflebox-ui" "numerix" "online-feature-store" "go-sdk" "py-sdk" "inferflow" "skye") # Python SDK subdirectories PY_SDK_MODULES=("bharatml_commons" "grpc_feature_client" "spark_feature_push_client") @@ -170,9 +170,6 @@ trigger_workflow() { "py-sdk") workflow_file="release-py-sdk.yml" ;; - "helix-client") - workflow_file="release-helix-client.yml" - ;; "inferflow") workflow_file="release-inferflow.yml" ;; diff --git a/quick-start/PREDATOR_SETUP.md b/quick-start/PREDATOR_SETUP.md index f0b96447..5ae2915d 100644 --- a/quick-start/PREDATOR_SETUP.md +++ b/quick-start/PREDATOR_SETUP.md @@ -1105,21 +1105,21 @@ kubectl -n prd-predator port-forward svc/prd-predator 8090:80 & # Step 3: Test gRPC access from your host machine # Predator exposes Triton gRPC on port 8001 (service port 80 -> targetPort 8001) grpcurl -plaintext \ - -import-path helix-client/pkg/clients/predator/client/proto \ + -import-path go-sdk/pkg/clients/predator/client/proto \ -proto grpc_service.proto \ -d '{}' \ localhost:8090 inference.GRPCInferenceService/ServerLive # Test server readiness grpcurl -plaintext \ - -import-path helix-client/pkg/clients/predator/client/proto \ + -import-path go-sdk/pkg/clients/predator/client/proto \ -proto grpc_service.proto \ -d '{}' \ localhost:8090 inference.GRPCInferenceService/ServerReady # List available services grpcurl -plaintext \ - -import-path helix-client/pkg/clients/predator/client/proto \ + -import-path go-sdk/pkg/clients/predator/client/proto \ -proto grpc_service.proto \ localhost:8090 list diff --git a/quick-start/setup-predator-k8s.sh b/quick-start/setup-predator-k8s.sh index 53fa211b..8f8e8288 100755 --- a/quick-start/setup-predator-k8s.sh +++ b/quick-start/setup-predator-k8s.sh @@ -1781,7 +1781,7 @@ print_summary() { echo "2. Access Predator service directly via port-forward:" echo " kubectl -n prd-predator port-forward svc/prd-predator 8090:80" echo " Then test with:" - echo " grpcurl -plaintext -import-path helix-client/pkg/clients/predator/client/proto \\" + echo " grpcurl -plaintext -import-path go-sdk/pkg/clients/predator/client/proto \\" echo " -proto grpc_service.proto -d '{}' \\" echo " localhost:8090 inference.GRPCInferenceService/ServerLive" echo ""

aN)v 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 literal 0 HcmV?d00001 diff --git a/docs-src/package-lock.json b/docs-src/package-lock.json deleted file mode 100644 index c2617028..00000000 --- a/docs-src/package-lock.json +++ /dev/null @@ -1,17432 +0,0 @@ -{ - "name": "docs", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "docs", - "version": "0.0.0", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/preset-classic": "3.8.1", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "prism-react-renderer": "^2.3.0", - "react": "^19.0.0", - "react-dom": "^19.0.0" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/types": "3.8.1" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", - "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", - "@algolia/autocomplete-shared": "1.17.9" - } - }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", - "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" - }, - "peerDependencies": { - "search-insights": ">= 1 < 3" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", - "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", - "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", - "license": "MIT", - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/client-abtesting": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.27.0.tgz", - "integrity": "sha512-SITU5umoknxETtw67TxJu9njyMkWiH8pM+Bvw4dzfuIrIAT6Y1rmwV4y0A0didWoT+6xVuammIykbtBMolBcmg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.27.0.tgz", - "integrity": "sha512-go1b9qIZK5vYEQ7jD2bsfhhhVsoh9cFxQ5xF8TzTsg2WOCZR3O92oXCkq15SOK0ngJfqDU6a/k0oZ4KuEnih1Q==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-common": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.27.0.tgz", - "integrity": "sha512-tnFOzdNuMzsz93kOClj3fKfuYoF3oYaEB5bggULSj075GJ7HUNedBEm7a6ScrjtnOaOtipbnT7veUpHA4o4wEQ==", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-insights": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.27.0.tgz", - "integrity": "sha512-y1qgw39qZijjQBXrqZTiwK1cWgWGRiLpJNWBv9w36nVMKfl9kInrfsYmdBAfmlhVgF/+Woe0y1jQ7pa4HyShAw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.27.0.tgz", - "integrity": "sha512-XluG9qPZKEbiLoIfXTKbABsWDNOMPx0t6T2ImJTTeuX+U/zBdmfcqqgcgkqXp+vbXof/XX/4of9Eqo1JaqEmKw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-query-suggestions": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.27.0.tgz", - "integrity": "sha512-V8/To+SsAl2sdw2AAjeLJuCW1L+xpz+LAGerJK7HKqHzE5yQhWmIWZTzqYQcojkii4iBMYn0y3+uReWqT8XVSQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-search": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.27.0.tgz", - "integrity": "sha512-EJJ7WmvmUXZdchueKFCK8UZFyLqy4Hz64snNp0cTc7c0MKaSeDGYEDxVsIJKp15r7ORaoGxSyS4y6BGZMXYuCg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/events": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", - "license": "MIT" - }, - "node_modules/@algolia/ingestion": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.27.0.tgz", - "integrity": "sha512-xNCyWeqpmEo4EdmpG57Fs1fJIQcPwt5NnJ6MBdXnUdMVXF4f5PHgza+HQWQQcYpCsune96jfmR0v7us6gRIlCw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/monitoring": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.27.0.tgz", - "integrity": "sha512-P0NDiEFyt9UYQLBI0IQocIT7xHpjMpoFN3UDeerbztlkH9HdqT0GGh1SHYmNWpbMWIGWhSJTtz6kSIWvFu4+pw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/recommend": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.27.0.tgz", - "integrity": "sha512-cqfTMF1d1cc7hg0vITNAFxJZas7MJ4Obc36WwkKpY23NOtGb+4tH9X7UKlQa2PmTgbXIANoJ/DAQTeiVlD2I4Q==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.27.0.tgz", - "integrity": "sha512-ErenYTcXl16wYXtf0pxLl9KLVxIztuehqXHfW9nNsD8mz9OX42HbXuPzT7y6JcPiWJpc/UU/LY5wBTB65vsEUg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-fetch": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.27.0.tgz", - "integrity": "sha512-CNOvmXsVi+IvT7z1d+6X7FveVkgEQwTNgipjQCHTIbF9KSMfZR7tUsJC+NpELrm10ALdOMauah84ybs9rw1cKQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-node-http": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.27.0.tgz", - "integrity": "sha512-Nx9EdLYZDsaYFTthqmc0XcVvsx6jqeEX8fNiYOB5i2HboQwl8pJPj1jFhGqoGd0KG7KFR+sdPO5/e0EDDAru2Q==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", - "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", - "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "regexpu-core": "^6.2.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", - "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", - "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", - "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", - "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", - "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", - "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", - "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", - "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", - "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", - "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", - "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", - "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", - "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", - "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", - "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", - "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", - "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", - "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", - "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", - "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", - "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", - "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", - "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", - "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", - "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", - "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", - "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.3", - "@babel/plugin-transform-parameters": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", - "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", - "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", - "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", - "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", - "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", - "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", - "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", - "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", - "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", - "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", - "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", - "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", - "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", - "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", - "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", - "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", - "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", - "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz", - "integrity": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.27.1", - "@babel/plugin-transform-async-to-generator": "^7.27.1", - "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.27.1", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.27.1", - "@babel/plugin-transform-classes": "^7.27.1", - "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.1", - "@babel/plugin-transform-dotall-regex": "^7.27.1", - "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-exponentiation-operator": "^7.27.1", - "@babel/plugin-transform-export-namespace-from": "^7.27.1", - "@babel/plugin-transform-for-of": "^7.27.1", - "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", - "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", - "@babel/plugin-transform-member-expression-literals": "^7.27.1", - "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.27.1", - "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.27.2", - "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1", - "@babel/plugin-transform-parameters": "^7.27.1", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", - "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.27.1", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", - "@babel/plugin-transform-reserved-words": "^7.27.1", - "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", - "@babel/plugin-transform-sticky-regex": "^7.27.1", - "@babel/plugin-transform-template-literals": "^7.27.1", - "@babel/plugin-transform-typeof-symbol": "^7.27.1", - "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", - "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.40.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", - "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-transform-react-display-name": "^7.27.1", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/plugin-transform-react-jsx-development": "^7.27.1", - "@babel/plugin-transform-react-pure-annotations": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", - "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.6.tgz", - "integrity": "sha512-vDVrlmRAY8z9Ul/HxT+8ceAru95LQgkSKiXkSYZvqtbkPSfhZJgpRp45Cldbh1GJ1kxzQkI70AqyrTI58KpaWQ==", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.30.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@csstools/cascade-layer-name-parser": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", - "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", - "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", - "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", - "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^5.0.2", - "@csstools/css-calc": "^2.1.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", - "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", - "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", - "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", - "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.10.tgz", - "integrity": "sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.10.tgz", - "integrity": "sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.0.tgz", - "integrity": "sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.6.tgz", - "integrity": "sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", - "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", - "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.10.tgz", - "integrity": "sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.10.tgz", - "integrity": "sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.10.tgz", - "integrity": "sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.2.tgz", - "integrity": "sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-initial": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", - "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", - "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.9.tgz", - "integrity": "sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-float-and-clear": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", - "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-overflow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", - "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-overscroll-behavior": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", - "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-resize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", - "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", - "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", - "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", - "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", - "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", - "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.10.tgz", - "integrity": "sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.1.0.tgz", - "integrity": "sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-random-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", - "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.10.tgz", - "integrity": "sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-scope-pseudo-class": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", - "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", - "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", - "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz", - "integrity": "sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/color-helpers": "^5.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", - "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", - "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/utilities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", - "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docsearch/css": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", - "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", - "license": "MIT" - }, - "node_modules/@docsearch/react": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", - "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-core": "1.17.9", - "@algolia/autocomplete-preset-algolia": "1.17.9", - "@docsearch/css": "3.9.0", - "algoliasearch": "^5.14.2" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 20.0.0", - "react": ">= 16.8.0 < 20.0.0", - "react-dom": ">= 16.8.0 < 20.0.0", - "search-insights": ">= 1 < 3" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "search-insights": { - "optional": true - } - } - }, - "node_modules/@docusaurus/babel": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.8.1.tgz", - "integrity": "sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.25.9", - "@babel/preset-env": "^7.25.9", - "@babel/preset-react": "^7.25.9", - "@babel/preset-typescript": "^7.25.9", - "@babel/runtime": "^7.25.9", - "@babel/runtime-corejs3": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "babel-plugin-dynamic-import-node": "^2.3.3", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/bundler": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.8.1.tgz", - "integrity": "sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.8.1", - "@docusaurus/cssnano-preset": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "babel-loader": "^9.2.1", - "clean-css": "^5.3.3", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.11.0", - "css-minimizer-webpack-plugin": "^5.0.1", - "cssnano": "^6.1.2", - "file-loader": "^6.2.0", - "html-minifier-terser": "^7.2.0", - "mini-css-extract-plugin": "^2.9.2", - "null-loader": "^4.0.1", - "postcss": "^8.5.4", - "postcss-loader": "^7.3.4", - "postcss-preset-env": "^10.2.1", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "webpack": "^5.95.0", - "webpackbar": "^6.0.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/faster": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/faster": { - "optional": true - } - } - }, - "node_modules/@docusaurus/core": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.8.1.tgz", - "integrity": "sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==", - "license": "MIT", - "dependencies": { - "@docusaurus/babel": "3.8.1", - "@docusaurus/bundler": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "core-js": "^3.31.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "eval": "^0.1.8", - "execa": "5.1.1", - "fs-extra": "^11.1.1", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.6.0", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "open": "^8.4.0", - "p-map": "^4.0.0", - "prompts": "^2.4.2", - "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.6", - "tinypool": "^1.0.2", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "webpack": "^5.95.0", - "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-server": "^4.15.2", - "webpack-merge": "^6.0.1" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@mdx-js/react": "^3.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz", - "integrity": "sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==", - "license": "MIT", - "dependencies": { - "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.5.4", - "postcss-sort-media-queries": "^5.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/logger": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.8.1.tgz", - "integrity": "sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz", - "integrity": "sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^2.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/module-type-aliases": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz", - "integrity": "sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==", - "license": "MIT", - "dependencies": { - "@docusaurus/types": "3.8.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz", - "integrity": "sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "cheerio": "1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "schema-dts": "^1.1.2", - "srcset": "^4.0.0", - "tslib": "^2.6.0", - "unist-util-visit": "^5.0.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz", - "integrity": "sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "schema-dts": "^1.1.2", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz", - "integrity": "sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-css-cascade-layers": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz", - "integrity": "sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz", - "integrity": "sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "fs-extra": "^11.1.1", - "react-json-view-lite": "^2.3.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz", - "integrity": "sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz", - "integrity": "sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "@types/gtag.js": "^0.0.12", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz", - "integrity": "sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz", - "integrity": "sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "fs-extra": "^11.1.1", - "sitemap": "^7.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-svgr": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz", - "integrity": "sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "@svgr/core": "8.1.0", - "@svgr/webpack": "^8.1.0", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz", - "integrity": "sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/plugin-content-blog": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/plugin-content-pages": "3.8.1", - "@docusaurus/plugin-css-cascade-layers": "3.8.1", - "@docusaurus/plugin-debug": "3.8.1", - "@docusaurus/plugin-google-analytics": "3.8.1", - "@docusaurus/plugin-google-gtag": "3.8.1", - "@docusaurus/plugin-google-tag-manager": "3.8.1", - "@docusaurus/plugin-sitemap": "3.8.1", - "@docusaurus/plugin-svgr": "3.8.1", - "@docusaurus/theme-classic": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-search-algolia": "3.8.1", - "@docusaurus/types": "3.8.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz", - "integrity": "sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/plugin-content-blog": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/plugin-content-pages": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-translations": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "copy-text-to-clipboard": "^3.2.0", - "infima": "0.2.0-alpha.45", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.5.4", - "prism-react-renderer": "^2.3.0", - "prismjs": "^1.29.0", - "react-router-dom": "^5.3.4", - "rtlcss": "^4.1.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/theme-common": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.8.1.tgz", - "integrity": "sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==", - "license": "MIT", - "dependencies": { - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^2.0.0", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^2.3.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz", - "integrity": "sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==", - "license": "MIT", - "dependencies": { - "@docsearch/react": "^3.9.0", - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-translations": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "algoliasearch": "^5.17.1", - "algoliasearch-helper": "^3.22.6", - "clsx": "^2.0.0", - "eta": "^2.2.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz", - "integrity": "sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==", - "license": "MIT", - "dependencies": { - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/types": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.8.1.tgz", - "integrity": "sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==", - "license": "MIT", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.95.0", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/types/node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docusaurus/utils": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.8.1.tgz", - "integrity": "sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "escape-string-regexp": "^4.0.0", - "execa": "5.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "p-queue": "^6.6.2", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/utils-common": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.8.1.tgz", - "integrity": "sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==", - "license": "MIT", - "dependencies": { - "@docusaurus/types": "3.8.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz", - "integrity": "sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "fs-extra": "^11.2.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", - "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", - "license": "MIT", - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "license": "MIT", - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "license": "MIT", - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "license": "ISC" - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", - "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", - "license": "MIT", - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.29", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", - "license": "MIT" - }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "license": "BSD-3-Clause" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "license": "MIT" - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@slorber/remark-comment": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", - "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.1.0", - "micromark-util-symbol": "^1.0.1" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", - "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", - "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/gtag.js": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", - "license": "MIT" - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "license": "MIT" - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.16", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", - "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "24.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.1.tgz", - "integrity": "sha512-MX4Zioh39chHlDJbKmEgydJDS3tspMP/lnQC67G3SWsTnb9NeYVWOjkxpOSy4oMfPs4StcWHwBrvUb4ybfnuaw==", - "license": "MIT", - "dependencies": { - "undici-types": "~7.8.0" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prismjs": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", - "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "19.1.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", - "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-config": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", - "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "^5.1.0" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" - }, - "node_modules/@types/sax": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/algoliasearch": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.27.0.tgz", - "integrity": "sha512-2PvAgvxxJzA3+dB+ERfS2JPdvUsxNf89Cc2GF5iCcFupTULOwmbfinvqrC4Qj9nHJJDNf494NqEN/1f9177ZTQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-abtesting": "5.27.0", - "@algolia/client-analytics": "5.27.0", - "@algolia/client-common": "5.27.0", - "@algolia/client-insights": "5.27.0", - "@algolia/client-personalization": "5.27.0", - "@algolia/client-query-suggestions": "5.27.0", - "@algolia/client-search": "5.27.0", - "@algolia/ingestion": "1.27.0", - "@algolia/monitoring": "1.27.0", - "@algolia/recommend": "5.27.0", - "@algolia/requester-browser-xhr": "5.27.0", - "@algolia/requester-fetch": "5.27.0", - "@algolia/requester-node-http": "5.27.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/algoliasearch-helper": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.25.0.tgz", - "integrity": "sha512-vQoK43U6HXA9/euCqLjvyNdM4G2Fiu/VFp4ae0Gau9sZeIKBPvUPnXfLYAe65Bg7PFuw03coeu5K6lTPSXRObw==", - "license": "MIT", - "dependencies": { - "@algolia/events": "^4.0.1" - }, - "peerDependencies": { - "algoliasearch": ">= 3.1 < 6" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "license": "ISC", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/astring": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", - "license": "MIT", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/babel-loader": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", - "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", - "license": "MIT", - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", - "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.4", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", - "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.4" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "license": "MIT" - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7numerixpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/boxen": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", - "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^6.2.0", - "chalk": "^4.1.2", - "cli-boxes": "^3.0.0", - "string-width": "^5.0.1", - "type-fest": "^2.5.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001723", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001723.tgz", - "integrity": "sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", - "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/collapse-white-space": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" - }, - "node_modules/combine-promises": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", - "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "license": "ISC" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compressible/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", - "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7numerixpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/config-chain/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", - "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "license": "MIT", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz", - "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", - "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.25.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.43.0.tgz", - "integrity": "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/css-blank-pseudo": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", - "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", - "license": "ISC", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", - "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "cssnano": "^6.0.1", - "jest-worker": "^29.4.3", - "postcss": "^8.4.24", - "schema-utils": "^4.0.1", - "serialize-javascript": "^6.0.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", - "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssdb": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.3.0.tgz", - "integrity": "sha512-c7bmItIg38DgGjSwDPZOYF/2o0QU/sSgkWOMyl8votOfgFuyiFKWPesmCGEsrGLxEA9uL540cp8LdaGEjUGsZQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ], - "license": "MIT-0" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", - "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^6.1.2", - "lilconfig": "^3.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-advanced": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", - "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", - "license": "MIT", - "dependencies": { - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.0", - "cssnano-preset-default": "^6.1.2", - "postcss-discard-unused": "^6.0.5", - "postcss-merge-idents": "^6.0.3", - "postcss-reduce-idents": "^6.0.3", - "postcss-zindex": "^6.0.2" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-default": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.5", - "postcss-merge-rules": "^6.1.1", - "postcss-minify-font-values": "^6.1.0", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.4", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "license": "CC0-1.0" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", - "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" - }, - "node_modules/detect-port": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", - "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.167", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz", - "integrity": "sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==", - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/emojilib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", - "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/emoticon": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", - "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esast-util-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", - "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esast-util-from-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", - "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "acorn": "^8.0.0", - "esast-util-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-build-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", - "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", - "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-value-to-estree": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz", - "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eta": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", - "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "url": "https://github.com/eta-dev/eta?sponsor=1" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eval": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", - "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", - "dependencies": { - "@types/node": "*", - "require-like": ">= 0.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7numerixpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, - "node_modules/express/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", - "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", - "license": "MIT", - "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "license": "MIT", - "dependencies": { - "xml-js": "^1.6.11" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/file-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/file-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7numerixpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "license": "MIT", - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "license": "MIT", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "license": "ISC" - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/github-slugger": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", - "license": "ISC" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" - }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "license": "MIT", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", - "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^9.0.0", - "property-information": "^7.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", - "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-from-parse5": "^8.0.0", - "hast-util-to-parse5": "^8.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "parse5": "^7.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", - "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-attach-comments": "^3.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", - "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", - "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", - "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", - "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "~5.3.2", - "commander": "^10.0.0", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", - "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/html-webpack-plugin/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", - "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", - "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", - "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", - "license": "MIT", - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/infima": { - "version": "0.2.0-alpha.45", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", - "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "license": "MIT", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "license": "MIT", - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "license": "MIT", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mdast-util-directive": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", - "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mdast-util-frontmatter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", - "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "escape-string-regexp": "^5.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "license": "Unlicense", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-directive": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", - "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "parse-entities": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-frontmatter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", - "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", - "license": "MIT", - "dependencies": { - "fault": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", - "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", - "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-md": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", - "license": "MIT", - "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^3.0.0", - "micromark-extension-mdx-jsx": "^3.0.0", - "micromark-extension-mdx-md": "^2.0.0", - "micromark-extension-mdxjs-esm": "^3.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", - "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-space/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", - "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark/node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark/node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark/node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "license": "MIT", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-emoji": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", - "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "char-regex": "^1.0.2", - "emojilib": "^2.4.0", - "skin-tone": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.2.tgz", - "integrity": "sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", - "license": "MIT" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/null-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", - "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/null-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/null-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/null-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/null-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "license": "MIT", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", - "license": "MIT", - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", - "license": "ISC" - }, - "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", - "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", - "license": "MIT", - "dependencies": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "license": "(WTFPL OR MIT)" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", - "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", - "license": "MIT", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz", - "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", - "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.10.tgz", - "integrity": "sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", - "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", - "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-custom-media": { - "version": "11.0.6", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", - "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.5", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-properties": { - "version": "14.0.6", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", - "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.5", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", - "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.5", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", - "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-unused": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", - "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.2.tgz", - "integrity": "sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", - "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-focus-within": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", - "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", - "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-image-set-function": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", - "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxnumerixZ5Tv7eiDB9U87znA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-lab-function": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.10.tgz", - "integrity": "sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.10", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-loader": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", - "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.3.5", - "jiti": "^1.20.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", - "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-merge-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", - "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-rules": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "license": "MIT", - "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nesting": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", - "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-resolve-nested": "^3.1.0", - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", - "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", - "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", - "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", - "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-preset-env": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.3.tgz", - "integrity": "sha512-zlQN1yYmA7lFeM1wzQI14z97mKoM8qGng+198w1+h6sCud/XxOjcKtApY9jWr7pXNS3yHDEafPlClSsWnkY8ow==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.10", - "@csstools/postcss-color-mix-function": "^3.0.10", - "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.0", - "@csstools/postcss-content-alt-text": "^2.0.6", - "@csstools/postcss-exponential-functions": "^2.0.9", - "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.10", - "@csstools/postcss-gradients-interpolation-method": "^5.0.10", - "@csstools/postcss-hwb-function": "^4.0.10", - "@csstools/postcss-ic-unit": "^4.0.2", - "@csstools/postcss-initial": "^2.0.1", - "@csstools/postcss-is-pseudo-class": "^5.0.3", - "@csstools/postcss-light-dark-function": "^2.0.9", - "@csstools/postcss-logical-float-and-clear": "^3.0.0", - "@csstools/postcss-logical-overflow": "^2.0.0", - "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", - "@csstools/postcss-logical-resize": "^3.0.0", - "@csstools/postcss-logical-viewport-units": "^3.0.4", - "@csstools/postcss-media-minmax": "^2.0.9", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", - "@csstools/postcss-nested-calc": "^4.0.0", - "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.10", - "@csstools/postcss-progressive-custom-properties": "^4.1.0", - "@csstools/postcss-random-function": "^2.0.1", - "@csstools/postcss-relative-color-syntax": "^3.0.10", - "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.4", - "@csstools/postcss-stepped-value-functions": "^4.0.9", - "@csstools/postcss-text-decoration-shorthand": "^4.0.2", - "@csstools/postcss-trigonometric-functions": "^4.0.9", - "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.21", - "browserslist": "^4.25.0", - "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.2", - "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.3.0", - "postcss-attribute-case-insensitive": "^7.0.1", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.10", - "postcss-color-hex-alpha": "^10.0.0", - "postcss-color-rebeccapurple": "^10.0.0", - "postcss-custom-media": "^11.0.6", - "postcss-custom-properties": "^14.0.6", - "postcss-custom-selectors": "^8.0.5", - "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.2", - "postcss-focus-visible": "^10.0.1", - "postcss-focus-within": "^9.0.1", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^6.0.0", - "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.10", - "postcss-logical": "^8.1.0", - "postcss-nesting": "^13.0.2", - "postcss-opacity-percentage": "^3.0.0", - "postcss-overflow-shorthand": "^6.0.0", - "postcss-page-break": "^3.0.4", - "postcss-place": "^10.0.0", - "postcss-pseudo-class-any-link": "^10.0.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^8.0.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", - "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", - "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", - "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sort-media-queries": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", - "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", - "license": "MIT", - "dependencies": { - "sort-css-media-queries": "2.2.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.23" - } - }, - "node_modules/postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, - "node_modules/postcss-zindex": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", - "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/prism-react-renderer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", - "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", - "license": "MIT", - "dependencies": { - "@types/prismjs": "^1.26.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, - "node_modules/prismjs": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", - "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", - "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "license": "ISC" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "license": "MIT", - "dependencies": { - "escape-goat": "^4.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.0" - } - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT" - }, - "node_modules/react-helmet-async": { - "name": "@slorber/react-helmet-async", - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.2.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-json-view-lite": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-2.4.1.tgz", - "integrity": "sha512-fwFYknRIBxjbFm0kBDrzgBy1xa5tDg2LyXXBepC5f1b+MY3BUClMCsvanMPn089JbV1Eg3nZcrp0VCuH43aXnA==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", - "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", - "license": "MIT", - "dependencies": { - "@types/react": "*" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.3" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "react-loadable": "*", - "webpack": ">=4.41.1 || 5.x" - } - }, - "node_modules/react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2" - }, - "peerDependencies": { - "react": ">=15", - "react-router": ">=5" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recma-build-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", - "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", - "license": "MIT", - "dependencies": { - "acorn-jsx": "^5.0.0", - "estree-util-to-js": "^2.0.0", - "recma-parse": "^1.0.0", - "recma-stringify": "^1.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", - "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "esast-util-from-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", - "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-to-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", - "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", - "license": "MIT", - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "license": "MIT", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-recma": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", - "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "hast-util-to-estree": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark-directive": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", - "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-directive": "^3.0.0", - "micromark-extension-directive": "^3.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-emoji": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", - "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.2", - "emoticon": "^4.0.1", - "mdast-util-find-and-replace": "^3.0.1", - "node-emoji": "^2.1.0", - "unified": "^11.0.4" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/remark-frontmatter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", - "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-frontmatter": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", - "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", - "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", - "engines": { - "node": "*" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", - "license": "MIT" - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rtlcss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", - "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0", - "postcss": "^8.4.21", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "rtlcss": "bin/rtlcss.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" - }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, - "node_modules/schema-dts": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.5.tgz", - "integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==", - "license": "Apache-2.0" - }, - "node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/search-insights": { - "version": "2.17.3", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", - "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", - "license": "MIT", - "peer": true - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "license": "MIT", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7numerixpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-handler": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", - "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", - "license": "MIT", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "mime-types": "2.1.18", - "minimatch": "3.1.2", - "path-is-inside": "1.0.2", - "path-to-regexp": "3.3.0", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", - "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", - "license": "MIT" - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7numerixpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", - "license": "MIT", - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/sitemap": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", - "license": "MIT", - "dependencies": { - "@types/node": "^17.0.5", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "bin": { - "sitemap": "dist/cli.js" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=5.6.0" - } - }, - "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", - "license": "MIT" - }, - "node_modules/skin-tone": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", - "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", - "license": "MIT", - "dependencies": { - "unicode-emoji-modifier-base": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sort-css-media-queries": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", - "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", - "license": "MIT", - "engines": { - "node": ">= 6.3.0" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/srcset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", - "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", - "license": "MIT" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-js": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", - "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", - "license": "MIT", - "dependencies": { - "style-to-object": "1.0.8" - } - }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } - }, - "node_modules/stylehacks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "license": "MIT" - }, - "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/tapable": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", - "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.42.0.tgz", - "integrity": "sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.14.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "license": "MIT" - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "license": "MIT" - }, - "node_modules/tinypool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz", - "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==", - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-emoji-modifier-base": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", - "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", - "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/url-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/url-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/url-loader/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "license": "MIT" - }, - "node_modules/utility-types": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/watchpack": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", - "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webpack": { - "version": "5.99.9", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", - "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", - "license": "MIT", - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.2", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", - "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", - "license": "MIT", - "dependencies": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "debounce": "^1.2.1", - "escape-string-regexp": "^4.0.0", - "gzip-size": "^6.0.0", - "html-escaper": "^2.0.2", - "opener": "^1.5.2", - "picocolors": "^1.0.0", - "sirv": "^2.0.3", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.2.tgz", - "integrity": "sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpackbar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", - "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "consola": "^3.2.3", - "figures": "^3.2.0", - "markdown-table": "^2.0.0", - "pretty-time": "^1.1.0", - "std-env": "^3.7.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "webpack": "3 || 4 || 5" - } - }, - "node_modules/webpackbar/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/webpackbar/node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "license": "MIT", - "dependencies": { - "repeat-string": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webpackbar/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpackbar/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "license": "MIT", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "license": "MIT", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yocto-queue": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", - "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/flashring/.cursor/rules/global/golang/code-quality.mdc b/flashring/.cursor/rules/global/golang/code-quality.mdc new file mode 100644 index 00000000..9a48e63e --- /dev/null +++ b/flashring/.cursor/rules/global/golang/code-quality.mdc @@ -0,0 +1,17 @@ +--- +description: "Guidelines for maintaining code quality, clarity, and consistency across imports, function usage, and documentation" +globs: +alwaysApply: false +--- + +### Import statements quality +1. Do not change the import order of existing import files and packages, just add the new ones +2. Avoid wild card imports + +### Functions usage +1. Do not change the private functions to public unless we want other packages to use it +2. If the same package is using the function then keep it private + +### Code comments and documentation +1. Add comments only when necessary, do not add comments when the code itself gives the understanding +2. Add comments for architectural decision diff --git a/flashring/.cursor/rules/global/golang/compliance.mdc b/flashring/.cursor/rules/global/golang/compliance.mdc new file mode 100644 index 00000000..2b802036 --- /dev/null +++ b/flashring/.cursor/rules/global/golang/compliance.mdc @@ -0,0 +1,36 @@ +--- +description: "Provide the list of rules which are obeyed in every response" +globs: +alwaysApply: true +--- + +# Rule Compliance Tracking + +## Response Format Requirement +When responding to user queries about code patterns, architecture, or implementation examples: + +1. **Always List Obeyed Rules**: At the end of your response, include a section titled "**Rules Followed:**" that lists the specific rules from the codebase that are being obeyed or demonstrated in your response. + +2. **Rule Identification**: Identify rules from the following files: + - `.cursor/rules/unit-testing.mdc` + - `.cursor/rules/requirement-planning.mdc` + - `.cursor/rules/code-quality.mdc` + - `.cursor/rules/compliance.mdc` + +3. **Example Format**: + ``` + **Rules Followed:** + - Dependency Injection Pattern + - Configuration Management + - Interface Design + ``` + +4. **Context Awareness**: Only list rules that are actually relevant to the specific response or examples provided. + +5. **Rule Verification**: When analyzing code examples, verify which rule categories are being followed and explicitly mention the rule headings. + +## Implementation Guidelines +- Scan the codebase for examples that demonstrate rule compliance +- Provide concrete code examples when possible +- Explain how the examples follow the specific rule categories +- Use the rule headings/categories from the source files when listing them diff --git a/flashring/.cursor/rules/global/golang/data-interface-concurrency-errors.mdc b/flashring/.cursor/rules/global/golang/data-interface-concurrency-errors.mdc new file mode 100644 index 00000000..f359b79e --- /dev/null +++ b/flashring/.cursor/rules/global/golang/data-interface-concurrency-errors.mdc @@ -0,0 +1,61 @@ +--- +description: These rules cover data shapes, allocation, interface design, and safe concurrency/error handling—areas where AI can subtly violate idioms or introduce leaks and races. +alwaysApply: false +globs: *.go +--- + +### Effective Go Rules: Data, Allocation, Interfaces, Concurrency, Errors + +These rules cover data shapes, allocation, interface design, and safe concurrency/error handling—areas where AI can subtly violate idioms or introduce leaks and races. + +## Arrays, Slices, Maps +- Reassign the result of `append`; capacity may change. +- Preallocate capacity when known; use `copy` for duplication. +- If copying a slice or map, the pointers nested in these will not be copied. +- Maps: missing keys yield zero values; use comma-ok to test presence. + +Example: +```go +v, ok := m[key] +if !ok { /* handle missing */ } +``` + +## Variadics & Append +- Use `...T` for flexible APIs; forward with `f(v...)`. +- Concatenate slices with `append(dst, src...)`. + + +## Methods: Pointer vs Value +- Pointer receivers for mutation/big copies. + +## Interfaces +- Define small, behavior-driven interfaces near use sites. +- Constructors should return the narrowest interface needed. +- Convert types to reuse method sets (e.g., `sort.IntSlice(s).Sort()`). + + +## Concurrency Basics +- Start goroutines only when beneficial; ensure they can terminate. +- Use channels for synchronization/communication; avoid shared memory without coordination. + +Use Worker pool at appropriate places: +```go +jobs := make(chan Job) +for i := 0; i < N; i++ { go func() { for j := range jobs { handle(j) } }() } +``` + +Channel ownership: +- Close channels only from the sender/owner. + +## Context & Cancellation +- Accept `context.Context` and honor `Done()` for long-lived operations. +- Avoid `time.Sleep` polling; use timers/tickers with `select`. + +## Panic, Recover, Errors +- Prefer `error` returns; reserve `panic` for unrecoverable programmer errors. +- At boundaries, `defer` + `recover` to convert internal panics to errors; type-assert expected panic values. +- Structure error strings without caps/punctuation; prefix with operation or package when helpful. +- Avoid double-reporting (log and return); choose a single owner. +- Use rich error types (ex: `*os.PathError`) and `%w` wrapping. +- Always try to return a meaningfull error code and message, client should be able to find out the failure reason without exposing internal details. +- Either log or return - not both. If you're returning an API response, then log it as well. diff --git a/flashring/.cursor/rules/global/golang/formatting-control.mdc b/flashring/.cursor/rules/global/golang/formatting-control.mdc new file mode 100644 index 00000000..e9f6d7ec --- /dev/null +++ b/flashring/.cursor/rules/global/golang/formatting-control.mdc @@ -0,0 +1,34 @@ +--- +description: These rules focus on the places where AI often drifts from idiomatic Go,, naming that avoids stutter, brace placement, early-returns, and minimalistic control flow. Follow these to produce idiomatic, readable Go. +alwaysApply: false +globs: *.go +--- + +### Effective Go Rules: Formatting, Comments, Naming, Semicolons, Control Flow + +These rules focus on the places where AI often drifts from idiomatic Go: formatting handled by tools, naming that avoids stutter, brace placement, early-returns, and minimalistic control flow. Follow these to produce idiomatic, readable Go. + + +## Naming +- Do not prefix getters with `Get`; prefer `Owner()` over `GetOwner()`; setters as `SetOwner(x)`. + +## Control Flow Essentials +- Prefer early returns for errors; let the success path flow downward. +- Omit `else` when the `if` body ends in `return/break/continue`. +- Use `if`/`switch` init statements to scope locals. +- Prefer `switch` over long `if-else` chains; avoid implicit fallthrough. + +## `defer` and Resources +- Place `defer` immediately after acquiring a resource; args evaluated at `defer` time. +- Deferred calls run LIFO. Avoid deferring inside hot loops. + +## Printing and Diagnostics +- Prefer `%v` for values, `%+v` to include field names, `%#v` for Go syntax, `%T` for type. + +## Shadowing and Short Decls +- Reuse `err` with `:=` when at least one new variable exists; avoid accidental shadowing across scopes. +- Declare variables at first use; avoid predeclaring far from usage. + + +## Extra +- Prefer `const` for stable magic numbers; otherwise localize and comment literals. diff --git a/flashring/.cursor/rules/global/golang/requirement-planning.mdc b/flashring/.cursor/rules/global/golang/requirement-planning.mdc new file mode 100644 index 00000000..868ffa59 --- /dev/null +++ b/flashring/.cursor/rules/global/golang/requirement-planning.mdc @@ -0,0 +1,12 @@ +--- +description: "Promotes thorough requirement analysis, careful planning, and implementation of robust, general-purpose solutions." +alwaysApply: false +--- +### Requirement Understanding + +Before creating a plan you MUST ask questions from the user to get clarity on the problem statement + +1. Break down a problem statement into smaller problem statements +2. Please write a high quality, general purpose solution. Implement a solution that works correctly for all valid inputs, not just the test cases. Do not hard-code values or create solutions that only work for specific test inputs. Instead, implement the actual logic that solves the problem generally. +3. Focus on understanding the problem requirements and implementing the correct algorithm. Tests are there to verify correctness, not to define the solution. Provide a principled implementation that follows best practices and software design principles. +4. If the task is unreasonable or infeasible, or if any of the tests are incorrect, please tell me. The solution should be robust, maintainable, and extendable. diff --git a/flashring/.cursor/rules/global/golang/unit-testing.mdc b/flashring/.cursor/rules/global/golang/unit-testing.mdc new file mode 100644 index 00000000..c159d66f --- /dev/null +++ b/flashring/.cursor/rules/global/golang/unit-testing.mdc @@ -0,0 +1,108 @@ +--- +description: "Go testing patterns including test structure, mocking, test data, assertions and more" +globs: *.go +alwaysApply: false +--- + +# Go Testing Patterns + +## Instructions + +### Test Plan Creation + +When writing unit tests, get clarity on the system under test and come up with a list of what all cases can be possible within that system. Generate the unit test for all those cases + +### Coverage Guidelines +- MUST run `go test -cover` to measure coverage, instead of calculating yourself and aim for 80%+ code coverage for critical business logic +- Focus on testing behavior, not just coverage percentage +- Test error paths and edge cases + +## Test Structure and Organization + +### Test File Organization +- Group related tests using subtests with `t.Run()` +- If there is a single test, then don't use `t.Run()` +- Generate Go tests using testify's suite package for structure wherever applicable + +### Test Naming Conventions +Use descriptive test names that clearly indicate the scenario: + +```go +// ✅ Good - Clear scenario description +func TestConfigService_GetConfig_ReturnsConfigWhenFound(t *testing.T) {} +func TestConfigService_GetConfig_ReturnsErrorWhenNotFound(t *testing.T) {} +func TestConfigService_ValidateConfig_ReturnsErrorOnInvalidData(t *testing.T) {} + +// ❌ Avoid - Vague test names +func TestGetConfig(t *testing.T) {} +func TestValidation(t *testing.T) {} +``` + +## Mocking and Dependencies + +### Interface-Based Mocking +Use interfaces for dependencies to enable easy mocking + +### Mock Setup Patterns +mockRepo := mocks.NewMockRepository(ctrl) +mockRepo.EXPECT(). + GetConfig("test-id"). + Return(&Config{ID: "test-id"}, nil). + Times(1) + +## Test Data and Fixtures + +### Test Data Creation +Create helper functions for building test data where the test data is common + +### Table-Driven Tests +Use table-driven tests for testing multiple scenarios + +## Assertion Patterns + +### Using testify/assert +Prefer testify/assert for better error messages + +```go +// ✅ Good - Clear assertions with testify +assert.NoError(t, err) +assert.Equal(t, expectedValue, actualValue) +assert.Contains(t, slice, element) +assert.Len(t, collection, expectedLength) + +// ❌ Avoid - Basic Go testing with poor error messages +if err != nil { + t.Errorf("expected no error, got %v", err) +} +``` + +### Error Testing +```go +// Testing specific error types +assert.ErrorIs(t, err, ErrConfigNotFound) +assert.ErrorAs(t, err, &validationErr) +assert.NoError(t, err) + +// Testing error messages +assert.EqualError(t, err, "expected error message") +assert.Contains(t, err.Error(), "partial error message") +``` + +## HTTP Handler Testing + +### Testing HTTP Handlers +Use `httptest` for testing HTTP handlers + +## Test Quality + +### Test Organization +- Use setup/teardown functions for complex test scenarios +- Keep tests independent - one test should not depend on another +- Use parallel tests where appropriate: `t.Parallel()` + +### Common Pitfalls to Avoid +1. **Testing Implementation Details**: Focus on behavior, not internal implementation +2. **Ignoring Error Cases**: Always test both success and error scenarios +3. **Flaky Tests**: Avoid time-dependent tests, use deterministic test data +4. **Over-Mocking**: Don't mock everything, test real integrations where valuable +5. **Poor Test Data**: Use realistic test data that reflects production scenarios diff --git a/flashring/.cursor/rules/global/security-golang/secure-golang-rules.mdc b/flashring/.cursor/rules/global/security-golang/secure-golang-rules.mdc new file mode 100644 index 00000000..49cffe70 --- /dev/null +++ b/flashring/.cursor/rules/global/security-golang/secure-golang-rules.mdc @@ -0,0 +1,211 @@ +--- +description: Rules to ensure secure coding in Golang +globs: **/*.go +alwaysApply: true +--- +These rules apply to all Go code in the repository and aim to prevent common security risks through disciplined input handling, safe APIs, and secure defaults. + +All violations must include a clear explanation of which rule was triggered and why, so developers can fix issues quickly.\ +Generated code must not violate these rules. If a rule is violated, add a code comment that explains the problem and proposes a correction. + +## 1. Decode Untrusted Data Safely + +- Do not deserialize untrusted data with unsafe or permissive decoders. Prefer strict JSON or protobuf with size limits. Reject unknown fields. Avoid `encoding/gob` for untrusted input. Use strict YAML decoding only if required. +- + ```go + // Accepts arbitrarily large input and unknown fields + var in any + _ = json.NewDecoder(r.Body).Decode(&in) + ``` +- + ```go + type CreateUser struct { + Name string `json:"name"` + Email string `json:"email"` + } + + dec := json.NewDecoder(http.MaxBytesReader(w, r.Body, 1<<20)) // 1 MB cap + dec.DisallowUnknownFields() + dec.UseNumber() + + var in CreateUser + if err := dec.Decode(&in); err != nil { /* handle */ } + ``` +- **YAML (only if needed):** + ```go + dec := yaml.NewDecoder(bytes.NewReader(b)) + dec.KnownFields(true) // yaml.v3 + if err := dec.Decode(&cfg); err != nil { /* handle */ } + ``` +- **Protobuf JSON:** + ```go + opts := protojson.UnmarshalOptions{DiscardUnknown: false} + if err := opts.Unmarshal(b, msg); err != nil { /* handle */ } + ``` + +## 2. Use Parameterized Queries for Database Access + +- Never format SQL or NoSQL queries with user input. Use placeholders and arguments. Use context with timeouts. +- + ```go + query := fmt.Sprintf("SELECT * FROM users WHERE name = '%s'", name) + rows, _ := db.Query(query) + ``` +- + ```go + ctx, cancel := context.WithTimeout(r.Context(), 3*time.Second) + defer cancel() + + row := db.QueryRowContext(ctx, "SELECT id FROM users WHERE name = $1", name) + ``` + +## 3. Prevent Command Injection + +- Do not pass untrusted input to shells. Use `exec.CommandContext` with fixed program and separate args. Validate inputs against allow lists. +- + ```go + exec.Command("sh", "-c", "ls "+userArg).Run() + ``` +- + ```go + // validatedArg must pass strict allow list or regex + cmd := exec.CommandContext(ctx, "ls", validatedArg) + cmd.Stdout = w + cmd.Stderr = w + _ = cmd.Run() + ``` + +## 4. Prevent Path Traversal Vulnerabilities + +- : Do not use untrusted input directly in filesystem APIs (os.Open, os.ReadFile, os.Create). + Always sanitize path input to remove traversal elements and enforce a strict allow-list for filenames. +- : If the filename doesn't need to be user-controlled, use a UUID or another randomly generated string instead. This is the most secure method. +- : + ```go + import "path/filepath" + + fileName := r.URL.Query().Get("filename") // Attacker can provide "../../etc/passwd" as a filename + path := filepath.Join("/var/data/", fileName) + data, err := os.ReadFile(path) + ``` +- (Never use user input directly. Sanitize it with filepath.Base and validate with an allow-list): + ```go + import ( + "path/filepath" + "regexp" + ) + + userInput := r.URL.Query().Get("filename") + + // 1. Sanitize the input to get only the final path component. + // removes and turns "../../etc/passwd" into "passwd". + filename := filepath.Base(userInput) + + // 2. Validate the sanitized filename against a strict allow-list. + isValid, _ := regexp.MatchString(`^[A-Za-z0-9_-]{1,200}\.png$`, filename) + + if !isValid { + return + } + ``` + +// 3. Now it's safe to join with the base directory. +safePath := filepath.Join("/var/data/", filename) + ``` + +## 5. Template Safety + +- Use `html/template` for HTML to get auto-escaping. Never use `text/template` for HTML. +- + ```go + t := template.Must(template.New("x").Parse("

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