<h3 id="architectural-diagram"><a class="header" href="#architectural-diagram">Architectural Diagram</a></h3>
<div style="background-color:blue">
-
<pre><svg aria-roledescription="classDiagram" viewBox="0 0 474.578125 428" height="428" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="474.578125" id="mermaid-1679502025225"><style>#mermaid-1679502025225{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-1679502025225 .error-icon{fill:#552222;}#mermaid-1679502025225 .error-text{fill:#552222;stroke:#552222;}#mermaid-1679502025225 .edge-thickness-normal{stroke-width:2px;}#mermaid-1679502025225 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1679502025225 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1679502025225 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1679502025225 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1679502025225 .marker{fill:#333333;stroke:#333333;}#mermaid-1679502025225 .marker.cross{stroke:#333333;}#mermaid-1679502025225 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-1679502025225 g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-1679502025225 g.classGroup text .title{font-weight:bolder;}#mermaid-1679502025225 .nodeLabel,#mermaid-1679502025225 .edgeLabel{color:#131300;}#mermaid-1679502025225 .edgeLabel .label rect{fill:#ECECFF;}#mermaid-1679502025225 .label text{fill:#131300;}#mermaid-1679502025225 .edgeLabel .label span{background:#ECECFF;}#mermaid-1679502025225 .classTitle{font-weight:bolder;}#mermaid-1679502025225 .node rect,#mermaid-1679502025225 .node circle,#mermaid-1679502025225 .node ellipse,#mermaid-1679502025225 .node polygon,#mermaid-1679502025225 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1679502025225 .divider{stroke:#9370DB;stroke:1;}#mermaid-1679502025225 g.clickable{cursor:pointer;}#mermaid-1679502025225 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-1679502025225 g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-1679502025225 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-1679502025225 .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-1679502025225 .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-1679502025225 .dashed-line{stroke-dasharray:3;}#mermaid-1679502025225 .dotted-line{stroke-dasharray:1 2;}#mermaid-1679502025225 #compositionStart,#mermaid-1679502025225 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #compositionEnd,#mermaid-1679502025225 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #dependencyStart,#mermaid-1679502025225 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #dependencyStart,#mermaid-1679502025225 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #extensionStart,#mermaid-1679502025225 .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #extensionEnd,#mermaid-1679502025225 .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #aggregationStart,#mermaid-1679502025225 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #aggregationEnd,#mermaid-1679502025225 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #lollipopStart,#mermaid-1679502025225 .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 #lollipopEnd,#mermaid-1679502025225 .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502025225 .edgeTerminals{font-size:11px;}#mermaid-1679502025225 .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-1679502025225 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart"><path d="M 1,7 L18,13 V 1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd"><path d="M 1,1 V 13 L18,7 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart"><path d="M 5,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd"><path d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart"><circle r="6" cy="7" cx="6" fill="white" stroke="black"/></marker></defs><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id1" d="M148.46037946428572,112L141.5802641369048,116.16666666666667C134.70014880952382,120.33333333333333,120.93991815476191,128.66666666666666,114.05980282738096,137C107.1796875,145.33333333333334,107.1796875,153.66666666666666,107.1796875,157.83333333333334L107.1796875,162"/><path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M320.1880580357143,112L327.06817336309524,116.16666666666667C333.9482886904762,120.33333333333333,347.7085193452381,128.66666666666666,354.58863467261904,137C361.46875,145.33333333333334,361.46875,153.66666666666666,361.46875,157.83333333333334L361.46875,162"/><path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id3" d="M107.1796875,266L107.1796875,270.1666666666667C107.1796875,274.3333333333333,107.1796875,282.6666666666667,107.1796875,291C107.1796875,299.3333333333333,107.1796875,307.6666666666667,107.1796875,311.8333333333333L107.1796875,316"/><path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M361.46875,266L361.46875,270.1666666666667C361.46875,274.3333333333333,361.46875,282.6666666666667,361.46875,291C361.46875,299.3333333333333,361.46875,307.6666666666667,361.46875,311.8333333333333L361.46875,316"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(234.32421875, 60)" id="classid-ContractKey-0" class="node default"><rect height="104" width="346.296875" y="-52" x="-173.1484375" class="outer title-state"/><line y2="-21" y1="-21" x2="173.1484375" x1="-173.1484375" class="divider"/><line y2="18" y1="18" x2="173.1484375" x1="-173.1484375" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -44.46875, -44.5)" height="19" width="88.9375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ContractKey</span></div></foreignObject><foreignObject transform="translate( -165.6484375, -9.5)" height="19" width="139.65625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">contract_key: bytes</span></div></foreignObject><foreignObject transform="translate( -165.6484375, 25.5)" height="19" width="331.296875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">hash(concat(contract_hash, parameter_hash))</span></div></foreignObject></g></g><g transform="translate(107.1796875, 214)" id="classid-ContractHash-1" class="node default"><rect height="104" width="198.359375" y="-52" x="-99.1796875" class="outer title-state"/><line y2="-21" y1="-21" x2="99.1796875" x1="-99.1796875" class="divider"/><line y2="18" y1="18" x2="99.1796875" x1="-99.1796875" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -49.1640625, -44.5)" height="19" width="98.328125" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ContractHash</span></div></foreignObject><foreignObject transform="translate( -91.6796875, -9.5)" height="19" width="154.03125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">contract_hash : bytes</span></div></foreignObject><foreignObject transform="translate( -91.6796875, 25.5)" height="19" width="183.359375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">hash(Contract.as_bytes())</span></div></foreignObject></g></g><g transform="translate(361.46875, 214)" id="classid-ParameterHash-2" class="node default"><rect height="104" width="210.21875" y="-52" x="-105.109375" class="outer title-state"/><line y2="-21" y1="-21" x2="105.109375" x1="-105.109375" class="divider"/><line y2="18" y1="18" x2="105.109375" x1="-105.109375" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -55.9375, -44.5)" height="19" width="111.875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ParameterHash</span></div></foreignObject><foreignObject transform="translate( -97.609375, -9.5)" height="19" width="117.046875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">parameter_hash</span></div></foreignObject><foreignObject transform="translate( -97.609375, 25.5)" height="19" width="195.21875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">hash(Paramters.as_bytes())</span></div></foreignObject></g></g><g transform="translate(107.1796875, 368)" id="classid-Contract-3" class="node default"><rect height="104" width="130.3125" y="-52" x="-65.15625" class="outer title-state"/><line y2="-21" y1="-21" x2="65.15625" x1="-65.15625" class="divider"/><line y2="18" y1="18" x2="65.15625" x1="-65.15625" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -31.0546875, -44.5)" height="19" width="62.109375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Contract</span></div></foreignObject><foreignObject transform="translate( -57.65625, -9.5)" height="19" width="115.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Compiled Wasm</span></div></foreignObject><foreignObject transform="translate( -57.65625, 25.5)" height="19" width="73.4375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">as_bytes()</span></div></foreignObject></g></g><g transform="translate(361.46875, 368)" id="classid-Parameters-4" class="node default"><rect height="104" width="207.71875" y="-52" x="-103.859375" class="outer title-state"/><line y2="-21" y1="-21" x2="103.859375" x1="-103.859375" class="divider"/><line y2="18" y1="18" x2="103.859375" x1="-103.859375" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -41.59375, -44.5)" height="19" width="83.1875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Parameters</span></div></foreignObject><foreignObject transform="translate( -96.359375, -9.5)" height="19" width="192.71875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Structured Parameter Data</span></div></foreignObject><foreignObject transform="translate( -96.359375, 25.5)" height="19" width="73.4375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">as_bytes()</span></div></foreignObject></g></g></g></g></g></svg></pre>
+
<pre><svg aria-roledescription="classDiagram" viewBox="0 0 474.578125 428" height="428" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="474.578125" id="mermaid-1679502110555"><style>#mermaid-1679502110555{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-1679502110555 .error-icon{fill:#552222;}#mermaid-1679502110555 .error-text{fill:#552222;stroke:#552222;}#mermaid-1679502110555 .edge-thickness-normal{stroke-width:2px;}#mermaid-1679502110555 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1679502110555 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1679502110555 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1679502110555 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1679502110555 .marker{fill:#333333;stroke:#333333;}#mermaid-1679502110555 .marker.cross{stroke:#333333;}#mermaid-1679502110555 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-1679502110555 g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-1679502110555 g.classGroup text .title{font-weight:bolder;}#mermaid-1679502110555 .nodeLabel,#mermaid-1679502110555 .edgeLabel{color:#131300;}#mermaid-1679502110555 .edgeLabel .label rect{fill:#ECECFF;}#mermaid-1679502110555 .label text{fill:#131300;}#mermaid-1679502110555 .edgeLabel .label span{background:#ECECFF;}#mermaid-1679502110555 .classTitle{font-weight:bolder;}#mermaid-1679502110555 .node rect,#mermaid-1679502110555 .node circle,#mermaid-1679502110555 .node ellipse,#mermaid-1679502110555 .node polygon,#mermaid-1679502110555 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1679502110555 .divider{stroke:#9370DB;stroke:1;}#mermaid-1679502110555 g.clickable{cursor:pointer;}#mermaid-1679502110555 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-1679502110555 g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-1679502110555 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-1679502110555 .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-1679502110555 .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-1679502110555 .dashed-line{stroke-dasharray:3;}#mermaid-1679502110555 .dotted-line{stroke-dasharray:1 2;}#mermaid-1679502110555 #compositionStart,#mermaid-1679502110555 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #compositionEnd,#mermaid-1679502110555 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #dependencyStart,#mermaid-1679502110555 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #dependencyStart,#mermaid-1679502110555 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #extensionStart,#mermaid-1679502110555 .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #extensionEnd,#mermaid-1679502110555 .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #aggregationStart,#mermaid-1679502110555 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #aggregationEnd,#mermaid-1679502110555 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #lollipopStart,#mermaid-1679502110555 .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 #lollipopEnd,#mermaid-1679502110555 .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1679502110555 .edgeTerminals{font-size:11px;}#mermaid-1679502110555 .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-1679502110555 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart"><path d="M 1,7 L18,13 V 1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd"><path d="M 1,1 V 13 L18,7 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd"><path d="M 18,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart"><path d="M 5,7 L9,13 L1,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd"><path d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart"><circle r="6" cy="7" cx="6" fill="white" stroke="black"/></marker></defs><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id1" d="M148.46037946428572,112L141.5802641369048,116.16666666666667C134.70014880952382,120.33333333333333,120.93991815476191,128.66666666666666,114.05980282738096,137C107.1796875,145.33333333333334,107.1796875,153.66666666666666,107.1796875,157.83333333333334L107.1796875,162"/><path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id2" d="M320.1880580357143,112L327.06817336309524,116.16666666666667C333.9482886904762,120.33333333333333,347.7085193452381,128.66666666666666,354.58863467261904,137C361.46875,145.33333333333334,361.46875,153.66666666666666,361.46875,157.83333333333334L361.46875,162"/><path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id3" d="M107.1796875,266L107.1796875,270.1666666666667C107.1796875,274.3333333333333,107.1796875,282.6666666666667,107.1796875,291C107.1796875,299.3333333333333,107.1796875,307.6666666666667,107.1796875,311.8333333333333L107.1796875,316"/><path marker-start="url(#classDiagram-extensionStart)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M361.46875,266L361.46875,270.1666666666667C361.46875,274.3333333333333,361.46875,282.6666666666667,361.46875,291C361.46875,299.3333333333333,361.46875,307.6666666666667,361.46875,311.8333333333333L361.46875,316"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(234.32421875, 60)" id="classid-ContractKey-0" class="node default"><rect height="104" width="346.296875" y="-52" x="-173.1484375" class="outer title-state"/><line y2="-21" y1="-21" x2="173.1484375" x1="-173.1484375" class="divider"/><line y2="18" y1="18" x2="173.1484375" x1="-173.1484375" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -44.46875, -44.5)" height="19" width="88.9375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ContractKey</span></div></foreignObject><foreignObject transform="translate( -165.6484375, -9.5)" height="19" width="139.65625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">contract_key: bytes</span></div></foreignObject><foreignObject transform="translate( -165.6484375, 25.5)" height="19" width="331.296875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">hash(concat(contract_hash, parameter_hash))</span></div></foreignObject></g></g><g transform="translate(107.1796875, 214)" id="classid-ContractHash-1" class="node default"><rect height="104" width="198.359375" y="-52" x="-99.1796875" class="outer title-state"/><line y2="-21" y1="-21" x2="99.1796875" x1="-99.1796875" class="divider"/><line y2="18" y1="18" x2="99.1796875" x1="-99.1796875" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -49.1640625, -44.5)" height="19" width="98.328125" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ContractHash</span></div></foreignObject><foreignObject transform="translate( -91.6796875, -9.5)" height="19" width="154.03125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">contract_hash : bytes</span></div></foreignObject><foreignObject transform="translate( -91.6796875, 25.5)" height="19" width="183.359375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">hash(Contract.as_bytes())</span></div></foreignObject></g></g><g transform="translate(361.46875, 214)" id="classid-ParameterHash-2" class="node default"><rect height="104" width="210.21875" y="-52" x="-105.109375" class="outer title-state"/><line y2="-21" y1="-21" x2="105.109375" x1="-105.109375" class="divider"/><line y2="18" y1="18" x2="105.109375" x1="-105.109375" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -55.9375, -44.5)" height="19" width="111.875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ParameterHash</span></div></foreignObject><foreignObject transform="translate( -97.609375, -9.5)" height="19" width="117.046875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">parameter_hash</span></div></foreignObject><foreignObject transform="translate( -97.609375, 25.5)" height="19" width="195.21875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">hash(Paramters.as_bytes())</span></div></foreignObject></g></g><g transform="translate(107.1796875, 368)" id="classid-Contract-3" class="node default"><rect height="104" width="130.3125" y="-52" x="-65.15625" class="outer title-state"/><line y2="-21" y1="-21" x2="65.15625" x1="-65.15625" class="divider"/><line y2="18" y1="18" x2="65.15625" x1="-65.15625" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -31.0546875, -44.5)" height="19" width="62.109375" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Contract</span></div></foreignObject><foreignObject transform="translate( -57.65625, -9.5)" height="19" width="115.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Compiled Wasm</span></div></foreignObject><foreignObject transform="translate( -57.65625, 25.5)" height="19" width="73.4375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">as_bytes()</span></div></foreignObject></g></g><g transform="translate(361.46875, 368)" id="classid-Parameters-4" class="node default"><rect height="104" width="207.71875" y="-52" x="-103.859375" class="outer title-state"/><line y2="-21" y1="-21" x2="103.859375" x1="-103.859375" class="divider"/><line y2="18" y1="18" x2="103.859375" x1="-103.859375" class="divider"/><g class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"></span></div></foreignObject><foreignObject transform="translate( -41.59375, -44.5)" height="19" width="83.1875" class="classTitle"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Parameters</span></div></foreignObject><foreignObject transform="translate( -96.359375, -9.5)" height="19" width="192.71875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Structured Parameter Data</span></div></foreignObject><foreignObject transform="translate( -96.359375, 25.5)" height="19" width="73.4375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">as_bytes()</span></div></foreignObject></g></g></g></g></g></svg></pre>
<div style="background-color:white">
-
<pre><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="335" height="98" viewBox="126 74 335 98" version="1.1"><defs><marker id="sequenceflow-end-white-hsl_225_10_15_-13hqaob3ufniovyljey3d8jg2" viewBox="0 0 20 20" refX="11" refY="10" markerWidth="10" markerHeight="10" orient="auto"><path d="M 1 5 L 11 10 L 1 15 Z" style="fill: rgb(34, 36, 42); stroke-width: 1px; stroke-linecap: round; stroke-dasharray: 10000, 1; stroke: rgb(34, 36, 42);"/></marker></defs><g class="djs-group"><g class="djs-element djs-shape" data-element-id="StartEvent_1y45yut" style="display: block;" transform="matrix(1 0 0 1 152 102)"><g class="djs-visual"><circle cx="18" cy="18" r="18" style="stroke: rgb(34, 36, 42); stroke-width: 2px; fill: white; fill-opacity: 0.95;"/></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="36" height="36" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="48" height="48" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-shape" data-element-id="StartEvent_1y45yut_label" style="display: block;" transform="matrix(1 0 0 1 132 145)"><g class="djs-visual"><text lineHeight="1.2" class="djs-label" style="font-family: Arial, sans-serif; font-size: 11px; font-weight: normal; fill: rgb(34, 36, 42);"><tspan x="0" y="9.899999999999999">hunger noticed</tspan></text></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="78" height="14" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="90" height="26" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-shape" data-element-id="Task_1hcentk" style="display: block;" transform="matrix(1 0 0 1 240 80)"><g class="djs-visual"><rect x="0" y="0" width="100" height="80" rx="10" ry="10" style="stroke: rgb(34, 36, 42); stroke-width: 2px; fill: white; fill-opacity: 0.95;"/><text lineHeight="1.2" class="djs-label" style="font-family: Arial, sans-serif; font-size: 12px; font-weight: normal; fill: rgb(34, 36, 42);"><tspan x="11.0595703125" y="43.599999999999994">choose recipe</tspan></text></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="100" height="80" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="112" height="92" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-shape" data-element-id="ExclusiveGateway_15hu1pt" style="display: block;" transform="matrix(1 0 0 1 395 95)"><g class="djs-visual"><polygon points="25,0 50,25 25,50 0,25" style="stroke: rgb(34, 36, 42); stroke-width: 2px; fill: white; fill-opacity: 0.95;"/><path d="m 16,15 7.42857142857143,9.714285714285715 -7.42857142857143,9.714285714285715 3.428571428571429,0 5.714285714285715,-7.464228571428572 5.714285714285715,7.464228571428572 3.428571428571429,0 -7.42857142857143,-9.714285714285715 7.42857142857143,-9.714285714285715 -3.428571428571429,0 -5.714285714285715,7.464228571428572 -5.714285714285715,-7.464228571428572 -3.428571428571429,0 z" style="fill: rgb(34, 36, 42); stroke-width: 1px; stroke: rgb(34, 36, 42);"/></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="50" height="50" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="62" height="62" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-shape" data-element-id="ExclusiveGateway_15hu1pt_label" style="display: block;" transform="matrix(1 0 0 1 387 152)"><g class="djs-visual"><text lineHeight="1.2" class="djs-label" style="font-family: Arial, sans-serif; font-size: 11px; font-weight: normal; fill: rgb(34, 36, 42);"><tspan x="0" y="9.899999999999999">desired dish?</tspan></text></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="68" height="14" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="80" height="26" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-connection" data-element-id="SequenceFlow_0h21x7r" style="display: block;"><g class="djs-visual"><path d="m 188,120L240,120 " style="fill: none; stroke-width: 2px; stroke: rgb(34, 36, 42); stroke-linejoin: round; marker-end: url('#sequenceflow-end-white-hsl_225_10_15_-13hqaob3ufniovyljey3d8jg2');"/></g><polyline points="188,120 240,120 " class="djs-hit djs-hit-stroke" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="182" y="114" rx="3" width="64" height="12" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-connection" data-element-id="SequenceFlow_0wnb4ke" style="display: block;"><g class="djs-visual"><path d="m 340,120L395,120 " style="fill: none; stroke-width: 2px; stroke: rgb(34, 36, 42); stroke-linejoin: round; marker-end: url('#sequenceflow-end-white-hsl_225_10_15_-13hqaob3ufniovyljey3d8jg2');"/></g><polyline points="340,120 395,120 " class="djs-hit djs-hit-stroke" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="334" y="114" rx="3" width="67" height="12" class="djs-outline" style="fill: none;"/></g></g></svg></pre>
+
<pre><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="335" height="98" viewBox="126 74 335 98" version="1.1"><defs><marker id="sequenceflow-end-white-hsl_225_10_15_-ajpebtfw7qwsiwi99k9k3cc0e" viewBox="0 0 20 20" refX="11" refY="10" markerWidth="10" markerHeight="10" orient="auto"><path d="M 1 5 L 11 10 L 1 15 Z" style="fill: rgb(34, 36, 42); stroke-width: 1px; stroke-linecap: round; stroke-dasharray: 10000, 1; stroke: rgb(34, 36, 42);"/></marker></defs><g class="djs-group"><g class="djs-element djs-shape" data-element-id="StartEvent_1y45yut" style="display: block;" transform="matrix(1 0 0 1 152 102)"><g class="djs-visual"><circle cx="18" cy="18" r="18" style="stroke: rgb(34, 36, 42); stroke-width: 2px; fill: white; fill-opacity: 0.95;"/></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="36" height="36" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="48" height="48" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-shape" data-element-id="StartEvent_1y45yut_label" style="display: block;" transform="matrix(1 0 0 1 132 145)"><g class="djs-visual"><text lineHeight="1.2" class="djs-label" style="font-family: Arial, sans-serif; font-size: 11px; font-weight: normal; fill: rgb(34, 36, 42);"><tspan x="0" y="9.899999999999999">hunger noticed</tspan></text></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="78" height="14" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="90" height="26" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-shape" data-element-id="Task_1hcentk" style="display: block;" transform="matrix(1 0 0 1 240 80)"><g class="djs-visual"><rect x="0" y="0" width="100" height="80" rx="10" ry="10" style="stroke: rgb(34, 36, 42); stroke-width: 2px; fill: white; fill-opacity: 0.95;"/><text lineHeight="1.2" class="djs-label" style="font-family: Arial, sans-serif; font-size: 12px; font-weight: normal; fill: rgb(34, 36, 42);"><tspan x="11.0595703125" y="43.599999999999994">choose recipe</tspan></text></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="100" height="80" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="112" height="92" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-shape" data-element-id="ExclusiveGateway_15hu1pt" style="display: block;" transform="matrix(1 0 0 1 395 95)"><g class="djs-visual"><polygon points="25,0 50,25 25,50 0,25" style="stroke: rgb(34, 36, 42); stroke-width: 2px; fill: white; fill-opacity: 0.95;"/><path d="m 16,15 7.42857142857143,9.714285714285715 -7.42857142857143,9.714285714285715 3.428571428571429,0 5.714285714285715,-7.464228571428572 5.714285714285715,7.464228571428572 3.428571428571429,0 -7.42857142857143,-9.714285714285715 7.42857142857143,-9.714285714285715 -3.428571428571429,0 -5.714285714285715,7.464228571428572 -5.714285714285715,-7.464228571428572 -3.428571428571429,0 z" style="fill: rgb(34, 36, 42); stroke-width: 1px; stroke: rgb(34, 36, 42);"/></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="50" height="50" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="62" height="62" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-shape" data-element-id="ExclusiveGateway_15hu1pt_label" style="display: block;" transform="matrix(1 0 0 1 387 152)"><g class="djs-visual"><text lineHeight="1.2" class="djs-label" style="font-family: Arial, sans-serif; font-size: 11px; font-weight: normal; fill: rgb(34, 36, 42);"><tspan x="0" y="9.899999999999999">desired dish?</tspan></text></g><rect class="djs-hit djs-hit-all" x="0" y="0" width="68" height="14" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="-6" y="-6" rx="3" width="80" height="26" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-connection" data-element-id="SequenceFlow_0h21x7r" style="display: block;"><g class="djs-visual"><path d="m 188,120L240,120 " style="fill: none; stroke-width: 2px; stroke: rgb(34, 36, 42); stroke-linejoin: round; marker-end: url('#sequenceflow-end-white-hsl_225_10_15_-ajpebtfw7qwsiwi99k9k3cc0e');"/></g><polyline points="188,120 240,120 " class="djs-hit djs-hit-stroke" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="182" y="114" rx="3" width="64" height="12" class="djs-outline" style="fill: none;"/></g></g><g class="djs-group"><g class="djs-element djs-connection" data-element-id="SequenceFlow_0wnb4ke" style="display: block;"><g class="djs-visual"><path d="m 340,120L395,120 " style="fill: none; stroke-width: 2px; stroke: rgb(34, 36, 42); stroke-linejoin: round; marker-end: url('#sequenceflow-end-white-hsl_225_10_15_-ajpebtfw7qwsiwi99k9k3cc0e');"/></g><polyline points="340,120 395,120 " class="djs-hit djs-hit-stroke" style="fill: none; stroke-opacity: 0; stroke: white; stroke-width: 15px;"/><rect x="334" y="114" rx="3" width="67" height="12" class="djs-outline" style="fill: none;"/></g></g></svg></pre>
<h3 id="integration-to-the-catalyst-unified-backend"><a class="header" href="#integration-to-the-catalyst-unified-backend">Integration to the Catalyst Unified Backend</a></h3>
<p>The Cardano-Catalyst bridge is an essential and integral part of the Catalyst Unified backend.
<p><a class="admonition-anchor-link" href="99_example_enhanced_markup.html#admonition-dont-click-me"></a></p>
-
<pre><svg aria-roledescription="flowchart-v2" viewBox="-8 -8 457.3828125 473.359375" height="473.359375" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="457.3828125" id="mermaid-1679502025208"><style>#mermaid-1679502025208{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#000000;}#mermaid-1679502025208 .error-icon{fill:#552222;}#mermaid-1679502025208 .error-text{fill:#552222;stroke:#552222;}#mermaid-1679502025208 .edge-thickness-normal{stroke-width:2px;}#mermaid-1679502025208 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1679502025208 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1679502025208 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1679502025208 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1679502025208 .marker{fill:#000000;stroke:#000000;}#mermaid-1679502025208 .marker.cross{stroke:#000000;}#mermaid-1679502025208 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-1679502025208 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#000000;}#mermaid-1679502025208 .cluster-label text{fill:#333;}#mermaid-1679502025208 .cluster-label span{color:#333;}#mermaid-1679502025208 .label text,#mermaid-1679502025208 span{fill:#000000;color:#000000;}#mermaid-1679502025208 .node rect,#mermaid-1679502025208 .node circle,#mermaid-1679502025208 .node ellipse,#mermaid-1679502025208 .node polygon,#mermaid-1679502025208 .node path{fill:#cde498;stroke:#13540c;stroke-width:1px;}#mermaid-1679502025208 .node .label{text-align:center;}#mermaid-1679502025208 .node.clickable{cursor:pointer;}#mermaid-1679502025208 .arrowheadPath{fill:green;}#mermaid-1679502025208 .edgePath .path{stroke:#000000;stroke-width:2.0px;}#mermaid-1679502025208 .flowchart-link{stroke:#000000;fill:none;}#mermaid-1679502025208 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1679502025208 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1679502025208 .cluster rect{fill:#cdffb2;stroke:#6eaa49;stroke-width:1px;}#mermaid-1679502025208 .cluster text{fill:#333;}#mermaid-1679502025208 .cluster span{color:#333;}#mermaid-1679502025208 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(78.1578947368, 58.4615384615%, 84.5098039216%);border:1px solid #6eaa49;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1679502025208 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#mermaid-1679502025208 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="10" viewBox="0 0 10 10" class="marker flowchart" id="flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="0" viewBox="0 0 10 10" class="marker flowchart" id="flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-B" id="L-A-B-0" d="M231.453125,34L231.453125,39.75C231.453125,45.5,231.453125,57,231.453125,68.5C231.453125,80,231.453125,91.5,231.453125,97.25L231.453125,103"/><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-C" id="L-B-C-0" d="M231.453125,137L231.453125,141.16666666666666C231.453125,145.33333333333334,231.453125,153.66666666666666,231.53645833333334,162.08333333333334C231.61979166666666,170.5,231.78645833333334,179,231.86979166666666,183.25L231.953125,187.5"/><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-D" id="L-C-D-0" d="M177.11858107878342,319.02483107878345L158.00767173231952,332.24725506565284C138.89676238585562,345.4696790525223,100.67494369292781,371.9145270262611,81.56403434646391,389.30361767979724C62.453125,406.6927083333333,62.453125,415.0260416666667,62.453125,419.1927083333333L62.453125,423.359375"/><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-E" id="L-C-E-0" d="M231.953125,373.859375L231.86979166666666,377.9427083333333C231.78645833333334,382.0260416666667,231.61979166666666,390.1927083333333,231.53645833333334,398.4427083333333C231.453125,406.6927083333333,231.453125,415.0260416666667,231.453125,419.1927083333333L231.453125,423.359375"/><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-F" id="L-C-F-0" d="M284.68721328012913,321.12528671987087L301.4958548167743,333.9976347665591C318.30449635341944,346.8699828132473,351.9217794267097,372.6146789066236,368.73042096335485,389.65369361997847C385.5390625,406.6927083333333,385.5390625,415.0260416666667,385.5390625,419.1927083333333L385.5390625,423.359375"/></g><g class="edgeLabels"><g transform="translate(231.453125, 68.5)" class="edgeLabel"><g transform="translate(-31.7109375, -9.5)" class="label"><foreignObject height="19" width="63.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">Can help</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(231.453125, 17)" id="flowchart-A-20" class="node default default"><rect height="34" width="68.6875" y="-17" x="-34.34375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-26.84375, -9.5)" style="" class="label"><foreignObject height="19" width="53.6875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Anyone</span></div></foreignObject></g></g><a transform="translate(231.453125, 120)" xlink:href="https://github.com/input-output-hk/catalyst-core"><g id="flowchart-B-21" class="node default clickable"><rect height="34" width="419.859375" y="-17" x="-209.9296875" ry="5" rx="5" style="" class="basic label-container"/><g transform="translate(-202.4296875, -9.5)" style="" class="label"><foreignObject height="19" width="404.859375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Go to https://github.com/input-output-hk/catalyst-core</span></div></foreignObject></g></g></a><g transform="translate(231.453125, 280.1796875)" id="flowchart-C-23" class="node default default"><polygon style="" transform="translate(-93.1796875,93.1796875)" class="label-container" points="93.1796875,0 186.359375,-93.1796875 93.1796875,-186.359375 0,-93.1796875"/><g transform="translate(-68.6796875, -9.5)" style="" class="label"><foreignObject height="19" width="137.359375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">How to contribute?</span></div></foreignObject></g></g><g transform="translate(62.453125, 440.359375)" id="flowchart-D-25" class="node default default"><rect height="34" width="124.90625" y="-17" x="-62.453125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-54.953125, -9.5)" style="" class="label"><foreignObject height="19" width="109.90625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Reporting bugs</span></div></foreignObject></g></g><g transform="translate(231.453125, 440.359375)" id="flowchart-E-27" class="node default default"><rect height="34" width="113.09375" y="-17" x="-56.546875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-49.046875, -9.5)" style="" class="label"><foreignObject height="19" width="98.09375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Sharing ideas</span></div></foreignObject></g></g><g transform="translate(385.5390625, 440.359375)" id="flowchart-F-29" class="node default default"><rect height="34" width="95.078125" y="-17" x="-47.5390625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-40.0390625, -9.5)" style="" class="label"><foreignObject height="19" width="80.078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Advocating</span></div></foreignObject></g></g></g></g></g></svg></pre>
+
<pre><svg aria-roledescription="flowchart-v2" viewBox="-8 -8 457.3828125 473.359375" height="473.359375" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="457.3828125" id="mermaid-1679502110507"><style>#mermaid-1679502110507{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#000000;}#mermaid-1679502110507 .error-icon{fill:#552222;}#mermaid-1679502110507 .error-text{fill:#552222;stroke:#552222;}#mermaid-1679502110507 .edge-thickness-normal{stroke-width:2px;}#mermaid-1679502110507 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1679502110507 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1679502110507 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1679502110507 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1679502110507 .marker{fill:#000000;stroke:#000000;}#mermaid-1679502110507 .marker.cross{stroke:#000000;}#mermaid-1679502110507 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-1679502110507 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#000000;}#mermaid-1679502110507 .cluster-label text{fill:#333;}#mermaid-1679502110507 .cluster-label span{color:#333;}#mermaid-1679502110507 .label text,#mermaid-1679502110507 span{fill:#000000;color:#000000;}#mermaid-1679502110507 .node rect,#mermaid-1679502110507 .node circle,#mermaid-1679502110507 .node ellipse,#mermaid-1679502110507 .node polygon,#mermaid-1679502110507 .node path{fill:#cde498;stroke:#13540c;stroke-width:1px;}#mermaid-1679502110507 .node .label{text-align:center;}#mermaid-1679502110507 .node.clickable{cursor:pointer;}#mermaid-1679502110507 .arrowheadPath{fill:green;}#mermaid-1679502110507 .edgePath .path{stroke:#000000;stroke-width:2.0px;}#mermaid-1679502110507 .flowchart-link{stroke:#000000;fill:none;}#mermaid-1679502110507 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1679502110507 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1679502110507 .cluster rect{fill:#cdffb2;stroke:#6eaa49;stroke-width:1px;}#mermaid-1679502110507 .cluster text{fill:#333;}#mermaid-1679502110507 .cluster span{color:#333;}#mermaid-1679502110507 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(78.1578947368, 58.4615384615%, 84.5098039216%);border:1px solid #6eaa49;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1679502110507 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#mermaid-1679502110507 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="10" viewBox="0 0 10 10" class="marker flowchart" id="flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="0" viewBox="0 0 10 10" class="marker flowchart" id="flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-B" id="L-A-B-0" d="M231.453125,34L231.453125,39.75C231.453125,45.5,231.453125,57,231.453125,68.5C231.453125,80,231.453125,91.5,231.453125,97.25L231.453125,103"/><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-C" id="L-B-C-0" d="M231.453125,137L231.453125,141.16666666666666C231.453125,145.33333333333334,231.453125,153.66666666666666,231.53645833333334,162.08333333333334C231.61979166666666,170.5,231.78645833333334,179,231.86979166666666,183.25L231.953125,187.5"/><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-D" id="L-C-D-0" d="M177.11858107878342,319.02483107878345L158.00767173231952,332.24725506565284C138.89676238585562,345.4696790525223,100.67494369292781,371.9145270262611,81.56403434646391,389.30361767979724C62.453125,406.6927083333333,62.453125,415.0260416666667,62.453125,419.1927083333333L62.453125,423.359375"/><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-E" id="L-C-E-0" d="M231.953125,373.859375L231.86979166666666,377.9427083333333C231.78645833333334,382.0260416666667,231.61979166666666,390.1927083333333,231.53645833333334,398.4427083333333C231.453125,406.6927083333333,231.453125,415.0260416666667,231.453125,419.1927083333333L231.453125,423.359375"/><path marker-end="url(#flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-F" id="L-C-F-0" d="M284.68721328012913,321.12528671987087L301.4958548167743,333.9976347665591C318.30449635341944,346.8699828132473,351.9217794267097,372.6146789066236,368.73042096335485,389.65369361997847C385.5390625,406.6927083333333,385.5390625,415.0260416666667,385.5390625,419.1927083333333L385.5390625,423.359375"/></g><g class="edgeLabels"><g transform="translate(231.453125, 68.5)" class="edgeLabel"><g transform="translate(-31.7109375, -9.5)" class="label"><foreignObject height="19" width="63.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">Can help</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(231.453125, 17)" id="flowchart-A-20" class="node default default"><rect height="34" width="68.6875" y="-17" x="-34.34375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-26.84375, -9.5)" style="" class="label"><foreignObject height="19" width="53.6875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Anyone</span></div></foreignObject></g></g><a transform="translate(231.453125, 120)" xlink:href="https://github.com/input-output-hk/catalyst-core"><g id="flowchart-B-21" class="node default clickable"><rect height="34" width="419.859375" y="-17" x="-209.9296875" ry="5" rx="5" style="" class="basic label-container"/><g transform="translate(-202.4296875, -9.5)" style="" class="label"><foreignObject height="19" width="404.859375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Go to https://github.com/input-output-hk/catalyst-core</span></div></foreignObject></g></g></a><g transform="translate(231.453125, 280.1796875)" id="flowchart-C-23" class="node default default"><polygon style="" transform="translate(-93.1796875,93.1796875)" class="label-container" points="93.1796875,0 186.359375,-93.1796875 93.1796875,-186.359375 0,-93.1796875"/><g transform="translate(-68.6796875, -9.5)" style="" class="label"><foreignObject height="19" width="137.359375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">How to contribute?</span></div></foreignObject></g></g><g transform="translate(62.453125, 440.359375)" id="flowchart-D-25" class="node default default"><rect height="34" width="124.90625" y="-17" x="-62.453125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-54.953125, -9.5)" style="" class="label"><foreignObject height="19" width="109.90625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Reporting bugs</span></div></foreignObject></g></g><g transform="translate(231.453125, 440.359375)" id="flowchart-E-27" class="node default default"><rect height="34" width="113.09375" y="-17" x="-56.546875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-49.046875, -9.5)" style="" class="label"><foreignObject height="19" width="98.09375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Sharing ideas</span></div></foreignObject></g></g><g transform="translate(385.5390625, 440.359375)" id="flowchart-F-29" class="node default default"><rect height="34" width="95.078125" y="-17" x="-47.5390625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-40.0390625, -9.5)" style="" class="label"><foreignObject height="19" width="80.078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Advocating</span></div></foreignObject></g></g></g></g></g></svg></pre>
<footer id="open-on-gh">Found a bug? <a href="https://github.com/input-output-hk/catalyst-core/edit/main/book/src/99_example_enhanced_markup.md">Edit this page on GitHub.</a></footer><div style="break-before: page; page-break-before: always;"></div><h1 id="suffix"><a class="header" href="#suffix">Suffix</a></h1>