{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","cards","card"]},"type":"markdown"},"seo":{"title":"Events - Real-Time Transaction Monitoring","projectTitle":"Vilna Docs","description":"Understand Vilna's event model that breaks blockchain transactions into granular canonical events for detailed monitoring and alerting.","siteUrl":"https://docs.vilna.io","keywords":["crypto asset management","blockchain monitoring","digital asset security","cryptocurrency API","wallet tracking","blockchain analytics","enterprise crypto","real-time blockchain","CAIP-19","BIP44"],"lang":"en-US","image":"https://cdn.vilna.io/docs/previews/guides.png","meta":[{"name":"og:type","content":"website"},{"name":"og:site_name","content":"Vilna Documentation"},{"name":"og:image:width","content":"1200"},{"name":"og:image:height","content":"630"},{"name":"twitter:card","content":"summary_large_image"}],"llmstxt":{"title":"Vilna API Documentation","description":"Vilna is a blockchain monitoring and wallet management platform. It provides a single unified REST API for tracking addresses, transactions, balances, and activity across top blockchains - Bitcoin, Ethereum, Solana, TRON, TON, Cosmos, and others. The API uses CAIP-2/CAIP-19 standards for cross-chain identification, HD wallet management (BIP-32/44) for address derivation, and RFC 7807 for error responses. Authentication is via API key in the X-Api-Key header.\n","excludeFiles":["legal/**/*.md","@l10n/**/*.md"],"sections":[{"title":"Overview","description":"What Vilna is, supported blockchains, and target audience","includeFiles":["overview.md"],"excludeFiles":[]},{"title":"Getting Started","description":"Quickstart guide and core API concepts","includeFiles":["guides/quickstart.md","guides/dashboard.md","guides/core-concepts.md","guides/authentication.md"],"excludeFiles":[]},{"title":"API Reference","description":"Platform API and Management API endpoint documentation","includeFiles":["apis/platform/index.md","apis/mgmt/index.md","apis/rpc/index.md","apis/platform/api.yaml","apis/mgmt/api.yaml"],"excludeFiles":[]},{"title":"Developer Guides","description":"Integration patterns, events, notifications, SDK, and error handling","includeFiles":["guides/events.md","guides/channels.md","guides/integration-patterns.md","guides/sdk.md","guides/mcp.md","guides/errors.md","guides/simulation.md","guides/invoices.md"],"excludeFiles":[]},{"title":"Business","description":"Value proposition, use cases, and onboarding","includeFiles":["business/index.md","business/use-cases.md"],"excludeFiles":[]},{"title":"Optional","description":"Additional reference material","includeFiles":["guides/blockchain-basics.md","guides/faq.md","apis/mgmt/guide.md","guides/widget.md","guides/storage-client.md","apis/platform/caip-standards.md","apis/mgmt/authorization.md"],"excludeFiles":[]}],"hide":false},"priority":0.7,"jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://docs.vilna.io/"},{"@type":"ListItem","position":2,"name":"Guides"},{"@type":"ListItem","position":3,"name":"Events"}]},{"@type":"TechArticle","headline":"Events - Real-Time Transaction Monitoring","description":"Understand Vilna's event model that breaks blockchain transactions into granular canonical events for detailed monitoring and alerting.","url":"https://docs.vilna.io/guides/events","datePublished":"2025-09-17","dateModified":"2026-05-17","proficiencyLevel":"Intermediate","dependencies":"Vilna API key, Webhook endpoint","image":"https://cdn.vilna.io/docs/previews/guides.png","author":{"@id":"https://vilna.io/#organization"},"publisher":{"@id":"https://vilna.io/#organization"}}]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"events--transaction-monitoring","__idx":0},"children":["Events & transaction monitoring"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a transaction occurs on a blockchain, it is rarely a single action. An EVM transaction might transfer ETH, pay a gas fee, trigger a token approval, and call a smart contract - all in one atomic operation. If your system only tracks \"money moved from A to B,\" you are missing most of what happened."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Vilna breaks every transaction into individual ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["canonical events"]}," - one event per meaningful action. This page explains the event model, what each event type means, how notifications work, and how to build on top of them. For real-world examples of event monitoring in action, see the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/business/use-cases"},"children":["use cases"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-are-events","__idx":1},"children":["What are events"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A blockchain transaction is a container. Inside it, multiple things happen: value moves, fees are paid, permissions are granted, contracts are called. Vilna parses each transaction and extracts every discrete action into a separate event object."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each event has:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kind"]}]}," - the type of action (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["utxo_transfer"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approval"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract_create"]},")"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sequence"]}]}," - a 0-based position within the transaction, so you know the order of operations"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}]}," - a payload specific to the event kind, containing addresses, amounts, and asset identifiers"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A simple ETH transfer produces two events: a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]}," and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]},". A DeFi swap might produce five or more: a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]}," to the router contract, multiple ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]}," events as tokens move through liquidity pools, and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]}," event for gas."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This granularity means your system can react to exactly what happened, not just approximate it."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"event-types","__idx":2},"children":["Event types"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Vilna normalizes all on-chain activity into canonical event types. Regardless of which blockchain a transaction occurs on, the events always follow the same structure."]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart LR\n    TX[Transaction] --> T[\"transfer<br/>assets moved\"]\n    TX --> UT[\"utxo_transfer<br/>UTXO inputs/outputs\"]\n    TX --> F[\"fee<br/>gas paid\"]\n    TX --> A[\"approval<br/>spend permission\"]\n    TX --> C[\"call<br/>contract invoked\"]\n    TX --> CC[\"contract_create<br/>new contract\"]\n","diagramHtml":"<svg id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 429.03125px;\" viewBox=\"0 0 429.03125 734\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .error-icon{fill:#552222;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .error-text{fill:#552222;stroke:#552222;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edge-thickness-normal{stroke-width:1px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edge-thickness-thick{stroke-width:3.5px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edge-pattern-solid{stroke-dasharray:0;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .marker{fill:#333333;stroke:#333333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .marker.cross{stroke:#333333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 p{margin:0;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .cluster-label text{fill:#333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .cluster-label span{color:#333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .cluster-label span p{background-color:transparent;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .label text,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 span{fill:#333;color:#333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node rect,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node circle,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node ellipse,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node polygon,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .rough-node .label text,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node .label text,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .image-shape .label,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .icon-shape .label{text-anchor:middle;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .rough-node .label,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node .label,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .image-shape .label,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .icon-shape .label{text-align:center;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node.clickable{cursor:pointer;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .arrowheadPath{fill:#333333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .flowchart-link{stroke:#333333;fill:none;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .cluster text{fill:#333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .cluster span{color:#333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 rect.text{fill:none;stroke-width:0;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .icon-shape,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .icon-shape p,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .icon-shape .label rect,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 .node .neo-node{stroke:#9370DB;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].node rect,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].cluster rect,#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M89.438,340L104.417,291.167C119.396,242.333,149.354,144.667,172.426,95.833C195.497,47,211.682,47,219.775,47L227.867,47\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-L_TX_T_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_T_0\" data-points=\"W3sieCI6ODkuNDM4MTgzNTkzNzUsInkiOjM0MH0seyJ4IjoxNzkuMzEyNSwieSI6NDd9LHsieCI6MjMxLjg2NzE4NzUsInkiOjQ3fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointEnd)\"></path><path d=\"M94.959,340L109.018,312.5C123.077,285,151.195,230,168.754,202.5C186.313,175,193.313,175,196.813,175L200.313,175\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-L_TX_UT_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_UT_0\" data-points=\"W3sieCI6OTQuOTU5NDcyNjU2MjUsInkiOjM0MH0seyJ4IjoxNzkuMzEyNSwieSI6MTc1fSx7IngiOjIwNC4zMTI1LCJ5IjoxNzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointEnd)\"></path><path d=\"M122.566,340L132.024,333.833C141.481,327.667,160.397,315.333,181.247,309.167C202.096,303,224.88,303,236.272,303L247.664,303\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-L_TX_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_F_0\" data-points=\"W3sieCI6MTIyLjU2NTkxNzk2ODc1LCJ5IjozNDB9LHsieCI6MTc5LjMxMjUsInkiOjMwM30seyJ4IjoyNTEuNjY0MDYyNSwieSI6MzAzfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointEnd)\"></path><path d=\"M122.566,394L132.024,400.167C141.481,406.333,160.397,418.667,175.312,424.833C190.227,431,201.141,431,206.598,431L212.055,431\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-L_TX_A_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_A_0\" data-points=\"W3sieCI6MTIyLjU2NTkxNzk2ODc1LCJ5IjozOTR9LHsieCI6MTc5LjMxMjUsInkiOjQzMX0seyJ4IjoyMTYuMDU0Njg3NSwieSI6NDMxfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointEnd)\"></path><path d=\"M94.959,394L109.018,421.5C123.077,449,151.195,504,171.506,531.5C191.818,559,204.323,559,210.576,559L216.828,559\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-L_TX_C_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_C_0\" data-points=\"W3sieCI6OTQuOTU5NDcyNjU2MjUsInkiOjM5NH0seyJ4IjoxNzkuMzEyNSwieSI6NTU5fSx7IngiOjIyMC44MjgxMjUsInkiOjU1OX1d\" data-look=\"classic\" marker-end=\"url(#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointEnd)\"></path><path d=\"M89.438,394L104.417,442.833C119.396,491.667,149.354,589.333,171.341,638.167C193.328,687,207.344,687,214.352,687L221.359,687\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-L_TX_CC_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_CC_0\" data-points=\"W3sieCI6ODkuNDM4MTgzNTkzNzUsInkiOjM5NH0seyJ4IjoxNzkuMzEyNSwieSI6Njg3fSx7IngiOjIyNS4zNTkzNzUsInkiOjY4N31d\" data-look=\"classic\" marker-end=\"url(#diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_T_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_UT_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_F_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_A_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_C_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_CC_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-flowchart-TX-0\" data-look=\"classic\" transform=\"translate(81.15625, 367)\"><rect class=\"basic label-container\" style=\"\" x=\"-73.15625\" y=\"-27\" width=\"146.3125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-43.15625, -12)\"><rect></rect><foreignObject width=\"86.3125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Transaction</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-flowchart-T-1\" data-look=\"classic\" transform=\"translate(312.671875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.8046875\" y=\"-39\" width=\"161.609375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.8046875, -24)\"><rect></rect><foreignObject width=\"101.609375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>transfer<br>assets moved</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-flowchart-UT-3\" data-look=\"classic\" transform=\"translate(312.671875, 175)\"><rect class=\"basic label-container\" style=\"\" x=\"-108.359375\" y=\"-39\" width=\"216.71875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-78.359375, -24)\"><rect></rect><foreignObject width=\"156.71875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>utxo_transfer<br>UTXO inputs/outputs</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-flowchart-F-5\" data-look=\"classic\" transform=\"translate(312.671875, 303)\"><rect class=\"basic label-container\" style=\"\" x=\"-61.0078125\" y=\"-39\" width=\"122.015625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-31.0078125, -24)\"><rect></rect><foreignObject width=\"62.015625\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>fee<br>gas paid</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-flowchart-A-7\" data-look=\"classic\" transform=\"translate(312.671875, 431)\"><rect class=\"basic label-container\" style=\"\" x=\"-96.6171875\" y=\"-39\" width=\"193.234375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-66.6171875, -24)\"><rect></rect><foreignObject width=\"133.234375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>approval<br>spend permission</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-flowchart-C-9\" data-look=\"classic\" transform=\"translate(312.671875, 559)\"><rect class=\"basic label-container\" style=\"\" x=\"-91.84375\" y=\"-39\" width=\"183.6875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-61.84375, -24)\"><rect></rect><foreignObject width=\"123.6875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>call<br>contract invoked</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-flowchart-CC-11\" data-look=\"classic\" transform=\"translate(312.671875, 687)\"><rect class=\"basic label-container\" style=\"\" x=\"-87.3125\" y=\"-39\" width=\"174.625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-57.3125, -24)\"><rect></rect><foreignObject width=\"114.625\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>contract_create<br>new contract</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-46e5a0c419e529fa9ac1881c6259b6ce26e9d6c15798e427e1d48d320e3d5f39-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 429.03125px;\" viewBox=\"0 0 429.03125 734\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .error-icon{fill:#a44141;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .error-text{fill:#ddd;stroke:#ddd;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edge-thickness-normal{stroke-width:1px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edge-thickness-thick{stroke-width:3.5px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edge-pattern-solid{stroke-dasharray:0;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .marker.cross{stroke:lightgrey;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 p{margin:0;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#ccc;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .cluster-label text{fill:#F9FFFE;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .cluster-label span{color:#F9FFFE;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .cluster-label span p{background-color:transparent;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .label text,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 span{fill:#ccc;color:#ccc;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node rect,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node circle,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node ellipse,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node polygon,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .rough-node .label text,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node .label text,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .image-shape .label,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .icon-shape .label{text-anchor:middle;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .rough-node .label,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node .label,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .image-shape .label,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .icon-shape .label{text-align:center;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node.clickable{cursor:pointer;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .arrowheadPath{fill:lightgrey;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .cluster text{fill:#F9FFFE;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .cluster span{color:#F9FFFE;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 rect.text{fill:none;stroke-width:0;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .icon-shape,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .icon-shape p,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .icon-shape .label rect,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 .node .neo-node{stroke:#ccc;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].node rect,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].cluster rect,#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].node polygon{stroke:url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].node path{stroke:url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-gradient);stroke-width:1px;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].node circle{stroke:url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M89.438,340L104.417,291.167C119.396,242.333,149.354,144.667,172.426,95.833C195.497,47,211.682,47,219.775,47L227.867,47\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-L_TX_T_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_T_0\" data-points=\"W3sieCI6ODkuNDM4MTgzNTkzNzUsInkiOjM0MH0seyJ4IjoxNzkuMzEyNSwieSI6NDd9LHsieCI6MjMxLjg2NzE4NzUsInkiOjQ3fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointEnd)\"></path><path d=\"M94.959,340L109.018,312.5C123.077,285,151.195,230,168.754,202.5C186.313,175,193.313,175,196.813,175L200.313,175\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-L_TX_UT_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_UT_0\" data-points=\"W3sieCI6OTQuOTU5NDcyNjU2MjUsInkiOjM0MH0seyJ4IjoxNzkuMzEyNSwieSI6MTc1fSx7IngiOjIwNC4zMTI1LCJ5IjoxNzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointEnd)\"></path><path d=\"M122.566,340L132.024,333.833C141.481,327.667,160.397,315.333,181.247,309.167C202.096,303,224.88,303,236.272,303L247.664,303\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-L_TX_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_F_0\" data-points=\"W3sieCI6MTIyLjU2NTkxNzk2ODc1LCJ5IjozNDB9LHsieCI6MTc5LjMxMjUsInkiOjMwM30seyJ4IjoyNTEuNjY0MDYyNSwieSI6MzAzfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointEnd)\"></path><path d=\"M122.566,394L132.024,400.167C141.481,406.333,160.397,418.667,175.312,424.833C190.227,431,201.141,431,206.598,431L212.055,431\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-L_TX_A_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_A_0\" data-points=\"W3sieCI6MTIyLjU2NTkxNzk2ODc1LCJ5IjozOTR9LHsieCI6MTc5LjMxMjUsInkiOjQzMX0seyJ4IjoyMTYuMDU0Njg3NSwieSI6NDMxfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointEnd)\"></path><path d=\"M94.959,394L109.018,421.5C123.077,449,151.195,504,171.506,531.5C191.818,559,204.323,559,210.576,559L216.828,559\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-L_TX_C_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_C_0\" data-points=\"W3sieCI6OTQuOTU5NDcyNjU2MjUsInkiOjM5NH0seyJ4IjoxNzkuMzEyNSwieSI6NTU5fSx7IngiOjIyMC44MjgxMjUsInkiOjU1OX1d\" data-look=\"classic\" marker-end=\"url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointEnd)\"></path><path d=\"M89.438,394L104.417,442.833C119.396,491.667,149.354,589.333,171.341,638.167C193.328,687,207.344,687,214.352,687L221.359,687\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-L_TX_CC_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_TX_CC_0\" data-points=\"W3sieCI6ODkuNDM4MTgzNTkzNzUsInkiOjM5NH0seyJ4IjoxNzkuMzEyNSwieSI6Njg3fSx7IngiOjIyNS4zNTkzNzUsInkiOjY4N31d\" data-look=\"classic\" marker-end=\"url(#diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_T_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_UT_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_F_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_A_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_C_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_TX_CC_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-flowchart-TX-0\" data-look=\"classic\" transform=\"translate(81.15625, 367)\"><rect class=\"basic label-container\" style=\"\" x=\"-73.15625\" y=\"-27\" width=\"146.3125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-43.15625, -12)\"><rect></rect><foreignObject width=\"86.3125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Transaction</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-flowchart-T-1\" data-look=\"classic\" transform=\"translate(312.671875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.8046875\" y=\"-39\" width=\"161.609375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.8046875, -24)\"><rect></rect><foreignObject width=\"101.609375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>transfer<br>assets moved</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-flowchart-UT-3\" data-look=\"classic\" transform=\"translate(312.671875, 175)\"><rect class=\"basic label-container\" style=\"\" x=\"-108.359375\" y=\"-39\" width=\"216.71875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-78.359375, -24)\"><rect></rect><foreignObject width=\"156.71875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>utxo_transfer<br>UTXO inputs/outputs</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-flowchart-F-5\" data-look=\"classic\" transform=\"translate(312.671875, 303)\"><rect class=\"basic label-container\" style=\"\" x=\"-61.0078125\" y=\"-39\" width=\"122.015625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-31.0078125, -24)\"><rect></rect><foreignObject width=\"62.015625\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>fee<br>gas paid</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-flowchart-A-7\" data-look=\"classic\" transform=\"translate(312.671875, 431)\"><rect class=\"basic label-container\" style=\"\" x=\"-96.6171875\" y=\"-39\" width=\"193.234375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-66.6171875, -24)\"><rect></rect><foreignObject width=\"133.234375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>approval<br>spend permission</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-flowchart-C-9\" data-look=\"classic\" transform=\"translate(312.671875, 559)\"><rect class=\"basic label-container\" style=\"\" x=\"-91.84375\" y=\"-39\" width=\"183.6875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-61.84375, -24)\"><rect></rect><foreignObject width=\"123.6875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>call<br>contract invoked</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-flowchart-CC-11\" data-look=\"classic\" transform=\"translate(312.671875, 687)\"><rect class=\"basic label-container\" style=\"\" x=\"-87.3125\" y=\"-39\" width=\"174.625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-57.3125, -24)\"><rect></rect><foreignObject width=\"114.625\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>contract_create<br>new contract</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-4a2e03d18746bd0c841cf59c1f5e7b4163e3d64ea1663a5f3d2caea7bbb864d9-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["flowchart LR\n    TX[Transaction] --> T[\"transfer<br/>assets moved\"]\n    TX --> UT[\"utxo_transfer<br/>UTXO inputs/outputs\"]\n    TX --> F[\"fee<br/>gas paid\"]\n    TX --> A[\"approval<br/>spend permission\"]\n    TX --> C[\"call<br/>contract invoked\"]\n    TX --> CC[\"contract_create<br/>new contract\"]\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"transfer","__idx":3},"children":["transfer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Assets moved from one address to another."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset_gid"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CAIP-19 identifier of the transferred asset"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["from"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sender address"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["to"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Recipient address"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transfer amount (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["base"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["formatted"]},")"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Origin of the transfer: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["native"]}," (chain-level), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract"]}," (token contract), or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["internal"]}," (internal transaction)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token identifier for NFTs (ERC-721/ERC-1155), if applicable"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example scenario:"]}," A user sends 1,000 USDT to a merchant wallet. Vilna emits a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]}," event with the sender, recipient, token, and exact amount. Your deposit detection system matches the recipient to a customer and credits their account."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"kind\": \"transfer\",\n  \"asset_gid\": \"eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n  \"from\": \"0x742d35cc6634c0532925a3b844Bc9e7595f7B123\",\n  \"to\": \"0x8ba1f109551bd432803012645ac136c0d1e5c400\",\n  \"amount\": { \"base\": \"1000000000\", \"formatted\": \"1000.0\" },\n  \"source\": \"contract\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"utxo_transfer","__idx":4},"children":["utxo_transfer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A UTXO-based transfer with full input/output visibility. Used for Bitcoin and other UTXO chains instead of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]},", providing complete details of all funding sources and all destinations in a single event."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset_gid"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CAIP-19 identifier of the transferred asset"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["inputs"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Array of transaction inputs, each with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["address"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["base"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["formatted"]},"), and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["index"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["outputs"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Array of transaction outputs, each with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["address"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["base"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["formatted"]},"), and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["index"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transaction fee (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["base"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["formatted"]},")"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example scenario:"]}," A user consolidates two UTXOs into a single payment. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["utxo_transfer"]}," event shows both input addresses (funding sources), the recipient output, the change output, and the miner fee - all in one event."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"kind\": \"utxo_transfer\",\n  \"asset_gid\": \"bip122:000000000019d6689c085ae165831e93/slip44:0\",\n  \"inputs\": [\n    { \"address\": \"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq\", \"amount\": { \"base\": \"50000\", \"formatted\": \"0.0005\" }, \"index\": 0 },\n    { \"address\": \"bc1q5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8\", \"amount\": { \"base\": \"30000\", \"formatted\": \"0.0003\" }, \"index\": 1 }\n  ],\n  \"outputs\": [\n    { \"address\": \"bc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3s7p\", \"amount\": { \"base\": \"70000\", \"formatted\": \"0.0007\" }, \"index\": 0 },\n    { \"address\": \"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq\", \"amount\": { \"base\": \"8000\", \"formatted\": \"0.00008\" }, \"index\": 1 }\n  ],\n  \"fee\": { \"base\": \"2000\", \"formatted\": \"0.00002\" }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This structure is important for compliance workflows - AML screening requires checking all input addresses (funding sources), not just a single sender."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"fee","__idx":5},"children":["fee"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A network fee was paid to process the transaction."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset_gid"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CAIP-19 identifier of the fee asset (always the chain's native currency)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payer"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Address that paid the fee"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fee amount (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["base"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["formatted"]},")"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example scenario:"]}," Every Ethereum transaction costs gas. Your accounting system needs to track fee expenditure separately from transfers to calculate true cost per transaction. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]}," event gives you the exact amount paid, without manual calculation."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"kind\": \"fee\",\n  \"asset_gid\": \"eip155:1/slip44:60\",\n  \"payer\": \"0x742d35cc6634c0532925a3b844Bc9e7595f7B123\",\n  \"amount\": { \"base\": \"2100000000000000\", \"formatted\": \"0.0021\" }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"approval","__idx":6},"children":["approval"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A token spending permission was granted or changed."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset_gid"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CAIP-19 identifier of the approved token"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["owner"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Address granting the permission"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["spender"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Address receiving the permission to spend"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Approved spending limit (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["base"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["formatted"]},")"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token identifier for NFT approvals (ERC-721/ERC-1155), if applicable"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example scenario:"]}," A user approves a DEX router to spend their USDT. For a custodial platform, this is a security-critical event - someone just authorized a third party to move tokens from a monitored address. Your compliance system should flag and review unlimited approvals."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"kind\": \"approval\",\n  \"asset_gid\": \"eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n  \"owner\": \"0x742d35cc6634c0532925a3b844Bc9e7595f7B123\",\n  \"spender\": \"0x1f9840a85d5af5bf1d1762f925bdaddc4201f984\",\n  \"amount\": { \"base\": \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"formatted\": \"unlimited\" }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"call","__idx":7},"children":["call"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A smart contract function was executed."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["caller"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Address that initiated the call"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["target"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Contract address that was called"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example scenario:"]}," A monitored address interacts with an unknown smart contract. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]}," event tells your risk system that a contract interaction occurred, even if no tokens moved directly. This is important for detecting phishing contracts, tracking DeFi positions, and maintaining complete audit trails."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"kind\": \"call\",\n  \"caller\": \"0x742d35cc6634c0532925a3b844Bc9e7595f7B123\",\n  \"target\": \"0x1f9840a85d5af5bf1d1762f925bdaddc4201f984\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"contract_create","__idx":8},"children":["contract_create"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A new smart contract was deployed."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["creator"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Address that deployed the contract"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_address"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Address of the newly deployed contract"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example scenario:"]}," One of your monitored addresses deploys a new smart contract. For compliance teams, contract deployment is a significant action that should be logged and reviewed. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract_create"]}," event captures exactly who deployed what and where."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"kind\": \"contract_create\",\n  \"creator\": \"0x742d35cc6634c0532925a3b844Bc9e7595f7B123\",\n  \"created_address\": \"0x1f9840a85d5af5bf1d1762f925bdaddc4201f984\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"why-track-crypto-transactions-beyond-transfers","__idx":9},"children":["Why track crypto transactions beyond transfers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Many blockchain monitoring solutions only track token transfers. Vilna tracks all canonical event types because real-world use cases demand it."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"security","__idx":10},"children":["Security"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["An ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approval"]}," event means someone authorized a third party to spend tokens from a monitored address. For a crypto bank, exchange, or custodial wallet, this is a security-critical event. If an attacker gains access to one of your addresses and grants themselves an unlimited token approval, a transfer-only system would not notice until the tokens are actually moved - by which time it is too late. Monitoring approvals gives you an early warning window."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"compliance","__idx":11},"children":["Compliance"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Regulators expect complete audit trails. A transfer-only log misses contract interactions that move value in indirect ways - liquidity pool deposits, staking operations, and DAO governance calls all affect your exposure without producing a simple \"A sent X to B\" event. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract_create"]}," events fill these gaps."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"defi-visibility","__idx":12},"children":["DeFi visibility"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In DeFi, value moves through smart contract calls, not just simple transfers. A user might call a swap router that then triggers three internal transfers across two liquidity pools. Without the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]}," event, you see tokens appearing and disappearing with no explanation. With it, you have the full context: which contract was called, which address initiated it, and what transfers resulted."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"multi-chain-consistency","__idx":13},"children":["Multi-chain consistency"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Different blockchains represent the same actions differently. Ethereum uses ERC-20 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Transfer"]}," events; Tron uses TRC-20 events; Bitcoin uses UTXO inputs and outputs. Vilna normalizes everything into the same canonical event types. Your code handles an Ethereum transfer and a Bitcoin transfer with the same approach - consistent field naming and predictable structure across chains."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"complete-picture","__idx":14},"children":["Complete picture"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A single transaction can contain many events. Consider a user swapping tokens on a DEX:"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"sequenceDiagram\n    participant U as User\n    participant R as DEX Router\n    participant LP as Liquidity Pool\n    participant BC as Blockchain\n\n    U->>R: 1. call (swap)\n    R->>LP: 2. transfer (input tokens)\n    LP->>U: 3. transfer (output tokens)\n    U->>BC: 4. fee (gas)\n    Note over U,BC: 1 transaction → 4 events\n","diagramHtml":"<svg id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 904px;\" viewBox=\"-50 -10 904 439\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"654\" y=\"353\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"BC\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"729\" y=\"385.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"729\" dy=\"0\">Blockchain</tspan></text></g><g><rect x=\"454\" y=\"353\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"LP\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"529\" y=\"385.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"529\" dy=\"0\">Liquidity Pool</tspan></text></g><g><rect x=\"200\" y=\"353\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"R\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"275\" y=\"385.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"275\" dy=\"0\">DEX Router</tspan></text></g><g><rect x=\"0\" y=\"353\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"U\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"385.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g><g><line id=\"actor3\" x1=\"729\" y1=\"65\" x2=\"729\" y2=\"353\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"BC\" data-et=\"life-line\" data-id=\"BC\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"BC\"><rect x=\"654\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"BC\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"729\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"729\" dy=\"0\">Blockchain</tspan></text></g></g><g><line id=\"actor2\" x1=\"529\" y1=\"65\" x2=\"529\" y2=\"353\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"LP\" data-et=\"life-line\" data-id=\"LP\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"LP\"><rect x=\"454\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"LP\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"529\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"529\" dy=\"0\">Liquidity Pool</tspan></text></g></g><g><line id=\"actor1\" x1=\"275\" y1=\"65\" x2=\"275\" y2=\"353\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"R\" data-et=\"life-line\" data-id=\"R\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"R\"><rect x=\"200\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"R\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"275\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"275\" dy=\"0\">DEX Router</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"353\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"U\" data-et=\"life-line\" data-id=\"U\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"U\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"U\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g></g><style>#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .error-icon{fill:#552222;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .error-text{fill:#552222;stroke:#552222;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .edge-thickness-normal{stroke-width:1px;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .edge-thickness-thick{stroke-width:3.5px;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .edge-pattern-solid{stroke-dasharray:0;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .edge-pattern-dashed{stroke-dasharray:3;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .edge-pattern-dotted{stroke-dasharray:2;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .marker{fill:#333333;stroke:#333333;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .marker.cross{stroke:#333333;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb p{margin:0;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb rect.note[data-look=\"neo\"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb text.actor&gt;tspan{fill:black;stroke:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .actor-line{stroke:#9370DB;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .sequenceNumber{fill:white;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [id$=\"-sequencenumber\"]{fill:#333;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .messageText{fill:#333;stroke:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .labelText,#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .labelText&gt;tspan{fill:black;stroke:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .loopText,#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .loopText&gt;tspan{fill:black;stroke:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .sectionTitle,#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .note{stroke:#aaaa33;fill:#fff5ad;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .noteText,#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .activation0{fill:#f4f4f4;stroke:#666;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .activation1{fill:#f4f4f4;stroke:#666;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .activation2{fill:#f4f4f4;stroke:#666;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .actorPopupMenu{position:absolute;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .actor-man circle,#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb line{fill:#ECECFF;stroke-width:2px;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb .node .neo-node{stroke:#9370DB;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].node rect,#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].cluster rect,#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"note\" data-id=\"i4\"><rect x=\"50\" y=\"291\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"704\" height=\"42\" class=\"note\"></rect><text x=\"402\" y=\"296\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"402\">1 transaction → 4 events</tspan></text></g><text x=\"174\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">1. call (swap)</text><line x1=\"76\" y1=\"119\" x2=\"271\" y2=\"119\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"U\" data-to=\"R\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-arrowhead)\" style=\"fill: none;\"></line><text x=\"401\" y=\"134\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">2. transfer (input tokens)</text><line x1=\"276\" y1=\"173\" x2=\"525\" y2=\"173\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"R\" data-to=\"LP\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-arrowhead)\" style=\"fill: none;\"></line><text x=\"304\" y=\"188\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">3. transfer (output tokens)</text><line x1=\"528\" y1=\"227\" x2=\"79\" y2=\"227\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"LP\" data-to=\"U\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-arrowhead)\" style=\"fill: none;\"></line><text x=\"401\" y=\"242\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">4. fee (gas)</text><line x1=\"76\" y1=\"281\" x2=\"725\" y2=\"281\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"U\" data-to=\"BC\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-b0221b1ad96981caeac8d43a61c4530e6ab61d8fcceadfc20ee748b3ab5dd8bb-arrowhead)\" style=\"fill: none;\"></line></svg>","diagramHtmlDark":"<svg id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 904px;\" viewBox=\"-50 -10 904 439\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"654\" y=\"353\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"BC\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"729\" y=\"385.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"729\" dy=\"0\">Blockchain</tspan></text></g><g><rect x=\"454\" y=\"353\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"LP\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"529\" y=\"385.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"529\" dy=\"0\">Liquidity Pool</tspan></text></g><g><rect x=\"200\" y=\"353\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"R\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"275\" y=\"385.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"275\" dy=\"0\">DEX Router</tspan></text></g><g><rect x=\"0\" y=\"353\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"U\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"385.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g><g><line id=\"actor3\" x1=\"729\" y1=\"65\" x2=\"729\" y2=\"353\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"BC\" data-et=\"life-line\" data-id=\"BC\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"BC\"><rect x=\"654\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"BC\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"729\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"729\" dy=\"0\">Blockchain</tspan></text></g></g><g><line id=\"actor2\" x1=\"529\" y1=\"65\" x2=\"529\" y2=\"353\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"LP\" data-et=\"life-line\" data-id=\"LP\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"LP\"><rect x=\"454\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"LP\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"529\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"529\" dy=\"0\">Liquidity Pool</tspan></text></g></g><g><line id=\"actor1\" x1=\"275\" y1=\"65\" x2=\"275\" y2=\"353\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"R\" data-et=\"life-line\" data-id=\"R\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"R\"><rect x=\"200\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"R\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"275\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"275\" dy=\"0\">DEX Router</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"353\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"U\" data-et=\"life-line\" data-id=\"U\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"U\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"U\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g></g><style>#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .error-icon{fill:#a44141;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .error-text{fill:#ddd;stroke:#ddd;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .edge-thickness-normal{stroke-width:1px;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .edge-thickness-thick{stroke-width:3.5px;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .edge-pattern-solid{stroke-dasharray:0;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .marker.cross{stroke:lightgrey;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 p{margin:0;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .actor{stroke:#ccc;fill:#1f2020;stroke-width:1;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 rect.note[data-look=\"neo\"]{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 text.actor&gt;tspan{fill:lightgrey;stroke:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .actor-line{stroke:#ccc;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:lightgrey;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:lightgrey;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [id$=\"-arrowhead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .sequenceNumber{fill:black;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [id$=\"-sequencenumber\"]{fill:lightgrey;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [id$=\"-crosshead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .messageText{fill:lightgrey;stroke:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .labelBox{stroke:#ccc;fill:#1f2020;filter:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .labelText,#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .labelText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .loopText,#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .loopText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .sectionTitle,#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .sectionTitle&gt;tspan{fill:lightgrey;stroke:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#ccc;fill:#ccc;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .noteText,#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .noteText&gt;tspan{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-weight:normal;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .activation0{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .activation1{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .activation2{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .actorPopupMenu{position:absolute;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .actorPopupMenuPanel{position:absolute;fill:#1f2020;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .actor-man circle,#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 line{fill:#1f2020;stroke-width:2px;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:#ccc;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 .node .neo-node{stroke:#ccc;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].node rect,#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].cluster rect,#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].node polygon{stroke:url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].node path{stroke:url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-gradient);stroke-width:1px;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].node circle{stroke:url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"note\" data-id=\"i4\"><rect x=\"50\" y=\"291\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"704\" height=\"42\" class=\"note\"></rect><text x=\"402\" y=\"296\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"402\">1 transaction → 4 events</tspan></text></g><text x=\"174\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">1. call (swap)</text><line x1=\"76\" y1=\"119\" x2=\"271\" y2=\"119\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"U\" data-to=\"R\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-arrowhead)\" style=\"fill: none;\"></line><text x=\"401\" y=\"134\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">2. transfer (input tokens)</text><line x1=\"276\" y1=\"173\" x2=\"525\" y2=\"173\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"R\" data-to=\"LP\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-arrowhead)\" style=\"fill: none;\"></line><text x=\"304\" y=\"188\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">3. transfer (output tokens)</text><line x1=\"528\" y1=\"227\" x2=\"79\" y2=\"227\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"LP\" data-to=\"U\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-arrowhead)\" style=\"fill: none;\"></line><text x=\"401\" y=\"242\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">4. fee (gas)</text><line x1=\"76\" y1=\"281\" x2=\"725\" y2=\"281\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"U\" data-to=\"BC\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-e3236b40a435fd55c46982f5ea4e5dca32e13a4ff05005d59c9a973aeb4eb639-arrowhead)\" style=\"fill: none;\"></line></svg>"},"children":["sequenceDiagram\n    participant U as User\n    participant R as DEX Router\n    participant LP as Liquidity Pool\n    participant BC as Blockchain\n\n    U->>R: 1. call (swap)\n    R->>LP: 2. transfer (input tokens)\n    LP->>U: 3. transfer (output tokens)\n    U->>BC: 4. fee (gas)\n    Note over U,BC: 1 transaction → 4 events\n"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]}," - the user calls the swap router contract"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]}," - the user's input tokens move to the liquidity pool"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]}," - the output tokens move from the pool to the user"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]}," - the gas fee is paid"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you only tracked transfers, you would see tokens coming and going but miss the contract interaction that caused them. You would also miss the fee, making it impossible to calculate the true cost of the operation."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-is-tracked-per-chain-family","__idx":15},"children":["What is tracked per chain family"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Different blockchains have different capabilities. Here is what Vilna tracks for each chain family:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Capability"},"children":["Capability"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"EVM"},"children":["EVM"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Bitcoin"},"children":["Bitcoin"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"TRON"},"children":["TRON"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Solana"},"children":["Solana"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Native + ERC-20 tokens"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Native + TRC-20 tokens"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Native + SPL tokens"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["utxo_transfer"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["BTC (full UTXO inputs/outputs)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Gas fees"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Miner fees"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Bandwidth/energy fees"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transaction fees"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approval"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ERC-20 approvals"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TRC-20 approvals"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Smart contract calls"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Smart contract calls"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Program interactions"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract_create"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Contract deployment"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Contract deployment"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Program deployment"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["EVM chains"]}," (Ethereum, Polygon, Arbitrum, BSC, etc.) support ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approval"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract_create"]},", including internal transactions and ERC-721/ERC-1155 NFT events."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bitcoin"]}," supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["utxo_transfer"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]}," events. Bitcoin does not have smart contracts in the EVM sense, so ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approval"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract_create"]}," do not apply. Bitcoin uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["utxo_transfer"]}," instead of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]}," to provide full visibility into all inputs (funding sources) and outputs (destinations) - this is essential for AML compliance and accurate accounting."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["TRON"]}," is similar to EVM - it supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approval"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract_create"]}," for TRC-20 tokens and smart contract interactions."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solana"]}," supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee"]}," events, with program-level interaction tracking for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["call"]}," events."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The complete and current list of supported chains and their capabilities is available via ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/platform/api/blockchain/list-blockchains"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /blockchains"]}]}," in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/platform/"},"children":["Platform API"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"notification-lifecycle","__idx":16},"children":["Notification lifecycle"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a transaction touches one of your monitored addresses, Vilna sends notifications at specific lifecycle stages. Understanding this lifecycle is essential for building reliable systems."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"the-flow","__idx":17},"children":["The flow"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"sequenceDiagram\n    participant BC as Blockchain\n    participant V as Vilna\n    participant S as Your System\n\n    BC->>V: New block\n    V->>V: Parse transactions\n    V->>V: Extract canonical events\n    V->>V: Match monitored addresses\n    V->>S: transaction_detected (fast, not final)\n    loop Confirmations\n        BC->>V: Block +1, +2, ... +N\n        V->>V: Count confirmations\n    end\n    V->>S: transaction_confirmed (reliable)\n","diagramHtml":"<svg id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 793px;\" viewBox=\"-50 -10 793 810\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"543\" y=\"724\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"S\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"618\" y=\"756.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"618\" dy=\"0\">Your System</tspan></text></g><g><rect x=\"205\" y=\"724\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"V\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"280\" y=\"756.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"280\" dy=\"0\">Vilna</tspan></text></g><g><rect x=\"0\" y=\"724\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"BC\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"756.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Blockchain</tspan></text></g><g><line id=\"actor2\" x1=\"618\" y1=\"65\" x2=\"618\" y2=\"724\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"S\" data-et=\"life-line\" data-id=\"S\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"S\"><rect x=\"543\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"S\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"618\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"618\" dy=\"0\">Your System</tspan></text></g></g><g><line id=\"actor1\" x1=\"280\" y1=\"65\" x2=\"280\" y2=\"724\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"V\" data-et=\"life-line\" data-id=\"V\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"V\"><rect x=\"205\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"V\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"280\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"280\" dy=\"0\">Vilna</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"724\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"BC\" data-et=\"life-line\" data-id=\"BC\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"BC\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"BC\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Blockchain</tspan></text></g></g><style>#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .error-icon{fill:#552222;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .error-text{fill:#552222;stroke:#552222;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .edge-thickness-normal{stroke-width:1px;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .edge-thickness-thick{stroke-width:3.5px;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .edge-pattern-solid{stroke-dasharray:0;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .marker{fill:#333333;stroke:#333333;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .marker.cross{stroke:#333333;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 p{margin:0;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 rect.note[data-look=\"neo\"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 text.actor&gt;tspan{fill:black;stroke:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .actor-line{stroke:#9370DB;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .sequenceNumber{fill:white;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [id$=\"-sequencenumber\"]{fill:#333;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .messageText{fill:#333;stroke:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .labelText,#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .labelText&gt;tspan{fill:black;stroke:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .loopText,#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .loopText&gt;tspan{fill:black;stroke:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .sectionTitle,#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .note{stroke:#aaaa33;fill:#fff5ad;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .noteText,#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .activation0{fill:#f4f4f4;stroke:#666;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .activation1{fill:#f4f4f4;stroke:#666;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .activation2{fill:#f4f4f4;stroke:#666;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .actorPopupMenu{position:absolute;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .actor-man circle,#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 line{fill:#ECECFF;stroke-width:2px;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 .node .neo-node{stroke:#9370DB;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].node rect,#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].cluster rect,#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"control-structure\" data-id=\"i8\"><line x1=\"64\" y1=\"435\" x2=\"367.5\" y2=\"435\" class=\"loopLine\"></line><line x1=\"367.5\" y1=\"435\" x2=\"367.5\" y2=\"650\" class=\"loopLine\"></line><line x1=\"64\" y1=\"650\" x2=\"367.5\" y2=\"650\" class=\"loopLine\"></line><line x1=\"64\" y1=\"435\" x2=\"64\" y2=\"650\" class=\"loopLine\"></line><polygon points=\"64,435 114,435 114,448 105.6,455 64,455\" class=\"labelBox\"></polygon><text x=\"89\" y=\"448\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">loop</text><text x=\"240.75\" y=\"453\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"240.75\">[Confirmations]</tspan></text></g><text x=\"176\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">New block</text><line x1=\"76\" y1=\"119\" x2=\"276\" y2=\"119\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"BC\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead)\" style=\"fill: none;\"></line><text x=\"281\" y=\"134\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Parse transactions</text><path d=\"M 281,173 C 341,163 341,203 281,193\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"V\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead)\" style=\"fill: none;\"></path><text x=\"281\" y=\"218\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Extract canonical events</text><path d=\"M 281,257 C 341,247 341,287 281,277\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"V\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead)\" style=\"fill: none;\"></path><text x=\"281\" y=\"302\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Match monitored addresses</text><path d=\"M 281,341 C 341,331 341,371 281,361\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"V\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead)\" style=\"fill: none;\"></path><text x=\"448\" y=\"386\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">transaction_detected (fast, not final)</text><line x1=\"281\" y1=\"425\" x2=\"614\" y2=\"425\" class=\"messageLine0\" data-et=\"message\" data-id=\"i4\" data-from=\"V\" data-to=\"S\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead)\" style=\"fill: none;\"></line><text x=\"176\" y=\"487\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Block +1, +2, ... +N</text><line x1=\"76\" y1=\"526\" x2=\"276\" y2=\"526\" class=\"messageLine0\" data-et=\"message\" data-id=\"i6\" data-from=\"BC\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead)\" style=\"fill: none;\"></line><text x=\"281\" y=\"541\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Count confirmations</text><path d=\"M 281,580 C 341,570 341,610 281,600\" class=\"messageLine0\" data-et=\"message\" data-id=\"i7\" data-from=\"V\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead)\" style=\"fill: none;\"></path><text x=\"448\" y=\"665\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">transaction_confirmed (reliable)</text><line x1=\"281\" y1=\"704\" x2=\"614\" y2=\"704\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"V\" data-to=\"S\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-11f616cd75cf7b0c3769f33bda8d6716c00baf821dfd09879628a6a76f8e3169-arrowhead)\" style=\"fill: none;\"></line></svg>","diagramHtmlDark":"<svg id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 793px;\" viewBox=\"-50 -10 793 810\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><g><rect x=\"543\" y=\"724\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"S\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"618\" y=\"756.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"618\" dy=\"0\">Your System</tspan></text></g><g><rect x=\"205\" y=\"724\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"V\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"280\" y=\"756.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"280\" dy=\"0\">Vilna</tspan></text></g><g><rect x=\"0\" y=\"724\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"BC\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"756.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Blockchain</tspan></text></g><g><line id=\"actor2\" x1=\"618\" y1=\"65\" x2=\"618\" y2=\"724\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"S\" data-et=\"life-line\" data-id=\"S\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"S\"><rect x=\"543\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"S\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"618\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"618\" dy=\"0\">Your System</tspan></text></g></g><g><line id=\"actor1\" x1=\"280\" y1=\"65\" x2=\"280\" y2=\"724\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"V\" data-et=\"life-line\" data-id=\"V\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"V\"><rect x=\"205\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"V\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"280\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"280\" dy=\"0\">Vilna</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"724\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"BC\" data-et=\"life-line\" data-id=\"BC\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"BC\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"BC\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Blockchain</tspan></text></g></g><style>#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .error-icon{fill:#a44141;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .error-text{fill:#ddd;stroke:#ddd;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .edge-thickness-normal{stroke-width:1px;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .edge-thickness-thick{stroke-width:3.5px;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .edge-pattern-solid{stroke-dasharray:0;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .marker.cross{stroke:lightgrey;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 p{margin:0;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .actor{stroke:#ccc;fill:#1f2020;stroke-width:1;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 rect.note[data-look=\"neo\"]{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 text.actor&gt;tspan{fill:lightgrey;stroke:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .actor-line{stroke:#ccc;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:lightgrey;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:lightgrey;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [id$=\"-arrowhead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .sequenceNumber{fill:black;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [id$=\"-sequencenumber\"]{fill:lightgrey;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [id$=\"-crosshead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .messageText{fill:lightgrey;stroke:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .labelBox{stroke:#ccc;fill:#1f2020;filter:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .labelText,#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .labelText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .loopText,#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .loopText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .sectionTitle,#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .sectionTitle&gt;tspan{fill:lightgrey;stroke:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#ccc;fill:#ccc;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .noteText,#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .noteText&gt;tspan{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-weight:normal;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .activation0{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .activation1{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .activation2{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .actorPopupMenu{position:absolute;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .actorPopupMenuPanel{position:absolute;fill:#1f2020;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .actor-man circle,#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 line{fill:#1f2020;stroke-width:2px;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:#ccc;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 .node .neo-node{stroke:#ccc;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].node rect,#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].cluster rect,#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].node polygon{stroke:url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].node path{stroke:url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-gradient);stroke-width:1px;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].node circle{stroke:url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"control-structure\" data-id=\"i8\"><line x1=\"64\" y1=\"435\" x2=\"367.5\" y2=\"435\" class=\"loopLine\"></line><line x1=\"367.5\" y1=\"435\" x2=\"367.5\" y2=\"650\" class=\"loopLine\"></line><line x1=\"64\" y1=\"650\" x2=\"367.5\" y2=\"650\" class=\"loopLine\"></line><line x1=\"64\" y1=\"435\" x2=\"64\" y2=\"650\" class=\"loopLine\"></line><polygon points=\"64,435 114,435 114,448 105.6,455 64,455\" class=\"labelBox\"></polygon><text x=\"89\" y=\"448\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">loop</text><text x=\"240.75\" y=\"453\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"240.75\">[Confirmations]</tspan></text></g><text x=\"176\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">New block</text><line x1=\"76\" y1=\"119\" x2=\"276\" y2=\"119\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"BC\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead)\" style=\"fill: none;\"></line><text x=\"281\" y=\"134\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Parse transactions</text><path d=\"M 281,173 C 341,163 341,203 281,193\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"V\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead)\" style=\"fill: none;\"></path><text x=\"281\" y=\"218\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Extract canonical events</text><path d=\"M 281,257 C 341,247 341,287 281,277\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"V\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead)\" style=\"fill: none;\"></path><text x=\"281\" y=\"302\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Match monitored addresses</text><path d=\"M 281,341 C 341,331 341,371 281,361\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"V\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead)\" style=\"fill: none;\"></path><text x=\"448\" y=\"386\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">transaction_detected (fast, not final)</text><line x1=\"281\" y1=\"425\" x2=\"614\" y2=\"425\" class=\"messageLine0\" data-et=\"message\" data-id=\"i4\" data-from=\"V\" data-to=\"S\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead)\" style=\"fill: none;\"></line><text x=\"176\" y=\"487\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Block +1, +2, ... +N</text><line x1=\"76\" y1=\"526\" x2=\"276\" y2=\"526\" class=\"messageLine0\" data-et=\"message\" data-id=\"i6\" data-from=\"BC\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead)\" style=\"fill: none;\"></line><text x=\"281\" y=\"541\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Count confirmations</text><path d=\"M 281,580 C 341,570 341,610 281,600\" class=\"messageLine0\" data-et=\"message\" data-id=\"i7\" data-from=\"V\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead)\" style=\"fill: none;\"></path><text x=\"448\" y=\"665\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, sans-serif; font-size: 16px; font-weight: 400;\">transaction_confirmed (reliable)</text><line x1=\"281\" y1=\"704\" x2=\"614\" y2=\"704\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"V\" data-to=\"S\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-79f7bf509f99c72b863b48819ec02516c5b0b67727d93439b4d420ba5cbd6378-arrowhead)\" style=\"fill: none;\"></line></svg>"},"children":["sequenceDiagram\n    participant BC as Blockchain\n    participant V as Vilna\n    participant S as Your System\n\n    BC->>V: New block\n    V->>V: Parse transactions\n    V->>V: Extract canonical events\n    V->>V: Match monitored addresses\n    V->>S: transaction_detected (fast, not final)\n    loop Confirmations\n        BC->>V: Block +1, +2, ... +N\n        V->>V: Count confirmations\n    end\n    V->>S: transaction_confirmed (reliable)\n"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A transaction is included in a block on the blockchain."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Vilna detects the block, parses every transaction, and extracts canonical events."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Vilna checks if any monitored addresses are involved in the transaction's events or activity."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If a match is found, a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_detected"]}," notification is sent via all configured channels (webhook and Telegram). The transaction's block status is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["processed"]}," (detected but not yet confirmed)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["As new blocks are added on top, the transaction accumulates confirmations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When the required confirmation count is reached, a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_confirmed"]}," notification is sent. The block status is now ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmed"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If a blockchain reorganization occurs (rare, but possible), the block status transitions to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reorged"]},". The block is reprocessed from the new chain state."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"detection-vs-confirmation","__idx":18},"children":["Detection vs. confirmation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Notifications are sent at ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["two key moments"]},", and your system should handle them differently:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Event type"},"children":["Event type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Block status"},"children":["Block status"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Speed"},"children":["Speed"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Finality"},"children":["Finality"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Use for"},"children":["Use for"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_detected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["processed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fast (seconds after block)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not final - could be reorged"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UI updates, provisional display, alerting humans"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_confirmed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Slower (minutes, depends on chain)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Final - safe to act on"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Crediting accounts, triggering business logic, updating balances"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Design your system around this distinction."]}," Show detected transactions in your UI immediately so users see responsive feedback. But do not credit accounts, trigger payouts, or update ledgers until you receive the confirmation notification. This two-phase approach gives you both speed and safety."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Do not act on detected events"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Show detected alerts (block status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["processed"]},") in your UI for responsiveness, but ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["never"]}," credit accounts, trigger payouts, or update ledgers until you receive a confirmed alert (block status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmed"]},")."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"webhook-notifications-in-practice","__idx":19},"children":["Webhook notifications in practice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a notification fires, your webhook receives a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TransactionAlertPayload"]}," - a self-contained JSON object with everything you need to process the event without making additional API calls."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"payload-structure","__idx":20},"children":["Payload structure"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The payload has four top-level fields:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UUIDv5 matching the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Webhook-Event-Id"]}," header. Stable across retries — use it as your deduplication key."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["item"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The full transaction object, including all events and activity records"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["references"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Lookup maps for tokens, blockchains, and addresses referenced in the transaction"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_test_message"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," if sent by the test action, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," for real blockchain events"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-payload","__idx":21},"children":["Example payload"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here is a realistic webhook payload for a 1,000 USDT transfer on Ethereum. The transaction contains two events (the token transfer and the gas fee) and one activity record showing the net impact on the monitored address:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"event_id\": \"f47ac10b-58cc-5372-a567-0e02b2c3d479\",\n  \"item\": {\n    \"chain_gid\": \"eip155:1\",\n    \"txid\": \"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\",\n    \"block_number\": 19500000,\n    \"is_success\": true,\n    \"confirmed_at\": \"2025-03-15T10:30:00Z\",\n    \"events\": [\n      {\n        \"txid\": \"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\",\n        \"sequence\": 0,\n        \"kind\": \"transfer\",\n        \"data\": {\n          \"kind\": \"transfer\",\n          \"asset_gid\": \"eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n          \"from\": \"0x742d35cc6634c0532925a3b844Bc9e7595f7B123\",\n          \"to\": \"0x8ba1f109551bd432803012645ac136c0d1e5c400\",\n          \"amount\": { \"base\": \"1000000000\", \"formatted\": \"1000.0\" },\n          \"source\": \"contract\"\n        }\n      },\n      {\n        \"txid\": \"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\",\n        \"sequence\": 1,\n        \"kind\": \"fee\",\n        \"data\": {\n          \"kind\": \"fee\",\n          \"asset_gid\": \"eip155:1/slip44:60\",\n          \"payer\": \"0x742d35cc6634c0532925a3b844Bc9e7595f7B123\",\n          \"amount\": { \"base\": \"2100000000000000\", \"formatted\": \"0.0021\" }\n        }\n      }\n    ],\n    \"activity\": [\n      {\n        \"chain_gid\": \"eip155:1\",\n        \"txid\": \"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\",\n        \"address\": \"0x8ba1f109551bd432803012645ac136c0d1e5c400\",\n        \"asset_gid\": \"eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n        \"direction\": \"in\",\n        \"delta\": { \"base\": \"1000000000\", \"formatted\": \"1000.0\" },\n        \"created_at\": \"2025-03-15T10:30:00Z\"\n      }\n    ]\n  },\n  \"references\": {\n    \"tokens\": {\n      \"eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7\": {\n        \"gid\": \"eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n        \"name\": \"Tether USD\",\n        \"symbol\": \"USDT\",\n        \"decimals\": 6\n      },\n      \"eip155:1/slip44:60\": {\n        \"gid\": \"eip155:1/slip44:60\",\n        \"name\": \"Ethereum\",\n        \"symbol\": \"ETH\",\n        \"decimals\": 18\n      }\n    },\n    \"blockchains\": {\n      \"eip155:1\": {\n        \"gid\": \"eip155:1\",\n        \"name\": \"ethereum\",\n        \"short_name\": \"eth\"\n      }\n    },\n    \"addresses\": {\n      \"0x8ba1f109551bd432803012645ac136c0d1e5c400\": \"merchant_wallet\"\n    }\n  },\n  \"is_test_message\": false\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Key things to notice:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["events"]}," array contains every canonical event in the transaction. You can filter by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kind"]}," to process only the event types you care about."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["activity"]}," array shows the net balance impact on your monitored addresses. Each entry tells you which address was affected, which asset changed, the direction (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["out"]},"), and the exact delta."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["references"]}," object lets you resolve token symbols, names, decimals, and blockchain metadata without calling the API. Everything you need for display and processing is in the payload."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"routing-notifications-beyond-webhooks","__idx":22},"children":["Routing notifications beyond webhooks"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Vilna delivers notifications natively to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["webhooks"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Telegram"]},". But a webhook is just an HTTP POST - you can route that data anywhere your architecture needs it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Message queues"]}," - Point your webhook URL at a lightweight proxy that enqueues messages into RabbitMQ, AWS SQS, or Google Pub/Sub. This decouples event ingestion from processing and gives you backpressure handling for free."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Slack / Discord"]}," - Your webhook handler can reformat the payload and forward it to Slack or Discord incoming webhook URLs. This is useful for operations teams who want human-readable transaction alerts in their chat channels."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PagerDuty / OpsGenie"]}," - Forward high-value events (large transfers, unexpected approvals, contract deployments) to alerting systems for on-call escalation."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom backends"]}," - Any system that accepts HTTP POST can receive Vilna events. Point the webhook at your internal API, a serverless function, or a data pipeline ingestion endpoint."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Native adapters for Slack, Discord, and popular message queues are in development. If you need a specific integration, contact ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"mailto:support@vilna.io"},"children":["support@vilna.io"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"webhook-delivery-and-retries","__idx":23},"children":["Webhook delivery and retries"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When Vilna sends a webhook notification, it expects your endpoint to return a 2xx status code within ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["10 seconds"]},". A delivery is considered failed if the connection cannot be established, the response times out, or the endpoint returns a 4xx/5xx status code."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Failed deliveries are retried on the following schedule:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Attempt"},"children":["Attempt"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Delay"},"children":["Delay"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Immediate"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["30 seconds"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2 minutes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["4"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["10 minutes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["5"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["30 minutes"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If all five attempts fail, the event is marked as undelivered. A single undelivered event does not disable the channel - transient failures are expected. However, if an endpoint fails repeatedly across multiple events, Vilna disables the channel to stop wasting resources. A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["410 Gone"]}," response immediately disables the channel on the first attempt."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Delivery ordering:"]}," Notifications are dispatched in the order events occur, but delivery is not strictly ordered. If your endpoint is slow to respond, a later event may arrive before an earlier retry completes. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["block_number"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sequence"]}," from the payload to reconstruct the correct order on your side."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"designing-your-webhook-handler","__idx":24},"children":["Designing your webhook handler"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A well-built webhook handler is reliable, idempotent, and fast. Follow these practices to avoid common pitfalls."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"respond-immediately-process-later","__idx":25},"children":["Respond immediately, process later"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your webhook endpoint should return HTTP 2xx as fast as possible. Enqueue the payload for asynchronous processing rather than doing heavy work in the request handler."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"success","name":"Best practice"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Return HTTP 200 immediately and enqueue the payload for async processing. Heavy work in the request handler risks timeouts and missed deliveries."]}]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart LR\n    V[Vilna] -->|POST| E[Your Endpoint]\n    E -->|200 OK| V\n    E --> Q[Queue]\n    Q --> W[Async Worker]\n    W --> BL[Business Logic]\n","diagramHtml":"<svg id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 972.3125px;\" viewBox=\"0 0 972.3125 83.94068145751953\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .error-icon{fill:#552222;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .error-text{fill:#552222;stroke:#552222;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edge-thickness-normal{stroke-width:1px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edge-thickness-thick{stroke-width:3.5px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edge-pattern-solid{stroke-dasharray:0;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .marker{fill:#333333;stroke:#333333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .marker.cross{stroke:#333333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 p{margin:0;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .cluster-label text{fill:#333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .cluster-label span{color:#333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .cluster-label span p{background-color:transparent;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .label text,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 span{fill:#333;color:#333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node rect,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node circle,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node ellipse,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node polygon,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .rough-node .label text,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node .label text,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .image-shape .label,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .icon-shape .label{text-anchor:middle;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .rough-node .label,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node .label,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .image-shape .label,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .icon-shape .label{text-align:center;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node.clickable{cursor:pointer;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .arrowheadPath{fill:#333333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .flowchart-link{stroke:#333333;fill:none;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .cluster text{fill:#333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .cluster span{color:#333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 rect.text{fill:none;stroke-width:0;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .icon-shape,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .icon-shape p,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .icon-shape .label rect,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 .node .neo-node{stroke:#9370DB;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].node rect,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].cluster rect,#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M104.344,31.415L113.001,29.512C121.659,27.61,138.974,23.805,155.631,23.207C172.288,22.61,188.287,25.22,196.287,26.525L204.287,27.83\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-L_V_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_V_E_0\" data-points=\"W3sieCI6MTA0LjM0Mzc1LCJ5IjozMS40MTQ1OTIyNzQ2NzgxMTR9LHsieCI6MTU2LjI4OTA2MjUsInkiOjIwfSx7IngiOjIwOC4yMzQzNzUsInkiOjI4LjQ3MzQ5ODIzMzIxNTU0OH1d\" data-look=\"classic\" marker-end=\"url(#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointEnd)\"></path><path d=\"M208.234,55.527L199.577,56.939C190.919,58.351,173.604,61.176,156.94,60.828C140.276,60.481,124.263,56.963,116.257,55.203L108.251,53.444\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-L_E_V_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_V_0\" data-points=\"W3sieCI6MjA4LjIzNDM3NSwieSI6NTUuNTI2NTAxNzY2Nzg0NDV9LHsieCI6MTU2LjI4OTA2MjUsInkiOjY0fSx7IngiOjEwNC4zNDM3NSwieSI6NTIuNTg1NDA3NzI1MzIxODg2fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointEnd)\"></path><path d=\"M374.078,42L378.245,42C382.411,42,390.745,42,398.411,42C406.078,42,413.078,42,416.578,42L420.078,42\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-L_E_Q_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_Q_0\" data-points=\"W3sieCI6Mzc0LjA3ODEyNSwieSI6NDJ9LHsieCI6Mzk5LjA3ODEyNSwieSI6NDJ9LHsieCI6NDI0LjA3ODEyNSwieSI6NDJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointEnd)\"></path><path d=\"M534.141,42L538.307,42C542.474,42,550.807,42,558.474,42C566.141,42,573.141,42,576.641,42L580.141,42\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-L_Q_W_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Q_W_0\" data-points=\"W3sieCI6NTM0LjE0MDYyNSwieSI6NDJ9LHsieCI6NTU5LjE0MDYyNSwieSI6NDJ9LHsieCI6NTg0LjE0MDYyNSwieSI6NDJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointEnd)\"></path><path d=\"M745.828,42L749.995,42C754.161,42,762.495,42,770.161,42C777.828,42,784.828,42,788.328,42L791.828,42\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-L_W_BL_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_W_BL_0\" data-points=\"W3sieCI6NzQ1LjgyODEyNSwieSI6NDJ9LHsieCI6NzcwLjgyODEyNSwieSI6NDJ9LHsieCI6Nzk1LjgyODEyNSwieSI6NDJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\" transform=\"translate(156.2890625, 20)\"><g class=\"label\" data-id=\"L_V_E_0\" transform=\"translate(-19.8671875, -12)\"><foreignObject width=\"39.734375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>POST</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(156.01912, 63.94068)\"><g class=\"label\" data-id=\"L_E_V_0\" transform=\"translate(-26.9453125, -12)\"><foreignObject width=\"53.890625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>200 OK</p></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_E_Q_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_Q_W_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_W_BL_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-flowchart-V-0\" data-look=\"classic\" transform=\"translate(56.171875, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-48.171875\" y=\"-27\" width=\"96.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-18.171875, -12)\"><rect></rect><foreignObject width=\"36.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vilna</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-flowchart-E-1\" data-look=\"classic\" transform=\"translate(291.15625, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-82.921875\" y=\"-27\" width=\"165.84375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-52.921875, -12)\"><rect></rect><foreignObject width=\"105.84375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Your Endpoint</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-flowchart-Q-5\" data-look=\"classic\" transform=\"translate(479.109375, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-55.03125\" y=\"-27\" width=\"110.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-25.03125, -12)\"><rect></rect><foreignObject width=\"50.0625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Queue</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-flowchart-W-7\" data-look=\"classic\" transform=\"translate(664.984375, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.84375\" y=\"-27\" width=\"161.6875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.84375, -12)\"><rect></rect><foreignObject width=\"101.6875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Async Worker</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-flowchart-BL-9\" data-look=\"classic\" transform=\"translate(880.0703125, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-84.2421875\" y=\"-27\" width=\"168.484375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-54.2421875, -12)\"><rect></rect><foreignObject width=\"108.484375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Business Logic</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-742f7d5e9d3c817c12d0d1996c6ab2c68baa744f5d16dd9f7db8b9a833de81f7-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 972.3125px;\" viewBox=\"0 0 972.3125 83.94068145751953\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .error-icon{fill:#a44141;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .error-text{fill:#ddd;stroke:#ddd;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edge-thickness-normal{stroke-width:1px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edge-thickness-thick{stroke-width:3.5px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edge-pattern-solid{stroke-dasharray:0;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edge-pattern-dashed{stroke-dasharray:3;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edge-pattern-dotted{stroke-dasharray:2;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .marker{fill:lightgrey;stroke:lightgrey;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .marker.cross{stroke:lightgrey;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd p{margin:0;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#ccc;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .cluster-label text{fill:#F9FFFE;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .cluster-label span{color:#F9FFFE;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .cluster-label span p{background-color:transparent;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .label text,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd span{fill:#ccc;color:#ccc;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node rect,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node circle,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node ellipse,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node polygon,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .rough-node .label text,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node .label text,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .image-shape .label,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .icon-shape .label{text-anchor:middle;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .rough-node .label,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node .label,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .image-shape .label,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .icon-shape .label{text-align:center;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node.clickable{cursor:pointer;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .arrowheadPath{fill:lightgrey;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .flowchart-link{stroke:lightgrey;fill:none;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .cluster text{fill:#F9FFFE;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .cluster span{color:#F9FFFE;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd rect.text{fill:none;stroke-width:0;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .icon-shape,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .icon-shape p,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .icon-shape .label rect,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd .node .neo-node{stroke:#ccc;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].node rect,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].cluster rect,#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].node polygon{stroke:url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].node path{stroke:url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-gradient);stroke-width:1px;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].node circle{stroke:url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M104.344,31.415L113.001,29.512C121.659,27.61,138.974,23.805,155.631,23.207C172.288,22.61,188.287,25.22,196.287,26.525L204.287,27.83\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-L_V_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_V_E_0\" data-points=\"W3sieCI6MTA0LjM0Mzc1LCJ5IjozMS40MTQ1OTIyNzQ2NzgxMTR9LHsieCI6MTU2LjI4OTA2MjUsInkiOjIwfSx7IngiOjIwOC4yMzQzNzUsInkiOjI4LjQ3MzQ5ODIzMzIxNTU0OH1d\" data-look=\"classic\" marker-end=\"url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointEnd)\"></path><path d=\"M208.234,55.527L199.577,56.939C190.919,58.351,173.604,61.176,156.94,60.828C140.276,60.481,124.263,56.963,116.257,55.203L108.251,53.444\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-L_E_V_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_V_0\" data-points=\"W3sieCI6MjA4LjIzNDM3NSwieSI6NTUuNTI2NTAxNzY2Nzg0NDV9LHsieCI6MTU2LjI4OTA2MjUsInkiOjY0fSx7IngiOjEwNC4zNDM3NSwieSI6NTIuNTg1NDA3NzI1MzIxODg2fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointEnd)\"></path><path d=\"M374.078,42L378.245,42C382.411,42,390.745,42,398.411,42C406.078,42,413.078,42,416.578,42L420.078,42\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-L_E_Q_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_Q_0\" data-points=\"W3sieCI6Mzc0LjA3ODEyNSwieSI6NDJ9LHsieCI6Mzk5LjA3ODEyNSwieSI6NDJ9LHsieCI6NDI0LjA3ODEyNSwieSI6NDJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointEnd)\"></path><path d=\"M534.141,42L538.307,42C542.474,42,550.807,42,558.474,42C566.141,42,573.141,42,576.641,42L580.141,42\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-L_Q_W_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Q_W_0\" data-points=\"W3sieCI6NTM0LjE0MDYyNSwieSI6NDJ9LHsieCI6NTU5LjE0MDYyNSwieSI6NDJ9LHsieCI6NTg0LjE0MDYyNSwieSI6NDJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointEnd)\"></path><path d=\"M745.828,42L749.995,42C754.161,42,762.495,42,770.161,42C777.828,42,784.828,42,788.328,42L791.828,42\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-L_W_BL_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_W_BL_0\" data-points=\"W3sieCI6NzQ1LjgyODEyNSwieSI6NDJ9LHsieCI6NzcwLjgyODEyNSwieSI6NDJ9LHsieCI6Nzk1LjgyODEyNSwieSI6NDJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\" transform=\"translate(156.2890625, 20)\"><g class=\"label\" data-id=\"L_V_E_0\" transform=\"translate(-19.8671875, -12)\"><foreignObject width=\"39.734375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>POST</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(156.01912, 63.94068)\"><g class=\"label\" data-id=\"L_E_V_0\" transform=\"translate(-26.9453125, -12)\"><foreignObject width=\"53.890625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>200 OK</p></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_E_Q_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_Q_W_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_W_BL_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-flowchart-V-0\" data-look=\"classic\" transform=\"translate(56.171875, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-48.171875\" y=\"-27\" width=\"96.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-18.171875, -12)\"><rect></rect><foreignObject width=\"36.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vilna</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-flowchart-E-1\" data-look=\"classic\" transform=\"translate(291.15625, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-82.921875\" y=\"-27\" width=\"165.84375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-52.921875, -12)\"><rect></rect><foreignObject width=\"105.84375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Your Endpoint</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-flowchart-Q-5\" data-look=\"classic\" transform=\"translate(479.109375, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-55.03125\" y=\"-27\" width=\"110.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-25.03125, -12)\"><rect></rect><foreignObject width=\"50.0625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Queue</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-flowchart-W-7\" data-look=\"classic\" transform=\"translate(664.984375, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.84375\" y=\"-27\" width=\"161.6875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.84375, -12)\"><rect></rect><foreignObject width=\"101.6875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Async Worker</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-flowchart-BL-9\" data-look=\"classic\" transform=\"translate(880.0703125, 42)\"><rect class=\"basic label-container\" style=\"\" x=\"-84.2421875\" y=\"-27\" width=\"168.484375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-54.2421875, -12)\"><rect></rect><foreignObject width=\"108.484375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Business Logic</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-0ce53bbdfec3e95ded89d0e92460dc583a81418658ebb31e7a1277a642d487bd-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["flowchart LR\n    V[Vilna] -->|POST| E[Your Endpoint]\n    E -->|200 OK| V\n    E --> Q[Queue]\n    Q --> W[Async Worker]\n    W --> BL[Business Logic]\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"verify-the-signature","__idx":26},"children":["Verify the signature"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every delivery carries an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Webhook-Signature"]}," header in Stripe format (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["t=<unix-seconds>,v1=<hex>"]},") with an HMAC-SHA256 of the raw request body. Verify it before processing — both to confirm the payload came from Vilna and to reject replays via the timestamp inside the header. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/authentication#webhook-signature-verification"},"children":["Authentication — Webhook signature verification"]}," for the verification function and required client behaviors."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"deduplicate-by-event_id","__idx":27},"children":["Deduplicate by event_id"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event_id"]}," from the body (or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Webhook-Event-Id"]}," from the headers — they are the same value) to detect duplicate deliveries. Store processed IDs in a database or cache and skip any you have already seen. This is critical for financial operations — you never want to credit an account twice for the same transaction."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filter-by-event-kind","__idx":28},"children":["Filter by event kind"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your system only cares about transfers, filter the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["events"]}," array by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kind"]}," and ignore the rest. For EVM/TRON/Solana chains, look for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transfer"]},"; for Bitcoin, look for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["utxo_transfer"]},". This keeps your processing logic focused:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"const transfers = payload.item.events.filter(\n  (event) => event.kind === \"transfer\" || event.kind === \"utxo_transfer\"\n);\n\nfor (const event of transfers) {\n  if (event.kind === \"utxo_transfer\") {\n    // Bitcoin: full UTXO inputs/outputs\n    await processUtxoTransfer(event.data);\n  } else {\n    // EVM/TRON/Solana: single from→to transfer\n    await processTransfer(event.data);\n  }\n}\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"use-the-references-object","__idx":29},"children":["Use the references object"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["references"]}," field contains token metadata (name, symbol, decimals) and blockchain information for every asset and chain mentioned in the transaction. Use this data directly instead of making extra API calls:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"const tokenGid = event.data.asset_gid;\nconst token = payload.references.tokens[tokenGid];\nconsole.log(`Received ${event.data.amount.formatted} ${token.symbol}`);\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"summary-of-webhook-headers","__idx":30},"children":["Summary of webhook headers"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Header"},"children":["Header"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Webhook-Signature"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stripe-format HMAC-SHA256 signature: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["t=<unix-seconds>,v1=<hex>"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Webhook-Event"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event name in dot notation: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction.detected"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction.confirmed"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Webhook-Event-Id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UUIDv5, stable across retries — use as dedup key"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Webhook-Delivery-Id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UUID, changes on every attempt — for support correlation only"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"further-reading","__idx":31},"children":["Further reading"]},{"$$mdtype":"Tag","name":"Cards","attributes":{"columns":2,"cardMinWidth":240},"children":[{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Notification Channels","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"/guides/channels"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creating and managing webhook and Telegram channels"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Authentication","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"/guides/authentication#webhook-signature-verification"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Webhook signature verification with code examples"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Core Concepts","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"/guides/core-concepts"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Addresses, tokens, amounts, and the references pattern"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Integration Patterns","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"/guides/integration-patterns"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deposit detection, portfolio tracking, and transaction alerts"]}]}]}]},"headings":[{"value":"Events & transaction monitoring","id":"events--transaction-monitoring","depth":1},{"value":"What are events","id":"what-are-events","depth":2},{"value":"Event types","id":"event-types","depth":2},{"value":"transfer","id":"transfer","depth":3},{"value":"utxo_transfer","id":"utxo_transfer","depth":3},{"value":"fee","id":"fee","depth":3},{"value":"approval","id":"approval","depth":3},{"value":"call","id":"call","depth":3},{"value":"contract_create","id":"contract_create","depth":3},{"value":"Why track crypto transactions beyond transfers","id":"why-track-crypto-transactions-beyond-transfers","depth":2},{"value":"Security","id":"security","depth":3},{"value":"Compliance","id":"compliance","depth":3},{"value":"DeFi visibility","id":"defi-visibility","depth":3},{"value":"Multi-chain consistency","id":"multi-chain-consistency","depth":3},{"value":"Complete picture","id":"complete-picture","depth":3},{"value":"What is tracked per chain family","id":"what-is-tracked-per-chain-family","depth":2},{"value":"Notification lifecycle","id":"notification-lifecycle","depth":2},{"value":"The flow","id":"the-flow","depth":3},{"value":"Detection vs. confirmation","id":"detection-vs-confirmation","depth":3},{"value":"Webhook notifications in practice","id":"webhook-notifications-in-practice","depth":2},{"value":"Payload structure","id":"payload-structure","depth":3},{"value":"Example payload","id":"example-payload","depth":3},{"value":"Routing notifications beyond webhooks","id":"routing-notifications-beyond-webhooks","depth":2},{"value":"Webhook delivery and retries","id":"webhook-delivery-and-retries","depth":2},{"value":"Designing your webhook handler","id":"designing-your-webhook-handler","depth":2},{"value":"Respond immediately, process later","id":"respond-immediately-process-later","depth":3},{"value":"Verify the signature","id":"verify-the-signature","depth":3},{"value":"Deduplicate by event_id","id":"deduplicate-by-event_id","depth":3},{"value":"Filter by event kind","id":"filter-by-event-kind","depth":3},{"value":"Use the references object","id":"use-the-references-object","depth":3},{"value":"Summary of webhook headers","id":"summary-of-webhook-headers","depth":3},{"value":"Further reading","id":"further-reading","depth":2}],"frontmatter":{"seo":{"title":"Events - Real-Time Transaction Monitoring","description":"Understand Vilna's event model that breaks blockchain transactions into granular canonical events for detailed monitoring and alerting.","priority":0.7,"image":"https://cdn.vilna.io/docs/previews/guides.png","jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://docs.vilna.io/"},{"@type":"ListItem","position":2,"name":"Guides"},{"@type":"ListItem","position":3,"name":"Events"}]},{"@type":"TechArticle","headline":"Events - Real-Time Transaction Monitoring","description":"Understand Vilna's event model that breaks blockchain transactions into granular canonical events for detailed monitoring and alerting.","url":"https://docs.vilna.io/guides/events","datePublished":"2025-09-17","dateModified":"2026-05-17","proficiencyLevel":"Intermediate","dependencies":"Vilna API key, Webhook endpoint","image":"https://cdn.vilna.io/docs/previews/guides.png","author":{"@id":"https://vilna.io/#organization"},"publisher":{"@id":"https://vilna.io/#organization"}}]}}},"lastModified":"2026-05-17T22:07:29.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/events","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}