summaryrefslogtreecommitdiffstats
path: root/docs/protocol.svg
diff options
context:
space:
mode:
Diffstat (limited to 'docs/protocol.svg')
-rw-r--r--docs/protocol.svg827
1 files changed, 440 insertions, 387 deletions
diff --git a/docs/protocol.svg b/docs/protocol.svg
index 20a9119..b029409 100644
--- a/docs/protocol.svg
+++ b/docs/protocol.svg
@@ -4,489 +4,542 @@
<!-- Generated by graphviz version 14.1.3 (20260303.0454)
-->
<!-- Pages: 1 -->
-<svg width="1130pt" height="920pt"
- viewBox="0.00 0.00 1130.00 920.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 916)">
-<polygon fill="white" stroke="none" points="-4,4 -4,-916 1125.75,-916 1125.75,4 -4,4"/>
+<svg width="1173pt" height="1045pt"
+ viewBox="0.00 0.00 1173.00 1045.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1041)">
+<polygon fill="white" stroke="none" points="-4,4 -4,-1041 1168.5,-1041 1168.5,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster__solec</title>
-<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="8,-8 8,-904 1113.75,-904 1113.75,-8 8,-8"/>
-<text xml:space="preserve" text-anchor="middle" x="560.88" y="-886.7" font-family="Times,serif" font-size="14.00">Solec</text>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="8,-8 8,-1029 1156.5,-1029 1156.5,-8 8,-8"/>
+<text xml:space="preserve" text-anchor="middle" x="582.25" y="-1011.7" font-family="Times,serif" font-size="14.00">Solec</text>
</g>
<g id="clust2" class="cluster">
-<title>cluster__auth</title>
-<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="621.25,-755 621.25,-871 780,-871 780,-755 621.25,-755"/>
-<text xml:space="preserve" text-anchor="middle" x="700.62" y="-853.7" font-family="Times,serif" font-size="14.00">Solec::Auth</text>
+<title>cluster__error</title>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="607,-902 607,-996 845.25,-996 845.25,-902 607,-902"/>
+<text xml:space="preserve" text-anchor="middle" x="726.12" y="-978.7" font-family="Times,serif" font-size="14.00">Solec::Error</text>
</g>
<g id="clust3" class="cluster">
-<title>cluster__error</title>
-<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="581.5,-653 581.5,-747 819.75,-747 819.75,-653 581.5,-653"/>
-<text xml:space="preserve" text-anchor="middle" x="700.62" y="-729.7" font-family="Times,serif" font-size="14.00">Solec::Error</text>
+<title>cluster__handshake</title>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="589.75,-755 589.75,-894 862.5,-894 862.5,-755 589.75,-755"/>
+<text xml:space="preserve" text-anchor="middle" x="726.12" y="-876.7" font-family="Times,serif" font-size="14.00">Solec::Handshake</text>
</g>
<g id="clust4" class="cluster">
-<title>cluster__handshake</title>
-<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="595,-529 595,-645 806.25,-645 806.25,-529 595,-529"/>
-<text xml:space="preserve" text-anchor="middle" x="700.62" y="-627.7" font-family="Times,serif" font-size="14.00">Solec::Handshake</text>
+<title>cluster__message</title>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="632.88,-586 632.88,-747 819.38,-747 819.38,-586 632.88,-586"/>
+<text xml:space="preserve" text-anchor="middle" x="726.12" y="-729.7" font-family="Times,serif" font-size="14.00">Solec::Message</text>
</g>
<g id="clust5" class="cluster">
-<title>cluster__message</title>
-<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="607.38,-360 607.38,-521 793.88,-521 793.88,-360 607.38,-360"/>
-<text xml:space="preserve" text-anchor="middle" x="700.62" y="-503.7" font-family="Times,serif" font-size="14.00">Solec::Message</text>
+<title>cluster__server_auth</title>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="646.75,-484 646.75,-578 805.5,-578 805.5,-484 646.75,-484"/>
+<text xml:space="preserve" text-anchor="middle" x="726.12" y="-560.7" font-family="Times,serif" font-size="14.00">Solec::ServerAuth</text>
</g>
<g id="clust6" class="cluster">
<title>cluster__string</title>
-<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="839.75,-359 839.75,-493 1105.75,-493 1105.75,-359 839.75,-359"/>
-<text xml:space="preserve" text-anchor="middle" x="972.75" y="-475.7" font-family="Times,serif" font-size="14.00">Solec::String</text>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="882.5,-229 882.5,-363 1148.5,-363 1148.5,-229 882.5,-229"/>
+<text xml:space="preserve" text-anchor="middle" x="1015.5" y="-345.7" font-family="Times,serif" font-size="14.00">Solec::String</text>
</g>
<g id="clust7" class="cluster">
<title>cluster__success</title>
-<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="635.88,-275 635.88,-352 765.38,-352 765.38,-275 635.88,-275"/>
-<text xml:space="preserve" text-anchor="middle" x="700.62" y="-334.7" font-family="Times,serif" font-size="14.00">Solec::Success</text>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="661.38,-399 661.38,-476 790.88,-476 790.88,-399 661.38,-399"/>
+<text xml:space="preserve" text-anchor="middle" x="726.12" y="-458.7" font-family="Times,serif" font-size="14.00">Solec::Success</text>
</g>
<g id="clust8" class="cluster">
<title>cluster__test</title>
-<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="620.5,-16 620.5,-267 780.75,-267 780.75,-16 620.5,-16"/>
-<text xml:space="preserve" text-anchor="middle" x="700.62" y="-249.7" font-family="Times,serif" font-size="14.00">Solec::Test</text>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="646,-140 646,-391 806.25,-391 806.25,-140 646,-140"/>
+<text xml:space="preserve" text-anchor="middle" x="726.12" y="-373.7" font-family="Times,serif" font-size="14.00">Solec::Test</text>
+</g>
+<g id="clust9" class="cluster">
+<title>cluster__user_auth</title>
+<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="646.75,-16 646.75,-132 805.5,-132 805.5,-16 646.75,-16"/>
+<text xml:space="preserve" text-anchor="middle" x="726.12" y="-114.7" font-family="Times,serif" font-size="14.00">Solec::UserAuth</text>
</g>
<!-- solec__seq -->
<g id="node1" class="node">
<title>solec__seq</title>
-<polygon fill="#e0ffe0" stroke="none" points="24,-567.5 24,-590 48.75,-590 48.75,-567.5 24,-567.5"/>
-<polygon fill="none" stroke="black" points="24,-567.5 24,-590 48.75,-590 48.75,-567.5 24,-567.5"/>
-<text xml:space="preserve" text-anchor="start" x="27" y="-574.25" font-family="Times,serif" font-size="14.00">pos</text>
-<polygon fill="#e0ffe0" stroke="none" points="48.75,-567.5 48.75,-590 75.75,-590 75.75,-567.5 48.75,-567.5"/>
-<polygon fill="none" stroke="black" points="48.75,-567.5 48.75,-590 75.75,-590 75.75,-567.5 48.75,-567.5"/>
-<text xml:space="preserve" text-anchor="start" x="51.75" y="-574.25" font-family="Times,serif" font-size="14.00">size</text>
-<polygon fill="#e0ffe0" stroke="none" points="75.75,-567.5 75.75,-590 202.5,-590 202.5,-567.5 75.75,-567.5"/>
-<polygon fill="none" stroke="black" points="75.75,-567.5 75.75,-590 202.5,-590 202.5,-567.5 75.75,-567.5"/>
-<text xml:space="preserve" text-anchor="start" x="127.5" y="-574.25" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="#e0ffe0" stroke="none" points="202.5,-567.5 202.5,-590 281.25,-590 281.25,-567.5 202.5,-567.5"/>
-<polygon fill="none" stroke="black" points="202.5,-567.5 202.5,-590 281.25,-590 281.25,-567.5 202.5,-567.5"/>
-<text xml:space="preserve" text-anchor="start" x="236.62" y="-574.25" font-family="Times,serif" font-size="14.00">id</text>
-<polygon fill="none" stroke="black" points="24,-545 24,-567.5 48.75,-567.5 48.75,-545 24,-545"/>
-<text xml:space="preserve" text-anchor="start" x="33" y="-551.75" font-family="Times,serif" font-size="14.00">0</text>
-<polygon fill="none" stroke="black" points="48.75,-545 48.75,-567.5 75.75,-567.5 75.75,-545 48.75,-545"/>
-<text xml:space="preserve" text-anchor="start" x="58.88" y="-551.75" font-family="Times,serif" font-size="14.00">1</text>
-<polygon fill="none" stroke="black" points="75.75,-545 75.75,-567.5 202.5,-567.5 202.5,-545 75.75,-545"/>
-<text xml:space="preserve" text-anchor="start" x="89.62" y="-551.75" font-family="Times,serif" font-size="14.00">u1→PayloadType</text>
-<polygon fill="none" stroke="black" points="202.5,-545 202.5,-567.5 281.25,-567.5 281.25,-545 202.5,-545"/>
-<text xml:space="preserve" text-anchor="start" x="205.5" y="-551.75" font-family="Times,serif" font-size="14.00">type_payload</text>
-<polygon fill="none" stroke="black" points="24,-522.5 24,-545 48.75,-545 48.75,-522.5 24,-522.5"/>
-<text xml:space="preserve" text-anchor="start" x="33" y="-529.25" font-family="Times,serif" font-size="14.00">1</text>
-<polygon fill="none" stroke="black" points="48.75,-522.5 48.75,-545 75.75,-545 75.75,-522.5 48.75,-522.5"/>
-<text xml:space="preserve" text-anchor="start" x="58.88" y="-529.25" font-family="Times,serif" font-size="14.00">2</text>
-<polygon fill="none" stroke="black" points="75.75,-522.5 75.75,-545 202.5,-545 202.5,-522.5 75.75,-522.5"/>
-<text xml:space="preserve" text-anchor="start" x="126" y="-529.25" font-family="Times,serif" font-size="14.00">u2be</text>
-<polygon fill="none" stroke="black" points="202.5,-522.5 202.5,-545 281.25,-545 281.25,-522.5 202.5,-522.5"/>
-<text xml:space="preserve" text-anchor="start" x="208.88" y="-529.25" font-family="Times,serif" font-size="14.00">len_payload</text>
-<polygon fill="none" stroke="black" points="24,-500 24,-522.5 48.75,-522.5 48.75,-500 24,-500"/>
-<text xml:space="preserve" text-anchor="start" x="33" y="-506.75" font-family="Times,serif" font-size="14.00">3</text>
-<polygon fill="none" stroke="black" points="48.75,-500 48.75,-522.5 75.75,-522.5 75.75,-500 48.75,-500"/>
-<text xml:space="preserve" text-anchor="start" x="56.62" y="-506.75" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="75.75,-500 75.75,-522.5 202.5,-522.5 202.5,-500 75.75,-500"/>
-<text xml:space="preserve" text-anchor="start" x="78.75" y="-506.75" font-family="Times,serif" font-size="14.00">switch (type_payload)</text>
-<polygon fill="none" stroke="black" points="202.5,-500 202.5,-522.5 281.25,-522.5 281.25,-500 202.5,-500"/>
-<text xml:space="preserve" text-anchor="start" x="220.5" y="-506.75" font-family="Times,serif" font-size="14.00">payload</text>
+<polygon fill="#e0ffe0" stroke="none" points="24,-585.5 24,-608 48.75,-608 48.75,-585.5 24,-585.5"/>
+<polygon fill="none" stroke="black" points="24,-585.5 24,-608 48.75,-608 48.75,-585.5 24,-585.5"/>
+<text xml:space="preserve" text-anchor="start" x="27" y="-592.25" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="48.75,-585.5 48.75,-608 75.75,-608 75.75,-585.5 48.75,-585.5"/>
+<polygon fill="none" stroke="black" points="48.75,-585.5 48.75,-608 75.75,-608 75.75,-585.5 48.75,-585.5"/>
+<text xml:space="preserve" text-anchor="start" x="51.75" y="-592.25" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="75.75,-585.5 75.75,-608 202.5,-608 202.5,-585.5 75.75,-585.5"/>
+<polygon fill="none" stroke="black" points="75.75,-585.5 75.75,-608 202.5,-608 202.5,-585.5 75.75,-585.5"/>
+<text xml:space="preserve" text-anchor="start" x="127.5" y="-592.25" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="202.5,-585.5 202.5,-608 281.25,-608 281.25,-585.5 202.5,-585.5"/>
+<polygon fill="none" stroke="black" points="202.5,-585.5 202.5,-608 281.25,-608 281.25,-585.5 202.5,-585.5"/>
+<text xml:space="preserve" text-anchor="start" x="236.62" y="-592.25" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="none" stroke="black" points="24,-563 24,-585.5 48.75,-585.5 48.75,-563 24,-563"/>
+<text xml:space="preserve" text-anchor="start" x="33" y="-569.75" font-family="Times,serif" font-size="14.00">0</text>
+<polygon fill="none" stroke="black" points="48.75,-563 48.75,-585.5 75.75,-585.5 75.75,-563 48.75,-563"/>
+<text xml:space="preserve" text-anchor="start" x="58.88" y="-569.75" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="75.75,-563 75.75,-585.5 202.5,-585.5 202.5,-563 75.75,-563"/>
+<text xml:space="preserve" text-anchor="start" x="89.62" y="-569.75" font-family="Times,serif" font-size="14.00">u1→PayloadType</text>
+<polygon fill="none" stroke="black" points="202.5,-563 202.5,-585.5 281.25,-585.5 281.25,-563 202.5,-563"/>
+<text xml:space="preserve" text-anchor="start" x="205.5" y="-569.75" font-family="Times,serif" font-size="14.00">type_payload</text>
+<polygon fill="none" stroke="black" points="24,-540.5 24,-563 48.75,-563 48.75,-540.5 24,-540.5"/>
+<text xml:space="preserve" text-anchor="start" x="33" y="-547.25" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="48.75,-540.5 48.75,-563 75.75,-563 75.75,-540.5 48.75,-540.5"/>
+<text xml:space="preserve" text-anchor="start" x="58.88" y="-547.25" font-family="Times,serif" font-size="14.00">2</text>
+<polygon fill="none" stroke="black" points="75.75,-540.5 75.75,-563 202.5,-563 202.5,-540.5 75.75,-540.5"/>
+<text xml:space="preserve" text-anchor="start" x="126" y="-547.25" font-family="Times,serif" font-size="14.00">u2be</text>
+<polygon fill="none" stroke="black" points="202.5,-540.5 202.5,-563 281.25,-563 281.25,-540.5 202.5,-540.5"/>
+<text xml:space="preserve" text-anchor="start" x="208.88" y="-547.25" font-family="Times,serif" font-size="14.00">len_payload</text>
+<polygon fill="none" stroke="black" points="24,-518 24,-540.5 48.75,-540.5 48.75,-518 24,-518"/>
+<text xml:space="preserve" text-anchor="start" x="33" y="-524.75" font-family="Times,serif" font-size="14.00">3</text>
+<polygon fill="none" stroke="black" points="48.75,-518 48.75,-540.5 75.75,-540.5 75.75,-518 48.75,-518"/>
+<text xml:space="preserve" text-anchor="start" x="56.62" y="-524.75" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="75.75,-518 75.75,-540.5 202.5,-540.5 202.5,-518 75.75,-518"/>
+<text xml:space="preserve" text-anchor="start" x="78.75" y="-524.75" font-family="Times,serif" font-size="14.00">switch (type_payload)</text>
+<polygon fill="none" stroke="black" points="202.5,-518 202.5,-540.5 281.25,-540.5 281.25,-518 202.5,-518"/>
+<text xml:space="preserve" text-anchor="start" x="220.5" y="-524.75" font-family="Times,serif" font-size="14.00">payload</text>
</g>
<!-- solec__seq&#45;&gt;solec__seq -->
-<g id="edge8" class="edge">
+<g id="edge9" class="edge">
<title>solec__seq:type_payload_type&#45;&gt;solec__seq:payload_type</title>
-<path fill="none" stroke="#404040" d="M213.52,-567.36C171.94,-588.21 181.39,-612 241.88,-612 299.93,-612 310.97,-560.57 274.99,-529.15"/>
-<polygon fill="#404040" stroke="#404040" points="277.33,-526.52 267.23,-523.3 273.12,-532.12 277.33,-526.52"/>
+<path fill="none" stroke="#404040" d="M213.11,-585.36C170.93,-606.21 180.52,-630 241.88,-630 300.77,-630 311.96,-578.57 275.47,-547.15"/>
+<polygon fill="#404040" stroke="#404040" points="277.7,-544.45 267.59,-541.3 273.53,-550.07 277.7,-544.45"/>
</g>
<!-- solec__seq_payload_switch -->
<g id="node2" class="node">
<title>solec__seq_payload_switch</title>
-<polygon fill="#f0f2e4" stroke="none" points="333.25,-568.25 333.25,-590.75 479.5,-590.75 479.5,-568.25 333.25,-568.25"/>
-<polygon fill="none" stroke="black" points="333.25,-568.25 333.25,-590.75 479.5,-590.75 479.5,-568.25 333.25,-568.25"/>
-<text xml:space="preserve" text-anchor="start" x="394.75" y="-575" font-family="Times,serif" font-size="14.00">case</text>
-<polygon fill="#f0f2e4" stroke="none" points="479.5,-568.25 479.5,-590.75 545.5,-590.75 545.5,-568.25 479.5,-568.25"/>
-<polygon fill="none" stroke="black" points="479.5,-568.25 479.5,-590.75 545.5,-590.75 545.5,-568.25 479.5,-568.25"/>
-<text xml:space="preserve" text-anchor="start" x="500.88" y="-575" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="none" stroke="black" points="333.25,-545.75 333.25,-568.25 479.5,-568.25 479.5,-545.75 333.25,-545.75"/>
-<text xml:space="preserve" text-anchor="start" x="353.12" y="-552.5" font-family="Times,serif" font-size="14.00">:payload_type_auth</text>
-<polygon fill="none" stroke="black" points="479.5,-545.75 479.5,-568.25 545.5,-568.25 545.5,-545.75 479.5,-545.75"/>
-<text xml:space="preserve" text-anchor="start" x="499" y="-552.5" font-family="Times,serif" font-size="14.00">Auth</text>
-<polygon fill="none" stroke="black" points="333.25,-523.25 333.25,-545.75 479.5,-545.75 479.5,-523.25 333.25,-523.25"/>
-<text xml:space="preserve" text-anchor="start" x="351.62" y="-530" font-family="Times,serif" font-size="14.00">:payload_type_error</text>
-<polygon fill="none" stroke="black" points="479.5,-523.25 479.5,-545.75 545.5,-545.75 545.5,-523.25 479.5,-523.25"/>
-<text xml:space="preserve" text-anchor="start" x="498.25" y="-530" font-family="Times,serif" font-size="14.00">Error</text>
-<polygon fill="none" stroke="black" points="333.25,-500.75 333.25,-523.25 479.5,-523.25 479.5,-500.75 333.25,-500.75"/>
-<text xml:space="preserve" text-anchor="start" x="336.25" y="-507.5" font-family="Times,serif" font-size="14.00">:payload_type_handshake</text>
-<polygon fill="none" stroke="black" points="479.5,-500.75 479.5,-523.25 545.5,-523.25 545.5,-500.75 479.5,-500.75"/>
-<text xml:space="preserve" text-anchor="start" x="482.5" y="-507.5" font-family="Times,serif" font-size="14.00">Handshake</text>
-<polygon fill="none" stroke="black" points="333.25,-478.25 333.25,-500.75 479.5,-500.75 479.5,-478.25 333.25,-478.25"/>
-<text xml:space="preserve" text-anchor="start" x="341.5" y="-485" font-family="Times,serif" font-size="14.00">:payload_type_message</text>
-<polygon fill="none" stroke="black" points="479.5,-478.25 479.5,-500.75 545.5,-500.75 545.5,-478.25 479.5,-478.25"/>
-<text xml:space="preserve" text-anchor="start" x="488.5" y="-485" font-family="Times,serif" font-size="14.00">Message</text>
-<polygon fill="none" stroke="black" points="333.25,-455.75 333.25,-478.25 479.5,-478.25 479.5,-455.75 333.25,-455.75"/>
-<text xml:space="preserve" text-anchor="start" x="344.5" y="-462.5" font-family="Times,serif" font-size="14.00">:payload_type_success</text>
-<polygon fill="none" stroke="black" points="479.5,-455.75 479.5,-478.25 545.5,-478.25 545.5,-455.75 479.5,-455.75"/>
-<text xml:space="preserve" text-anchor="start" x="491.12" y="-462.5" font-family="Times,serif" font-size="14.00">Success</text>
-<polygon fill="none" stroke="black" points="333.25,-433.25 333.25,-455.75 479.5,-455.75 479.5,-433.25 333.25,-433.25"/>
-<text xml:space="preserve" text-anchor="start" x="355.38" y="-440" font-family="Times,serif" font-size="14.00">:payload_type_test</text>
-<polygon fill="none" stroke="black" points="479.5,-433.25 479.5,-455.75 545.5,-455.75 545.5,-433.25 479.5,-433.25"/>
-<text xml:space="preserve" text-anchor="start" x="500.88" y="-440" font-family="Times,serif" font-size="14.00">Test</text>
+<polygon fill="#f0f2e4" stroke="none" points="333.25,-597.5 333.25,-620 485.5,-620 485.5,-597.5 333.25,-597.5"/>
+<polygon fill="none" stroke="black" points="333.25,-597.5 333.25,-620 485.5,-620 485.5,-597.5 333.25,-597.5"/>
+<text xml:space="preserve" text-anchor="start" x="397.75" y="-604.25" font-family="Times,serif" font-size="14.00">case</text>
+<polygon fill="#f0f2e4" stroke="none" points="485.5,-597.5 485.5,-620 553.75,-620 553.75,-597.5 485.5,-597.5"/>
+<polygon fill="none" stroke="black" points="485.5,-597.5 485.5,-620 553.75,-620 553.75,-597.5 485.5,-597.5"/>
+<text xml:space="preserve" text-anchor="start" x="508" y="-604.25" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="none" stroke="black" points="333.25,-575 333.25,-597.5 485.5,-597.5 485.5,-575 333.25,-575"/>
+<text xml:space="preserve" text-anchor="start" x="354.62" y="-581.75" font-family="Times,serif" font-size="14.00">:payload_type_error</text>
+<polygon fill="none" stroke="black" points="485.5,-575 485.5,-597.5 553.75,-597.5 553.75,-575 485.5,-575"/>
+<text xml:space="preserve" text-anchor="start" x="505.38" y="-581.75" font-family="Times,serif" font-size="14.00">Error</text>
+<polygon fill="none" stroke="black" points="333.25,-552.5 333.25,-575 485.5,-575 485.5,-552.5 333.25,-552.5"/>
+<text xml:space="preserve" text-anchor="start" x="339.25" y="-559.25" font-family="Times,serif" font-size="14.00">:payload_type_handshake</text>
+<polygon fill="none" stroke="black" points="485.5,-552.5 485.5,-575 553.75,-575 553.75,-552.5 485.5,-552.5"/>
+<text xml:space="preserve" text-anchor="start" x="489.62" y="-559.25" font-family="Times,serif" font-size="14.00">Handshake</text>
+<polygon fill="none" stroke="black" points="333.25,-530 333.25,-552.5 485.5,-552.5 485.5,-530 333.25,-530"/>
+<text xml:space="preserve" text-anchor="start" x="344.5" y="-536.75" font-family="Times,serif" font-size="14.00">:payload_type_message</text>
+<polygon fill="none" stroke="black" points="485.5,-530 485.5,-552.5 553.75,-552.5 553.75,-530 485.5,-530"/>
+<text xml:space="preserve" text-anchor="start" x="495.62" y="-536.75" font-family="Times,serif" font-size="14.00">Message</text>
+<polygon fill="none" stroke="black" points="333.25,-507.5 333.25,-530 485.5,-530 485.5,-507.5 333.25,-507.5"/>
+<text xml:space="preserve" text-anchor="start" x="336.25" y="-514.25" font-family="Times,serif" font-size="14.00">:payload_type_server_auth</text>
+<polygon fill="none" stroke="black" points="485.5,-507.5 485.5,-530 553.75,-530 553.75,-507.5 485.5,-507.5"/>
+<text xml:space="preserve" text-anchor="start" x="488.5" y="-514.25" font-family="Times,serif" font-size="14.00">ServerAuth</text>
+<polygon fill="none" stroke="black" points="333.25,-485 333.25,-507.5 485.5,-507.5 485.5,-485 333.25,-485"/>
+<text xml:space="preserve" text-anchor="start" x="347.5" y="-491.75" font-family="Times,serif" font-size="14.00">:payload_type_success</text>
+<polygon fill="none" stroke="black" points="485.5,-485 485.5,-507.5 553.75,-507.5 553.75,-485 485.5,-485"/>
+<text xml:space="preserve" text-anchor="start" x="498.25" y="-491.75" font-family="Times,serif" font-size="14.00">Success</text>
+<polygon fill="none" stroke="black" points="333.25,-462.5 333.25,-485 485.5,-485 485.5,-462.5 333.25,-462.5"/>
+<text xml:space="preserve" text-anchor="start" x="358.38" y="-469.25" font-family="Times,serif" font-size="14.00">:payload_type_test</text>
+<polygon fill="none" stroke="black" points="485.5,-462.5 485.5,-485 553.75,-485 553.75,-462.5 485.5,-462.5"/>
+<text xml:space="preserve" text-anchor="start" x="508" y="-469.25" font-family="Times,serif" font-size="14.00">Test</text>
+<polygon fill="none" stroke="black" points="333.25,-440 333.25,-462.5 485.5,-462.5 485.5,-440 333.25,-440"/>
+<text xml:space="preserve" text-anchor="start" x="341.5" y="-446.75" font-family="Times,serif" font-size="14.00">:payload_type_user_auth</text>
+<polygon fill="none" stroke="black" points="485.5,-440 485.5,-462.5 553.75,-462.5 553.75,-440 485.5,-440"/>
+<text xml:space="preserve" text-anchor="start" x="493.38" y="-446.75" font-family="Times,serif" font-size="14.00">UserAuth</text>
</g>
<!-- solec__seq&#45;&gt;solec__seq_payload_switch -->
<g id="edge1" class="edge">
<title>solec__seq:payload_type&#45;&gt;solec__seq_payload_switch</title>
-<path fill="none" stroke="black" stroke-width="2" d="M282.25,-511.25C292.61,-511.25 303.36,-511.27 314.14,-511.3"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="312.35,-514.79 322.36,-511.32 312.37,-507.79 312.35,-514.79"/>
-</g>
-<!-- auth__seq -->
-<g id="node3" class="node">
-<title>auth__seq</title>
-<polygon fill="#e0ffe0" stroke="none" points="637.25,-812.25 637.25,-834.75 662,-834.75 662,-812.25 637.25,-812.25"/>
-<polygon fill="none" stroke="black" points="637.25,-812.25 637.25,-834.75 662,-834.75 662,-812.25 637.25,-812.25"/>
-<text xml:space="preserve" text-anchor="start" x="640.25" y="-819" font-family="Times,serif" font-size="14.00">pos</text>
-<polygon fill="#e0ffe0" stroke="none" points="662,-812.25 662,-834.75 689,-834.75 689,-812.25 662,-812.25"/>
-<polygon fill="none" stroke="black" points="662,-812.25 662,-834.75 689,-834.75 689,-812.25 662,-812.25"/>
-<text xml:space="preserve" text-anchor="start" x="665" y="-819" font-family="Times,serif" font-size="14.00">size</text>
-<polygon fill="#e0ffe0" stroke="none" points="689,-812.25 689,-834.75 728,-834.75 728,-812.25 689,-812.25"/>
-<polygon fill="none" stroke="black" points="689,-812.25 689,-834.75 728,-834.75 728,-812.25 689,-812.25"/>
-<text xml:space="preserve" text-anchor="start" x="696.88" y="-819" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="#e0ffe0" stroke="none" points="728,-812.25 728,-834.75 764,-834.75 764,-812.25 728,-812.25"/>
-<polygon fill="none" stroke="black" points="728,-812.25 728,-834.75 764,-834.75 764,-812.25 728,-812.25"/>
-<text xml:space="preserve" text-anchor="start" x="740.75" y="-819" font-family="Times,serif" font-size="14.00">id</text>
-<polygon fill="none" stroke="black" points="637.25,-789.75 637.25,-812.25 662,-812.25 662,-789.75 637.25,-789.75"/>
-<text xml:space="preserve" text-anchor="start" x="646.25" y="-796.5" font-family="Times,serif" font-size="14.00">0</text>
-<polygon fill="none" stroke="black" points="662,-789.75 662,-812.25 689,-812.25 689,-789.75 662,-789.75"/>
-<text xml:space="preserve" text-anchor="start" x="669.88" y="-796.5" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="689,-789.75 689,-812.25 728,-812.25 728,-789.75 689,-789.75"/>
-<text xml:space="preserve" text-anchor="start" x="692" y="-796.5" font-family="Times,serif" font-size="14.00">String</text>
-<polygon fill="none" stroke="black" points="728,-789.75 728,-812.25 764,-812.25 764,-789.75 728,-789.75"/>
-<text xml:space="preserve" text-anchor="start" x="731" y="-796.5" font-family="Times,serif" font-size="14.00">name</text>
-<polygon fill="none" stroke="black" points="637.25,-767.25 637.25,-789.75 662,-789.75 662,-767.25 637.25,-767.25"/>
-<text xml:space="preserve" text-anchor="start" x="644" y="-774" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="662,-767.25 662,-789.75 689,-789.75 689,-767.25 662,-767.25"/>
-<text xml:space="preserve" text-anchor="start" x="669.88" y="-774" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="689,-767.25 689,-789.75 728,-789.75 728,-767.25 689,-767.25"/>
-<text xml:space="preserve" text-anchor="start" x="692" y="-774" font-family="Times,serif" font-size="14.00">String</text>
-<polygon fill="none" stroke="black" points="728,-767.25 728,-789.75 764,-789.75 764,-767.25 728,-767.25"/>
-<text xml:space="preserve" text-anchor="start" x="734.38" y="-774" font-family="Times,serif" font-size="14.00">pass</text>
-</g>
-<!-- solec__seq_payload_switch&#45;&gt;auth__seq -->
-<g id="edge2" class="edge">
-<title>solec__seq_payload_switch:case0&#45;&gt;auth__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M546.5,-557C590.31,-557 554.14,-716.78 581.5,-751 591.29,-763.25 604.63,-772.54 618.83,-779.58"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="615.97,-782.12 626.52,-783.06 618.86,-775.75 615.97,-782.12"/>
+<path fill="none" stroke="black" stroke-width="2" d="M282.25,-529.25C292.68,-529.25 303.49,-529.27 314.34,-529.29"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="312.62,-532.79 322.63,-529.32 312.64,-525.79 312.62,-532.79"/>
</g>
<!-- error__seq -->
-<g id="node4" class="node">
+<g id="node3" class="node">
<title>error__seq</title>
-<polygon fill="#e0ffe0" stroke="none" points="597.5,-688 597.5,-710.5 622.25,-710.5 622.25,-688 597.5,-688"/>
-<polygon fill="none" stroke="black" points="597.5,-688 597.5,-710.5 622.25,-710.5 622.25,-688 597.5,-688"/>
-<text xml:space="preserve" text-anchor="start" x="600.5" y="-694.75" font-family="Times,serif" font-size="14.00">pos</text>
-<polygon fill="#e0ffe0" stroke="none" points="622.25,-688 622.25,-710.5 649.25,-710.5 649.25,-688 622.25,-688"/>
-<polygon fill="none" stroke="black" points="622.25,-688 622.25,-710.5 649.25,-710.5 649.25,-688 622.25,-688"/>
-<text xml:space="preserve" text-anchor="start" x="625.25" y="-694.75" font-family="Times,serif" font-size="14.00">size</text>
-<polygon fill="#e0ffe0" stroke="none" points="649.25,-688 649.25,-710.5 739.25,-710.5 739.25,-688 649.25,-688"/>
-<polygon fill="none" stroke="black" points="649.25,-688 649.25,-710.5 739.25,-710.5 739.25,-688 649.25,-688"/>
-<text xml:space="preserve" text-anchor="start" x="682.62" y="-694.75" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="#e0ffe0" stroke="none" points="739.25,-688 739.25,-710.5 803.75,-710.5 803.75,-688 739.25,-688"/>
-<polygon fill="none" stroke="black" points="739.25,-688 739.25,-710.5 803.75,-710.5 803.75,-688 739.25,-688"/>
-<text xml:space="preserve" text-anchor="start" x="766.25" y="-694.75" font-family="Times,serif" font-size="14.00">id</text>
-<polygon fill="none" stroke="black" points="597.5,-665.5 597.5,-688 622.25,-688 622.25,-665.5 597.5,-665.5"/>
-<text xml:space="preserve" text-anchor="start" x="606.5" y="-672.25" font-family="Times,serif" font-size="14.00">0</text>
-<polygon fill="none" stroke="black" points="622.25,-665.5 622.25,-688 649.25,-688 649.25,-665.5 622.25,-665.5"/>
-<text xml:space="preserve" text-anchor="start" x="632.38" y="-672.25" font-family="Times,serif" font-size="14.00">1</text>
-<polygon fill="none" stroke="black" points="649.25,-665.5 649.25,-688 739.25,-688 739.25,-665.5 649.25,-665.5"/>
-<text xml:space="preserve" text-anchor="start" x="652.25" y="-672.25" font-family="Times,serif" font-size="14.00">u1→ErrorType</text>
-<polygon fill="none" stroke="black" points="739.25,-665.5 739.25,-688 803.75,-688 803.75,-665.5 739.25,-665.5"/>
-<text xml:space="preserve" text-anchor="start" x="742.25" y="-672.25" font-family="Times,serif" font-size="14.00">error_code</text>
+<polygon fill="#e0ffe0" stroke="none" points="623,-937 623,-959.5 647.75,-959.5 647.75,-937 623,-937"/>
+<polygon fill="none" stroke="black" points="623,-937 623,-959.5 647.75,-959.5 647.75,-937 623,-937"/>
+<text xml:space="preserve" text-anchor="start" x="626" y="-943.75" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="647.75,-937 647.75,-959.5 674.75,-959.5 674.75,-937 647.75,-937"/>
+<polygon fill="none" stroke="black" points="647.75,-937 647.75,-959.5 674.75,-959.5 674.75,-937 647.75,-937"/>
+<text xml:space="preserve" text-anchor="start" x="650.75" y="-943.75" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="674.75,-937 674.75,-959.5 764.75,-959.5 764.75,-937 674.75,-937"/>
+<polygon fill="none" stroke="black" points="674.75,-937 674.75,-959.5 764.75,-959.5 764.75,-937 674.75,-937"/>
+<text xml:space="preserve" text-anchor="start" x="708.12" y="-943.75" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="764.75,-937 764.75,-959.5 829.25,-959.5 829.25,-937 764.75,-937"/>
+<polygon fill="none" stroke="black" points="764.75,-937 764.75,-959.5 829.25,-959.5 829.25,-937 764.75,-937"/>
+<text xml:space="preserve" text-anchor="start" x="791.75" y="-943.75" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="none" stroke="black" points="623,-914.5 623,-937 647.75,-937 647.75,-914.5 623,-914.5"/>
+<text xml:space="preserve" text-anchor="start" x="632" y="-921.25" font-family="Times,serif" font-size="14.00">0</text>
+<polygon fill="none" stroke="black" points="647.75,-914.5 647.75,-937 674.75,-937 674.75,-914.5 647.75,-914.5"/>
+<text xml:space="preserve" text-anchor="start" x="657.88" y="-921.25" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="674.75,-914.5 674.75,-937 764.75,-937 764.75,-914.5 674.75,-914.5"/>
+<text xml:space="preserve" text-anchor="start" x="677.75" y="-921.25" font-family="Times,serif" font-size="14.00">u1→ErrorType</text>
+<polygon fill="none" stroke="black" points="764.75,-914.5 764.75,-937 829.25,-937 829.25,-914.5 764.75,-914.5"/>
+<text xml:space="preserve" text-anchor="start" x="767.75" y="-921.25" font-family="Times,serif" font-size="14.00">error_code</text>
</g>
<!-- solec__seq_payload_switch&#45;&gt;error__seq -->
-<g id="edge3" class="edge">
-<title>solec__seq_payload_switch:case1&#45;&gt;error__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M546.5,-534.5C599.71,-534.5 544.29,-610.96 581.5,-649 583.55,-651.09 585.71,-653.08 587.97,-654.95"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="584.55,-656.78 594.68,-659.88 588.69,-651.14 584.55,-656.78"/>
+<g id="edge2" class="edge">
+<title>solec__seq_payload_switch:case0&#45;&gt;error__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M554.75,-586.25C624.46,-586.25 544.78,-844.73 589.75,-898 594.41,-903.52 599.79,-908.28 605.68,-912.4"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="602.37,-914.47 612.72,-916.74 606.05,-908.51 602.37,-914.47"/>
</g>
<!-- handshake__seq -->
-<g id="node5" class="node">
+<g id="node4" class="node">
<title>handshake__seq</title>
-<polygon fill="#e0ffe0" stroke="none" points="611,-586.25 611,-608.75 635.75,-608.75 635.75,-586.25 611,-586.25"/>
-<polygon fill="none" stroke="black" points="611,-586.25 611,-608.75 635.75,-608.75 635.75,-586.25 611,-586.25"/>
-<text xml:space="preserve" text-anchor="start" x="614" y="-593" font-family="Times,serif" font-size="14.00">pos</text>
-<polygon fill="#e0ffe0" stroke="none" points="635.75,-586.25 635.75,-608.75 662.75,-608.75 662.75,-586.25 635.75,-586.25"/>
-<polygon fill="none" stroke="black" points="635.75,-586.25 635.75,-608.75 662.75,-608.75 662.75,-586.25 635.75,-586.25"/>
-<text xml:space="preserve" text-anchor="start" x="638.75" y="-593" font-family="Times,serif" font-size="14.00">size</text>
-<polygon fill="#e0ffe0" stroke="none" points="662.75,-586.25 662.75,-608.75 692,-608.75 692,-586.25 662.75,-586.25"/>
-<polygon fill="none" stroke="black" points="662.75,-586.25 662.75,-608.75 692,-608.75 692,-586.25 662.75,-586.25"/>
-<text xml:space="preserve" text-anchor="start" x="665.75" y="-593" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="#e0ffe0" stroke="none" points="692,-586.25 692,-608.75 790.25,-608.75 790.25,-586.25 692,-586.25"/>
-<polygon fill="none" stroke="black" points="692,-586.25 692,-608.75 790.25,-608.75 790.25,-586.25 692,-586.25"/>
-<text xml:space="preserve" text-anchor="start" x="735.88" y="-593" font-family="Times,serif" font-size="14.00">id</text>
-<polygon fill="none" stroke="black" points="611,-563.75 611,-586.25 635.75,-586.25 635.75,-563.75 611,-563.75"/>
-<text xml:space="preserve" text-anchor="start" x="620" y="-570.5" font-family="Times,serif" font-size="14.00">0</text>
-<polygon fill="none" stroke="black" points="635.75,-563.75 635.75,-586.25 662.75,-586.25 662.75,-563.75 635.75,-563.75"/>
-<text xml:space="preserve" text-anchor="start" x="645.88" y="-570.5" font-family="Times,serif" font-size="14.00">1</text>
-<polygon fill="none" stroke="black" points="662.75,-563.75 662.75,-586.25 692,-586.25 692,-563.75 662.75,-563.75"/>
-<text xml:space="preserve" text-anchor="start" x="670.62" y="-570.5" font-family="Times,serif" font-size="14.00">u1</text>
-<polygon fill="none" stroke="black" points="692,-563.75 692,-586.25 790.25,-586.25 790.25,-563.75 692,-563.75"/>
-<text xml:space="preserve" text-anchor="start" x="695.38" y="-570.5" font-family="Times,serif" font-size="14.00">proto_ver_major</text>
-<polygon fill="none" stroke="black" points="611,-541.25 611,-563.75 635.75,-563.75 635.75,-541.25 611,-541.25"/>
-<text xml:space="preserve" text-anchor="start" x="620" y="-548" font-family="Times,serif" font-size="14.00">1</text>
-<polygon fill="none" stroke="black" points="635.75,-541.25 635.75,-563.75 662.75,-563.75 662.75,-541.25 635.75,-541.25"/>
-<text xml:space="preserve" text-anchor="start" x="645.88" y="-548" font-family="Times,serif" font-size="14.00">1</text>
-<polygon fill="none" stroke="black" points="662.75,-541.25 662.75,-563.75 692,-563.75 692,-541.25 662.75,-541.25"/>
-<text xml:space="preserve" text-anchor="start" x="670.62" y="-548" font-family="Times,serif" font-size="14.00">u1</text>
-<polygon fill="none" stroke="black" points="692,-541.25 692,-563.75 790.25,-563.75 790.25,-541.25 692,-541.25"/>
-<text xml:space="preserve" text-anchor="start" x="695" y="-548" font-family="Times,serif" font-size="14.00">proto_ver_minor</text>
+<polygon fill="#e0ffe0" stroke="none" points="605.75,-834.5 605.75,-857 630.5,-857 630.5,-834.5 605.75,-834.5"/>
+<polygon fill="none" stroke="black" points="605.75,-834.5 605.75,-857 630.5,-857 630.5,-834.5 605.75,-834.5"/>
+<text xml:space="preserve" text-anchor="start" x="608.75" y="-841.25" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="630.5,-834.5 630.5,-857 657.5,-857 657.5,-834.5 630.5,-834.5"/>
+<polygon fill="none" stroke="black" points="630.5,-834.5 630.5,-857 657.5,-857 657.5,-834.5 630.5,-834.5"/>
+<text xml:space="preserve" text-anchor="start" x="633.5" y="-841.25" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="657.5,-834.5 657.5,-857 748.25,-857 748.25,-834.5 657.5,-834.5"/>
+<polygon fill="none" stroke="black" points="657.5,-834.5 657.5,-857 748.25,-857 748.25,-834.5 657.5,-834.5"/>
+<text xml:space="preserve" text-anchor="start" x="691.25" y="-841.25" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="748.25,-834.5 748.25,-857 846.5,-857 846.5,-834.5 748.25,-834.5"/>
+<polygon fill="none" stroke="black" points="748.25,-834.5 748.25,-857 846.5,-857 846.5,-834.5 748.25,-834.5"/>
+<text xml:space="preserve" text-anchor="start" x="792.12" y="-841.25" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="none" stroke="black" points="605.75,-812 605.75,-834.5 630.5,-834.5 630.5,-812 605.75,-812"/>
+<text xml:space="preserve" text-anchor="start" x="614.75" y="-818.75" font-family="Times,serif" font-size="14.00">0</text>
+<polygon fill="none" stroke="black" points="630.5,-812 630.5,-834.5 657.5,-834.5 657.5,-812 630.5,-812"/>
+<text xml:space="preserve" text-anchor="start" x="640.62" y="-818.75" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="657.5,-812 657.5,-834.5 748.25,-834.5 748.25,-812 657.5,-812"/>
+<text xml:space="preserve" text-anchor="start" x="696.12" y="-818.75" font-family="Times,serif" font-size="14.00">u1</text>
+<polygon fill="none" stroke="black" points="748.25,-812 748.25,-834.5 846.5,-834.5 846.5,-812 748.25,-812"/>
+<text xml:space="preserve" text-anchor="start" x="751.62" y="-818.75" font-family="Times,serif" font-size="14.00">proto_ver_major</text>
+<polygon fill="none" stroke="black" points="605.75,-789.5 605.75,-812 630.5,-812 630.5,-789.5 605.75,-789.5"/>
+<text xml:space="preserve" text-anchor="start" x="614.75" y="-796.25" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="630.5,-789.5 630.5,-812 657.5,-812 657.5,-789.5 630.5,-789.5"/>
+<text xml:space="preserve" text-anchor="start" x="640.62" y="-796.25" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="657.5,-789.5 657.5,-812 748.25,-812 748.25,-789.5 657.5,-789.5"/>
+<text xml:space="preserve" text-anchor="start" x="696.12" y="-796.25" font-family="Times,serif" font-size="14.00">u1</text>
+<polygon fill="none" stroke="black" points="748.25,-789.5 748.25,-812 846.5,-812 846.5,-789.5 748.25,-789.5"/>
+<text xml:space="preserve" text-anchor="start" x="751.25" y="-796.25" font-family="Times,serif" font-size="14.00">proto_ver_minor</text>
+<polygon fill="none" stroke="black" points="605.75,-767 605.75,-789.5 630.5,-789.5 630.5,-767 605.75,-767"/>
+<text xml:space="preserve" text-anchor="start" x="614.75" y="-773.75" font-family="Times,serif" font-size="14.00">2</text>
+<polygon fill="none" stroke="black" points="630.5,-767 630.5,-789.5 657.5,-789.5 657.5,-767 630.5,-767"/>
+<text xml:space="preserve" text-anchor="start" x="640.62" y="-773.75" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="657.5,-767 657.5,-789.5 748.25,-789.5 748.25,-767 657.5,-767"/>
+<text xml:space="preserve" text-anchor="start" x="660.5" y="-773.75" font-family="Times,serif" font-size="14.00">u1→ConnType</text>
+<polygon fill="none" stroke="black" points="748.25,-767 748.25,-789.5 846.5,-789.5 846.5,-767 748.25,-767"/>
+<text xml:space="preserve" text-anchor="start" x="769.25" y="-773.75" font-family="Times,serif" font-size="14.00">conn_type</text>
</g>
<!-- solec__seq_payload_switch&#45;&gt;handshake__seq -->
-<g id="edge4" class="edge">
-<title>solec__seq_payload_switch:case2&#45;&gt;handshake__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M546.5,-512C548.28,-512 571.52,-521.39 599.38,-532.93"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="596.45,-535.5 607.02,-536.1 599.13,-529.04 596.45,-535.5"/>
+<g id="edge3" class="edge">
+<title>solec__seq_payload_switch:case1&#45;&gt;handshake__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M554.75,-563.75C597.08,-563.75 563.59,-717.72 589.75,-751 590.82,-752.36 591.93,-753.69 593.07,-755"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="589.47,-756.32 598.96,-761.02 594.47,-751.43 589.47,-756.32"/>
</g>
<!-- message__seq -->
-<g id="node6" class="node">
+<g id="node5" class="node">
<title>message__seq</title>
-<polygon fill="#e0ffe0" stroke="none" points="623.38,-461.75 623.38,-484.25 648.12,-484.25 648.12,-461.75 623.38,-461.75"/>
-<polygon fill="none" stroke="black" points="623.38,-461.75 623.38,-484.25 648.12,-484.25 648.12,-461.75 623.38,-461.75"/>
-<text xml:space="preserve" text-anchor="start" x="626.38" y="-468.5" font-family="Times,serif" font-size="14.00">pos</text>
-<polygon fill="#e0ffe0" stroke="none" points="648.12,-461.75 648.12,-484.25 675.12,-484.25 675.12,-461.75 648.12,-461.75"/>
-<polygon fill="none" stroke="black" points="648.12,-461.75 648.12,-484.25 675.12,-484.25 675.12,-461.75 648.12,-461.75"/>
-<text xml:space="preserve" text-anchor="start" x="651.12" y="-468.5" font-family="Times,serif" font-size="14.00">size</text>
-<polygon fill="#e0ffe0" stroke="none" points="675.12,-461.75 675.12,-484.25 714.12,-484.25 714.12,-461.75 675.12,-461.75"/>
-<polygon fill="none" stroke="black" points="675.12,-461.75 675.12,-484.25 714.12,-484.25 714.12,-461.75 675.12,-461.75"/>
-<text xml:space="preserve" text-anchor="start" x="683" y="-468.5" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="#e0ffe0" stroke="none" points="714.12,-461.75 714.12,-484.25 777.88,-484.25 777.88,-461.75 714.12,-461.75"/>
-<polygon fill="none" stroke="black" points="714.12,-461.75 714.12,-484.25 777.88,-484.25 777.88,-461.75 714.12,-461.75"/>
-<text xml:space="preserve" text-anchor="start" x="740.75" y="-468.5" font-family="Times,serif" font-size="14.00">id</text>
-<polygon fill="none" stroke="black" points="623.38,-439.25 623.38,-461.75 648.12,-461.75 648.12,-439.25 623.38,-439.25"/>
-<text xml:space="preserve" text-anchor="start" x="632.38" y="-446" font-family="Times,serif" font-size="14.00">0</text>
-<polygon fill="none" stroke="black" points="648.12,-439.25 648.12,-461.75 675.12,-461.75 675.12,-439.25 648.12,-439.25"/>
-<text xml:space="preserve" text-anchor="start" x="656" y="-446" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="675.12,-439.25 675.12,-461.75 714.12,-461.75 714.12,-439.25 675.12,-439.25"/>
-<text xml:space="preserve" text-anchor="start" x="678.12" y="-446" font-family="Times,serif" font-size="14.00">String</text>
-<polygon fill="none" stroke="black" points="714.12,-439.25 714.12,-461.75 777.88,-461.75 777.88,-439.25 714.12,-439.25"/>
-<text xml:space="preserve" text-anchor="start" x="728.38" y="-446" font-family="Times,serif" font-size="14.00">source</text>
-<polygon fill="none" stroke="black" points="623.38,-416.75 623.38,-439.25 648.12,-439.25 648.12,-416.75 623.38,-416.75"/>
-<text xml:space="preserve" text-anchor="start" x="630.12" y="-423.5" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="648.12,-416.75 648.12,-439.25 675.12,-439.25 675.12,-416.75 648.12,-416.75"/>
-<text xml:space="preserve" text-anchor="start" x="656" y="-423.5" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="675.12,-416.75 675.12,-439.25 714.12,-439.25 714.12,-416.75 675.12,-416.75"/>
-<text xml:space="preserve" text-anchor="start" x="678.12" y="-423.5" font-family="Times,serif" font-size="14.00">String</text>
-<polygon fill="none" stroke="black" points="714.12,-416.75 714.12,-439.25 777.88,-439.25 777.88,-416.75 714.12,-416.75"/>
-<text xml:space="preserve" text-anchor="start" x="730.62" y="-423.5" font-family="Times,serif" font-size="14.00">target</text>
-<polygon fill="none" stroke="black" points="623.38,-394.25 623.38,-416.75 648.12,-416.75 648.12,-394.25 623.38,-394.25"/>
-<text xml:space="preserve" text-anchor="start" x="630.12" y="-401" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="648.12,-394.25 648.12,-416.75 675.12,-416.75 675.12,-394.25 648.12,-394.25"/>
-<text xml:space="preserve" text-anchor="start" x="658.25" y="-401" font-family="Times,serif" font-size="14.00">8</text>
-<polygon fill="none" stroke="black" points="675.12,-394.25 675.12,-416.75 714.12,-416.75 714.12,-394.25 675.12,-394.25"/>
-<text xml:space="preserve" text-anchor="start" x="681.5" y="-401" font-family="Times,serif" font-size="14.00">u8be</text>
-<polygon fill="none" stroke="black" points="714.12,-394.25 714.12,-416.75 777.88,-416.75 777.88,-394.25 714.12,-394.25"/>
-<text xml:space="preserve" text-anchor="start" x="717.12" y="-401" font-family="Times,serif" font-size="14.00">timestamp</text>
-<polygon fill="none" stroke="black" points="623.38,-371.75 623.38,-394.25 648.12,-394.25 648.12,-371.75 623.38,-371.75"/>
-<text xml:space="preserve" text-anchor="start" x="630.12" y="-378.5" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="648.12,-371.75 648.12,-394.25 675.12,-394.25 675.12,-371.75 648.12,-371.75"/>
-<text xml:space="preserve" text-anchor="start" x="656" y="-378.5" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="675.12,-371.75 675.12,-394.25 714.12,-394.25 714.12,-371.75 675.12,-371.75"/>
-<text xml:space="preserve" text-anchor="start" x="678.12" y="-378.5" font-family="Times,serif" font-size="14.00">String</text>
-<polygon fill="none" stroke="black" points="714.12,-371.75 714.12,-394.25 777.88,-394.25 777.88,-371.75 714.12,-371.75"/>
-<text xml:space="preserve" text-anchor="start" x="726.12" y="-378.5" font-family="Times,serif" font-size="14.00">content</text>
+<polygon fill="#e0ffe0" stroke="none" points="648.88,-687.75 648.88,-710.25 673.62,-710.25 673.62,-687.75 648.88,-687.75"/>
+<polygon fill="none" stroke="black" points="648.88,-687.75 648.88,-710.25 673.62,-710.25 673.62,-687.75 648.88,-687.75"/>
+<text xml:space="preserve" text-anchor="start" x="651.88" y="-694.5" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="673.62,-687.75 673.62,-710.25 700.62,-710.25 700.62,-687.75 673.62,-687.75"/>
+<polygon fill="none" stroke="black" points="673.62,-687.75 673.62,-710.25 700.62,-710.25 700.62,-687.75 673.62,-687.75"/>
+<text xml:space="preserve" text-anchor="start" x="676.62" y="-694.5" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="700.62,-687.75 700.62,-710.25 739.62,-710.25 739.62,-687.75 700.62,-687.75"/>
+<polygon fill="none" stroke="black" points="700.62,-687.75 700.62,-710.25 739.62,-710.25 739.62,-687.75 700.62,-687.75"/>
+<text xml:space="preserve" text-anchor="start" x="708.5" y="-694.5" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="739.62,-687.75 739.62,-710.25 803.38,-710.25 803.38,-687.75 739.62,-687.75"/>
+<polygon fill="none" stroke="black" points="739.62,-687.75 739.62,-710.25 803.38,-710.25 803.38,-687.75 739.62,-687.75"/>
+<text xml:space="preserve" text-anchor="start" x="766.25" y="-694.5" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="none" stroke="black" points="648.88,-665.25 648.88,-687.75 673.62,-687.75 673.62,-665.25 648.88,-665.25"/>
+<text xml:space="preserve" text-anchor="start" x="657.88" y="-672" font-family="Times,serif" font-size="14.00">0</text>
+<polygon fill="none" stroke="black" points="673.62,-665.25 673.62,-687.75 700.62,-687.75 700.62,-665.25 673.62,-665.25"/>
+<text xml:space="preserve" text-anchor="start" x="681.5" y="-672" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="700.62,-665.25 700.62,-687.75 739.62,-687.75 739.62,-665.25 700.62,-665.25"/>
+<text xml:space="preserve" text-anchor="start" x="703.62" y="-672" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="739.62,-665.25 739.62,-687.75 803.38,-687.75 803.38,-665.25 739.62,-665.25"/>
+<text xml:space="preserve" text-anchor="start" x="753.88" y="-672" font-family="Times,serif" font-size="14.00">source</text>
+<polygon fill="none" stroke="black" points="648.88,-642.75 648.88,-665.25 673.62,-665.25 673.62,-642.75 648.88,-642.75"/>
+<text xml:space="preserve" text-anchor="start" x="655.62" y="-649.5" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="673.62,-642.75 673.62,-665.25 700.62,-665.25 700.62,-642.75 673.62,-642.75"/>
+<text xml:space="preserve" text-anchor="start" x="681.5" y="-649.5" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="700.62,-642.75 700.62,-665.25 739.62,-665.25 739.62,-642.75 700.62,-642.75"/>
+<text xml:space="preserve" text-anchor="start" x="703.62" y="-649.5" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="739.62,-642.75 739.62,-665.25 803.38,-665.25 803.38,-642.75 739.62,-642.75"/>
+<text xml:space="preserve" text-anchor="start" x="756.12" y="-649.5" font-family="Times,serif" font-size="14.00">target</text>
+<polygon fill="none" stroke="black" points="648.88,-620.25 648.88,-642.75 673.62,-642.75 673.62,-620.25 648.88,-620.25"/>
+<text xml:space="preserve" text-anchor="start" x="655.62" y="-627" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="673.62,-620.25 673.62,-642.75 700.62,-642.75 700.62,-620.25 673.62,-620.25"/>
+<text xml:space="preserve" text-anchor="start" x="683.75" y="-627" font-family="Times,serif" font-size="14.00">8</text>
+<polygon fill="none" stroke="black" points="700.62,-620.25 700.62,-642.75 739.62,-642.75 739.62,-620.25 700.62,-620.25"/>
+<text xml:space="preserve" text-anchor="start" x="707" y="-627" font-family="Times,serif" font-size="14.00">u8be</text>
+<polygon fill="none" stroke="black" points="739.62,-620.25 739.62,-642.75 803.38,-642.75 803.38,-620.25 739.62,-620.25"/>
+<text xml:space="preserve" text-anchor="start" x="742.62" y="-627" font-family="Times,serif" font-size="14.00">timestamp</text>
+<polygon fill="none" stroke="black" points="648.88,-597.75 648.88,-620.25 673.62,-620.25 673.62,-597.75 648.88,-597.75"/>
+<text xml:space="preserve" text-anchor="start" x="655.62" y="-604.5" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="673.62,-597.75 673.62,-620.25 700.62,-620.25 700.62,-597.75 673.62,-597.75"/>
+<text xml:space="preserve" text-anchor="start" x="681.5" y="-604.5" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="700.62,-597.75 700.62,-620.25 739.62,-620.25 739.62,-597.75 700.62,-597.75"/>
+<text xml:space="preserve" text-anchor="start" x="703.62" y="-604.5" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="739.62,-597.75 739.62,-620.25 803.38,-620.25 803.38,-597.75 739.62,-597.75"/>
+<text xml:space="preserve" text-anchor="start" x="751.62" y="-604.5" font-family="Times,serif" font-size="14.00">content</text>
</g>
<!-- solec__seq_payload_switch&#45;&gt;message__seq -->
+<g id="edge4" class="edge">
+<title>solec__seq_payload_switch:case2&#45;&gt;message__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M554.75,-541.25C578.62,-541.25 571.11,-567.08 589.75,-582 602.41,-592.14 616.72,-601.53 631.17,-609.95"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="628.12,-612.25 638.54,-614.13 631.57,-606.16 628.12,-612.25"/>
+</g>
+<!-- server_auth__seq -->
+<g id="node6" class="node">
+<title>server_auth__seq</title>
+<polygon fill="#e0ffe0" stroke="none" points="662.75,-519 662.75,-541.5 687.5,-541.5 687.5,-519 662.75,-519"/>
+<polygon fill="none" stroke="black" points="662.75,-519 662.75,-541.5 687.5,-541.5 687.5,-519 662.75,-519"/>
+<text xml:space="preserve" text-anchor="start" x="665.75" y="-525.75" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="687.5,-519 687.5,-541.5 714.5,-541.5 714.5,-519 687.5,-519"/>
+<polygon fill="none" stroke="black" points="687.5,-519 687.5,-541.5 714.5,-541.5 714.5,-519 687.5,-519"/>
+<text xml:space="preserve" text-anchor="start" x="690.5" y="-525.75" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="714.5,-519 714.5,-541.5 753.5,-541.5 753.5,-519 714.5,-519"/>
+<polygon fill="none" stroke="black" points="714.5,-519 714.5,-541.5 753.5,-541.5 753.5,-519 714.5,-519"/>
+<text xml:space="preserve" text-anchor="start" x="722.38" y="-525.75" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="753.5,-519 753.5,-541.5 789.5,-541.5 789.5,-519 753.5,-519"/>
+<polygon fill="none" stroke="black" points="753.5,-519 753.5,-541.5 789.5,-541.5 789.5,-519 753.5,-519"/>
+<text xml:space="preserve" text-anchor="start" x="766.25" y="-525.75" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="none" stroke="black" points="662.75,-496.5 662.75,-519 687.5,-519 687.5,-496.5 662.75,-496.5"/>
+<text xml:space="preserve" text-anchor="start" x="671.75" y="-503.25" font-family="Times,serif" font-size="14.00">0</text>
+<polygon fill="none" stroke="black" points="687.5,-496.5 687.5,-519 714.5,-519 714.5,-496.5 687.5,-496.5"/>
+<text xml:space="preserve" text-anchor="start" x="695.38" y="-503.25" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="714.5,-496.5 714.5,-519 753.5,-519 753.5,-496.5 714.5,-496.5"/>
+<text xml:space="preserve" text-anchor="start" x="717.5" y="-503.25" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="753.5,-496.5 753.5,-519 789.5,-519 789.5,-496.5 753.5,-496.5"/>
+<text xml:space="preserve" text-anchor="start" x="756.5" y="-503.25" font-family="Times,serif" font-size="14.00">name</text>
+</g>
+<!-- solec__seq_payload_switch&#45;&gt;server_auth__seq -->
<g id="edge5" class="edge">
-<title>solec__seq_payload_switch:case3&#45;&gt;message__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M546.5,-489.5C566.11,-489.5 586.18,-485.1 605.06,-478.66"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="604.69,-482.52 612.88,-475.81 602.29,-475.95 604.69,-482.52"/>
+<title>solec__seq_payload_switch:case3&#45;&gt;server_auth__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M554.75,-518.75C583.74,-518.75 615.5,-518.79 643.66,-518.83"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="642.05,-522.33 652.05,-518.85 642.06,-515.33 642.05,-522.33"/>
</g>
<!-- success__seq -->
<g id="node8" class="node">
<title>success__seq</title>
-<polygon fill="#e0ffe0" stroke="none" points="651.88,-289.75 651.88,-312.25 676.62,-312.25 676.62,-289.75 651.88,-289.75"/>
-<polygon fill="none" stroke="black" points="651.88,-289.75 651.88,-312.25 676.62,-312.25 676.62,-289.75 651.88,-289.75"/>
-<text xml:space="preserve" text-anchor="start" x="654.88" y="-296.5" font-family="Times,serif" font-size="14.00">pos</text>
-<polygon fill="#e0ffe0" stroke="none" points="676.62,-289.75 676.62,-312.25 703.62,-312.25 703.62,-289.75 676.62,-289.75"/>
-<polygon fill="none" stroke="black" points="676.62,-289.75 676.62,-312.25 703.62,-312.25 703.62,-289.75 676.62,-289.75"/>
-<text xml:space="preserve" text-anchor="start" x="679.62" y="-296.5" font-family="Times,serif" font-size="14.00">size</text>
-<polygon fill="#e0ffe0" stroke="none" points="703.62,-289.75 703.62,-312.25 732.88,-312.25 732.88,-289.75 703.62,-289.75"/>
-<polygon fill="none" stroke="black" points="703.62,-289.75 703.62,-312.25 732.88,-312.25 732.88,-289.75 703.62,-289.75"/>
-<text xml:space="preserve" text-anchor="start" x="706.62" y="-296.5" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="#e0ffe0" stroke="none" points="732.88,-289.75 732.88,-312.25 749.38,-312.25 749.38,-289.75 732.88,-289.75"/>
-<polygon fill="none" stroke="black" points="732.88,-289.75 732.88,-312.25 749.38,-312.25 749.38,-289.75 732.88,-289.75"/>
-<text xml:space="preserve" text-anchor="start" x="735.88" y="-296.5" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="#e0ffe0" stroke="none" points="677.38,-413.75 677.38,-436.25 702.12,-436.25 702.12,-413.75 677.38,-413.75"/>
+<polygon fill="none" stroke="black" points="677.38,-413.75 677.38,-436.25 702.12,-436.25 702.12,-413.75 677.38,-413.75"/>
+<text xml:space="preserve" text-anchor="start" x="680.38" y="-420.5" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="702.12,-413.75 702.12,-436.25 729.12,-436.25 729.12,-413.75 702.12,-413.75"/>
+<polygon fill="none" stroke="black" points="702.12,-413.75 702.12,-436.25 729.12,-436.25 729.12,-413.75 702.12,-413.75"/>
+<text xml:space="preserve" text-anchor="start" x="705.12" y="-420.5" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="729.12,-413.75 729.12,-436.25 758.38,-436.25 758.38,-413.75 729.12,-413.75"/>
+<polygon fill="none" stroke="black" points="729.12,-413.75 729.12,-436.25 758.38,-436.25 758.38,-413.75 729.12,-413.75"/>
+<text xml:space="preserve" text-anchor="start" x="732.12" y="-420.5" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="758.38,-413.75 758.38,-436.25 774.88,-436.25 774.88,-413.75 758.38,-413.75"/>
+<polygon fill="none" stroke="black" points="758.38,-413.75 758.38,-436.25 774.88,-436.25 774.88,-413.75 758.38,-413.75"/>
+<text xml:space="preserve" text-anchor="start" x="761.38" y="-420.5" font-family="Times,serif" font-size="14.00">id</text>
</g>
<!-- solec__seq_payload_switch&#45;&gt;success__seq -->
<g id="edge6" class="edge">
<title>solec__seq_payload_switch:case4&#45;&gt;success__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M546.5,-467C598.23,-467 547.38,-394.88 581.5,-356 595.29,-340.29 614.51,-328.76 633.44,-320.43"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="633.18,-324.32 641.1,-317.28 630.52,-317.85 633.18,-324.32"/>
+<path fill="none" stroke="black" stroke-width="2" d="M554.75,-496.25C571.9,-496.25 574.02,-486.84 589.75,-480 615.59,-468.76 644.49,-456.92 668.93,-447.12"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="668.66,-450.99 676.65,-444.03 666.06,-444.49 668.66,-450.99"/>
</g>
<!-- test__seq -->
<g id="node9" class="node">
<title>test__seq</title>
-<polygon fill="#e0ffe0" stroke="none" points="636.5,-207.75 636.5,-230.25 661.25,-230.25 661.25,-207.75 636.5,-207.75"/>
-<polygon fill="none" stroke="black" points="636.5,-207.75 636.5,-230.25 661.25,-230.25 661.25,-207.75 636.5,-207.75"/>
-<text xml:space="preserve" text-anchor="start" x="639.5" y="-214.5" font-family="Times,serif" font-size="14.00">pos</text>
-<polygon fill="#e0ffe0" stroke="none" points="661.25,-207.75 661.25,-230.25 688.25,-230.25 688.25,-207.75 661.25,-207.75"/>
-<polygon fill="none" stroke="black" points="661.25,-207.75 661.25,-230.25 688.25,-230.25 688.25,-207.75 661.25,-207.75"/>
-<text xml:space="preserve" text-anchor="start" x="664.25" y="-214.5" font-family="Times,serif" font-size="14.00">size</text>
-<polygon fill="#e0ffe0" stroke="none" points="688.25,-207.75 688.25,-230.25 727.25,-230.25 727.25,-207.75 688.25,-207.75"/>
-<polygon fill="none" stroke="black" points="688.25,-207.75 688.25,-230.25 727.25,-230.25 727.25,-207.75 688.25,-207.75"/>
-<text xml:space="preserve" text-anchor="start" x="696.12" y="-214.5" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="#e0ffe0" stroke="none" points="727.25,-207.75 727.25,-230.25 764.75,-230.25 764.75,-207.75 727.25,-207.75"/>
-<polygon fill="none" stroke="black" points="727.25,-207.75 727.25,-230.25 764.75,-230.25 764.75,-207.75 727.25,-207.75"/>
-<text xml:space="preserve" text-anchor="start" x="740.75" y="-214.5" font-family="Times,serif" font-size="14.00">id</text>
-<polygon fill="none" stroke="black" points="636.5,-185.25 636.5,-207.75 661.25,-207.75 661.25,-185.25 636.5,-185.25"/>
-<text xml:space="preserve" text-anchor="start" x="645.5" y="-192" font-family="Times,serif" font-size="14.00">0</text>
-<polygon fill="none" stroke="black" points="661.25,-185.25 661.25,-207.75 688.25,-207.75 688.25,-185.25 661.25,-185.25"/>
-<text xml:space="preserve" text-anchor="start" x="671.38" y="-192" font-family="Times,serif" font-size="14.00">1</text>
-<polygon fill="none" stroke="black" points="688.25,-185.25 688.25,-207.75 727.25,-207.75 727.25,-185.25 688.25,-185.25"/>
-<text xml:space="preserve" text-anchor="start" x="701" y="-192" font-family="Times,serif" font-size="14.00">u1</text>
-<polygon fill="none" stroke="black" points="727.25,-185.25 727.25,-207.75 764.75,-207.75 764.75,-185.25 727.25,-185.25"/>
-<text xml:space="preserve" text-anchor="start" x="730.25" y="-192" font-family="Times,serif" font-size="14.00">num1</text>
-<polygon fill="none" stroke="black" points="636.5,-162.75 636.5,-185.25 661.25,-185.25 661.25,-162.75 636.5,-162.75"/>
-<text xml:space="preserve" text-anchor="start" x="645.5" y="-169.5" font-family="Times,serif" font-size="14.00">1</text>
-<polygon fill="none" stroke="black" points="661.25,-162.75 661.25,-185.25 688.25,-185.25 688.25,-162.75 661.25,-162.75"/>
-<text xml:space="preserve" text-anchor="start" x="671.38" y="-169.5" font-family="Times,serif" font-size="14.00">8</text>
-<polygon fill="none" stroke="black" points="688.25,-162.75 688.25,-185.25 727.25,-185.25 727.25,-162.75 688.25,-162.75"/>
-<text xml:space="preserve" text-anchor="start" x="694.62" y="-169.5" font-family="Times,serif" font-size="14.00">u8be</text>
-<polygon fill="none" stroke="black" points="727.25,-162.75 727.25,-185.25 764.75,-185.25 764.75,-162.75 727.25,-162.75"/>
-<text xml:space="preserve" text-anchor="start" x="730.25" y="-169.5" font-family="Times,serif" font-size="14.00">time1</text>
-<polygon fill="none" stroke="black" points="636.5,-140.25 636.5,-162.75 661.25,-162.75 661.25,-140.25 636.5,-140.25"/>
-<text xml:space="preserve" text-anchor="start" x="645.5" y="-147" font-family="Times,serif" font-size="14.00">9</text>
-<polygon fill="none" stroke="black" points="661.25,-140.25 661.25,-162.75 688.25,-162.75 688.25,-140.25 661.25,-140.25"/>
-<text xml:space="preserve" text-anchor="start" x="669.12" y="-147" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="688.25,-140.25 688.25,-162.75 727.25,-162.75 727.25,-140.25 688.25,-140.25"/>
-<text xml:space="preserve" text-anchor="start" x="691.25" y="-147" font-family="Times,serif" font-size="14.00">String</text>
-<polygon fill="none" stroke="black" points="727.25,-140.25 727.25,-162.75 764.75,-162.75 764.75,-140.25 727.25,-140.25"/>
-<text xml:space="preserve" text-anchor="start" x="735.88" y="-147" font-family="Times,serif" font-size="14.00">str1</text>
-<polygon fill="none" stroke="black" points="636.5,-117.75 636.5,-140.25 661.25,-140.25 661.25,-117.75 636.5,-117.75"/>
-<text xml:space="preserve" text-anchor="start" x="643.25" y="-124.5" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="661.25,-117.75 661.25,-140.25 688.25,-140.25 688.25,-117.75 661.25,-117.75"/>
-<text xml:space="preserve" text-anchor="start" x="671.38" y="-124.5" font-family="Times,serif" font-size="14.00">2</text>
-<polygon fill="none" stroke="black" points="688.25,-117.75 688.25,-140.25 727.25,-140.25 727.25,-117.75 688.25,-117.75"/>
-<text xml:space="preserve" text-anchor="start" x="694.62" y="-124.5" font-family="Times,serif" font-size="14.00">u2be</text>
-<polygon fill="none" stroke="black" points="727.25,-117.75 727.25,-140.25 764.75,-140.25 764.75,-117.75 727.25,-117.75"/>
-<text xml:space="preserve" text-anchor="start" x="730.25" y="-124.5" font-family="Times,serif" font-size="14.00">num2</text>
-<polygon fill="none" stroke="black" points="636.5,-95.25 636.5,-117.75 661.25,-117.75 661.25,-95.25 636.5,-95.25"/>
-<text xml:space="preserve" text-anchor="start" x="643.25" y="-102" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="661.25,-95.25 661.25,-117.75 688.25,-117.75 688.25,-95.25 661.25,-95.25"/>
-<text xml:space="preserve" text-anchor="start" x="669.12" y="-102" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="688.25,-95.25 688.25,-117.75 727.25,-117.75 727.25,-95.25 688.25,-95.25"/>
-<text xml:space="preserve" text-anchor="start" x="691.25" y="-102" font-family="Times,serif" font-size="14.00">String</text>
-<polygon fill="none" stroke="black" points="727.25,-95.25 727.25,-117.75 764.75,-117.75 764.75,-95.25 727.25,-95.25"/>
-<text xml:space="preserve" text-anchor="start" x="735.88" y="-102" font-family="Times,serif" font-size="14.00">str2</text>
-<polygon fill="none" stroke="black" points="636.5,-72.75 636.5,-95.25 661.25,-95.25 661.25,-72.75 636.5,-72.75"/>
-<text xml:space="preserve" text-anchor="start" x="643.25" y="-79.5" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="661.25,-72.75 661.25,-95.25 688.25,-95.25 688.25,-72.75 661.25,-72.75"/>
-<text xml:space="preserve" text-anchor="start" x="671.38" y="-79.5" font-family="Times,serif" font-size="14.00">4</text>
-<polygon fill="none" stroke="black" points="688.25,-72.75 688.25,-95.25 727.25,-95.25 727.25,-72.75 688.25,-72.75"/>
-<text xml:space="preserve" text-anchor="start" x="694.62" y="-79.5" font-family="Times,serif" font-size="14.00">u4be</text>
-<polygon fill="none" stroke="black" points="727.25,-72.75 727.25,-95.25 764.75,-95.25 764.75,-72.75 727.25,-72.75"/>
-<text xml:space="preserve" text-anchor="start" x="730.25" y="-79.5" font-family="Times,serif" font-size="14.00">num3</text>
-<polygon fill="none" stroke="black" points="636.5,-50.25 636.5,-72.75 661.25,-72.75 661.25,-50.25 636.5,-50.25"/>
-<text xml:space="preserve" text-anchor="start" x="643.25" y="-57" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="661.25,-50.25 661.25,-72.75 688.25,-72.75 688.25,-50.25 661.25,-50.25"/>
-<text xml:space="preserve" text-anchor="start" x="669.12" y="-57" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="688.25,-50.25 688.25,-72.75 727.25,-72.75 727.25,-50.25 688.25,-50.25"/>
-<text xml:space="preserve" text-anchor="start" x="691.25" y="-57" font-family="Times,serif" font-size="14.00">String</text>
-<polygon fill="none" stroke="black" points="727.25,-50.25 727.25,-72.75 764.75,-72.75 764.75,-50.25 727.25,-50.25"/>
-<text xml:space="preserve" text-anchor="start" x="735.88" y="-57" font-family="Times,serif" font-size="14.00">str3</text>
-<polygon fill="none" stroke="black" points="636.5,-27.75 636.5,-50.25 661.25,-50.25 661.25,-27.75 636.5,-27.75"/>
-<text xml:space="preserve" text-anchor="start" x="643.25" y="-34.5" font-family="Times,serif" font-size="14.00">...</text>
-<polygon fill="none" stroke="black" points="661.25,-27.75 661.25,-50.25 688.25,-50.25 688.25,-27.75 661.25,-27.75"/>
-<text xml:space="preserve" text-anchor="start" x="671.38" y="-34.5" font-family="Times,serif" font-size="14.00">8</text>
-<polygon fill="none" stroke="black" points="688.25,-27.75 688.25,-50.25 727.25,-50.25 727.25,-27.75 688.25,-27.75"/>
-<text xml:space="preserve" text-anchor="start" x="694.62" y="-34.5" font-family="Times,serif" font-size="14.00">u8be</text>
-<polygon fill="none" stroke="black" points="727.25,-27.75 727.25,-50.25 764.75,-50.25 764.75,-27.75 727.25,-27.75"/>
-<text xml:space="preserve" text-anchor="start" x="730.25" y="-34.5" font-family="Times,serif" font-size="14.00">num4</text>
+<polygon fill="#e0ffe0" stroke="none" points="662,-331.75 662,-354.25 686.75,-354.25 686.75,-331.75 662,-331.75"/>
+<polygon fill="none" stroke="black" points="662,-331.75 662,-354.25 686.75,-354.25 686.75,-331.75 662,-331.75"/>
+<text xml:space="preserve" text-anchor="start" x="665" y="-338.5" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="686.75,-331.75 686.75,-354.25 713.75,-354.25 713.75,-331.75 686.75,-331.75"/>
+<polygon fill="none" stroke="black" points="686.75,-331.75 686.75,-354.25 713.75,-354.25 713.75,-331.75 686.75,-331.75"/>
+<text xml:space="preserve" text-anchor="start" x="689.75" y="-338.5" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="713.75,-331.75 713.75,-354.25 752.75,-354.25 752.75,-331.75 713.75,-331.75"/>
+<polygon fill="none" stroke="black" points="713.75,-331.75 713.75,-354.25 752.75,-354.25 752.75,-331.75 713.75,-331.75"/>
+<text xml:space="preserve" text-anchor="start" x="721.62" y="-338.5" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="752.75,-331.75 752.75,-354.25 790.25,-354.25 790.25,-331.75 752.75,-331.75"/>
+<polygon fill="none" stroke="black" points="752.75,-331.75 752.75,-354.25 790.25,-354.25 790.25,-331.75 752.75,-331.75"/>
+<text xml:space="preserve" text-anchor="start" x="766.25" y="-338.5" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="none" stroke="black" points="662,-309.25 662,-331.75 686.75,-331.75 686.75,-309.25 662,-309.25"/>
+<text xml:space="preserve" text-anchor="start" x="671" y="-316" font-family="Times,serif" font-size="14.00">0</text>
+<polygon fill="none" stroke="black" points="686.75,-309.25 686.75,-331.75 713.75,-331.75 713.75,-309.25 686.75,-309.25"/>
+<text xml:space="preserve" text-anchor="start" x="696.88" y="-316" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="713.75,-309.25 713.75,-331.75 752.75,-331.75 752.75,-309.25 713.75,-309.25"/>
+<text xml:space="preserve" text-anchor="start" x="726.5" y="-316" font-family="Times,serif" font-size="14.00">u1</text>
+<polygon fill="none" stroke="black" points="752.75,-309.25 752.75,-331.75 790.25,-331.75 790.25,-309.25 752.75,-309.25"/>
+<text xml:space="preserve" text-anchor="start" x="755.75" y="-316" font-family="Times,serif" font-size="14.00">num1</text>
+<polygon fill="none" stroke="black" points="662,-286.75 662,-309.25 686.75,-309.25 686.75,-286.75 662,-286.75"/>
+<text xml:space="preserve" text-anchor="start" x="671" y="-293.5" font-family="Times,serif" font-size="14.00">1</text>
+<polygon fill="none" stroke="black" points="686.75,-286.75 686.75,-309.25 713.75,-309.25 713.75,-286.75 686.75,-286.75"/>
+<text xml:space="preserve" text-anchor="start" x="696.88" y="-293.5" font-family="Times,serif" font-size="14.00">8</text>
+<polygon fill="none" stroke="black" points="713.75,-286.75 713.75,-309.25 752.75,-309.25 752.75,-286.75 713.75,-286.75"/>
+<text xml:space="preserve" text-anchor="start" x="720.12" y="-293.5" font-family="Times,serif" font-size="14.00">u8be</text>
+<polygon fill="none" stroke="black" points="752.75,-286.75 752.75,-309.25 790.25,-309.25 790.25,-286.75 752.75,-286.75"/>
+<text xml:space="preserve" text-anchor="start" x="755.75" y="-293.5" font-family="Times,serif" font-size="14.00">time1</text>
+<polygon fill="none" stroke="black" points="662,-264.25 662,-286.75 686.75,-286.75 686.75,-264.25 662,-264.25"/>
+<text xml:space="preserve" text-anchor="start" x="671" y="-271" font-family="Times,serif" font-size="14.00">9</text>
+<polygon fill="none" stroke="black" points="686.75,-264.25 686.75,-286.75 713.75,-286.75 713.75,-264.25 686.75,-264.25"/>
+<text xml:space="preserve" text-anchor="start" x="694.62" y="-271" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="713.75,-264.25 713.75,-286.75 752.75,-286.75 752.75,-264.25 713.75,-264.25"/>
+<text xml:space="preserve" text-anchor="start" x="716.75" y="-271" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="752.75,-264.25 752.75,-286.75 790.25,-286.75 790.25,-264.25 752.75,-264.25"/>
+<text xml:space="preserve" text-anchor="start" x="761.38" y="-271" font-family="Times,serif" font-size="14.00">str1</text>
+<polygon fill="none" stroke="black" points="662,-241.75 662,-264.25 686.75,-264.25 686.75,-241.75 662,-241.75"/>
+<text xml:space="preserve" text-anchor="start" x="668.75" y="-248.5" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="686.75,-241.75 686.75,-264.25 713.75,-264.25 713.75,-241.75 686.75,-241.75"/>
+<text xml:space="preserve" text-anchor="start" x="696.88" y="-248.5" font-family="Times,serif" font-size="14.00">2</text>
+<polygon fill="none" stroke="black" points="713.75,-241.75 713.75,-264.25 752.75,-264.25 752.75,-241.75 713.75,-241.75"/>
+<text xml:space="preserve" text-anchor="start" x="720.12" y="-248.5" font-family="Times,serif" font-size="14.00">u2be</text>
+<polygon fill="none" stroke="black" points="752.75,-241.75 752.75,-264.25 790.25,-264.25 790.25,-241.75 752.75,-241.75"/>
+<text xml:space="preserve" text-anchor="start" x="755.75" y="-248.5" font-family="Times,serif" font-size="14.00">num2</text>
+<polygon fill="none" stroke="black" points="662,-219.25 662,-241.75 686.75,-241.75 686.75,-219.25 662,-219.25"/>
+<text xml:space="preserve" text-anchor="start" x="668.75" y="-226" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="686.75,-219.25 686.75,-241.75 713.75,-241.75 713.75,-219.25 686.75,-219.25"/>
+<text xml:space="preserve" text-anchor="start" x="694.62" y="-226" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="713.75,-219.25 713.75,-241.75 752.75,-241.75 752.75,-219.25 713.75,-219.25"/>
+<text xml:space="preserve" text-anchor="start" x="716.75" y="-226" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="752.75,-219.25 752.75,-241.75 790.25,-241.75 790.25,-219.25 752.75,-219.25"/>
+<text xml:space="preserve" text-anchor="start" x="761.38" y="-226" font-family="Times,serif" font-size="14.00">str2</text>
+<polygon fill="none" stroke="black" points="662,-196.75 662,-219.25 686.75,-219.25 686.75,-196.75 662,-196.75"/>
+<text xml:space="preserve" text-anchor="start" x="668.75" y="-203.5" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="686.75,-196.75 686.75,-219.25 713.75,-219.25 713.75,-196.75 686.75,-196.75"/>
+<text xml:space="preserve" text-anchor="start" x="696.88" y="-203.5" font-family="Times,serif" font-size="14.00">4</text>
+<polygon fill="none" stroke="black" points="713.75,-196.75 713.75,-219.25 752.75,-219.25 752.75,-196.75 713.75,-196.75"/>
+<text xml:space="preserve" text-anchor="start" x="720.12" y="-203.5" font-family="Times,serif" font-size="14.00">u4be</text>
+<polygon fill="none" stroke="black" points="752.75,-196.75 752.75,-219.25 790.25,-219.25 790.25,-196.75 752.75,-196.75"/>
+<text xml:space="preserve" text-anchor="start" x="755.75" y="-203.5" font-family="Times,serif" font-size="14.00">num3</text>
+<polygon fill="none" stroke="black" points="662,-174.25 662,-196.75 686.75,-196.75 686.75,-174.25 662,-174.25"/>
+<text xml:space="preserve" text-anchor="start" x="668.75" y="-181" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="686.75,-174.25 686.75,-196.75 713.75,-196.75 713.75,-174.25 686.75,-174.25"/>
+<text xml:space="preserve" text-anchor="start" x="694.62" y="-181" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="713.75,-174.25 713.75,-196.75 752.75,-196.75 752.75,-174.25 713.75,-174.25"/>
+<text xml:space="preserve" text-anchor="start" x="716.75" y="-181" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="752.75,-174.25 752.75,-196.75 790.25,-196.75 790.25,-174.25 752.75,-174.25"/>
+<text xml:space="preserve" text-anchor="start" x="761.38" y="-181" font-family="Times,serif" font-size="14.00">str3</text>
+<polygon fill="none" stroke="black" points="662,-151.75 662,-174.25 686.75,-174.25 686.75,-151.75 662,-151.75"/>
+<text xml:space="preserve" text-anchor="start" x="668.75" y="-158.5" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="686.75,-151.75 686.75,-174.25 713.75,-174.25 713.75,-151.75 686.75,-151.75"/>
+<text xml:space="preserve" text-anchor="start" x="696.88" y="-158.5" font-family="Times,serif" font-size="14.00">8</text>
+<polygon fill="none" stroke="black" points="713.75,-151.75 713.75,-174.25 752.75,-174.25 752.75,-151.75 713.75,-151.75"/>
+<text xml:space="preserve" text-anchor="start" x="720.12" y="-158.5" font-family="Times,serif" font-size="14.00">u8be</text>
+<polygon fill="none" stroke="black" points="752.75,-151.75 752.75,-174.25 790.25,-174.25 790.25,-151.75 752.75,-151.75"/>
+<text xml:space="preserve" text-anchor="start" x="755.75" y="-158.5" font-family="Times,serif" font-size="14.00">num4</text>
</g>
<!-- solec__seq_payload_switch&#45;&gt;test__seq -->
<g id="edge7" class="edge">
<title>solec__seq_payload_switch:case5&#45;&gt;test__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M546.5,-444.5C585.83,-444.5 564.52,-306.48 581.5,-271 591.84,-249.4 606.2,-228.32 621.35,-209.29"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="623.07,-212.72 626.68,-202.76 617.65,-208.29 623.07,-212.72"/>
+<path fill="none" stroke="black" stroke-width="2" d="M554.75,-473.75C593.05,-473.75 568.44,-426.83 589.75,-395 605.89,-370.89 626.28,-347.1 646.3,-326.09"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="647.71,-329.67 652.14,-320.05 642.68,-324.8 647.71,-329.67"/>
+</g>
+<!-- user_auth__seq -->
+<g id="node10" class="node">
+<title>user_auth__seq</title>
+<polygon fill="#e0ffe0" stroke="none" points="662.75,-73.25 662.75,-95.75 687.5,-95.75 687.5,-73.25 662.75,-73.25"/>
+<polygon fill="none" stroke="black" points="662.75,-73.25 662.75,-95.75 687.5,-95.75 687.5,-73.25 662.75,-73.25"/>
+<text xml:space="preserve" text-anchor="start" x="665.75" y="-80" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="687.5,-73.25 687.5,-95.75 714.5,-95.75 714.5,-73.25 687.5,-73.25"/>
+<polygon fill="none" stroke="black" points="687.5,-73.25 687.5,-95.75 714.5,-95.75 714.5,-73.25 687.5,-73.25"/>
+<text xml:space="preserve" text-anchor="start" x="690.5" y="-80" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="714.5,-73.25 714.5,-95.75 753.5,-95.75 753.5,-73.25 714.5,-73.25"/>
+<polygon fill="none" stroke="black" points="714.5,-73.25 714.5,-95.75 753.5,-95.75 753.5,-73.25 714.5,-73.25"/>
+<text xml:space="preserve" text-anchor="start" x="722.38" y="-80" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="753.5,-73.25 753.5,-95.75 789.5,-95.75 789.5,-73.25 753.5,-73.25"/>
+<polygon fill="none" stroke="black" points="753.5,-73.25 753.5,-95.75 789.5,-95.75 789.5,-73.25 753.5,-73.25"/>
+<text xml:space="preserve" text-anchor="start" x="766.25" y="-80" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="none" stroke="black" points="662.75,-50.75 662.75,-73.25 687.5,-73.25 687.5,-50.75 662.75,-50.75"/>
+<text xml:space="preserve" text-anchor="start" x="671.75" y="-57.5" font-family="Times,serif" font-size="14.00">0</text>
+<polygon fill="none" stroke="black" points="687.5,-50.75 687.5,-73.25 714.5,-73.25 714.5,-50.75 687.5,-50.75"/>
+<text xml:space="preserve" text-anchor="start" x="695.38" y="-57.5" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="714.5,-50.75 714.5,-73.25 753.5,-73.25 753.5,-50.75 714.5,-50.75"/>
+<text xml:space="preserve" text-anchor="start" x="717.5" y="-57.5" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="753.5,-50.75 753.5,-73.25 789.5,-73.25 789.5,-50.75 753.5,-50.75"/>
+<text xml:space="preserve" text-anchor="start" x="756.5" y="-57.5" font-family="Times,serif" font-size="14.00">name</text>
+<polygon fill="none" stroke="black" points="662.75,-28.25 662.75,-50.75 687.5,-50.75 687.5,-28.25 662.75,-28.25"/>
+<text xml:space="preserve" text-anchor="start" x="669.5" y="-35" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="687.5,-28.25 687.5,-50.75 714.5,-50.75 714.5,-28.25 687.5,-28.25"/>
+<text xml:space="preserve" text-anchor="start" x="695.38" y="-35" font-family="Times,serif" font-size="14.00">...</text>
+<polygon fill="none" stroke="black" points="714.5,-28.25 714.5,-50.75 753.5,-50.75 753.5,-28.25 714.5,-28.25"/>
+<text xml:space="preserve" text-anchor="start" x="717.5" y="-35" font-family="Times,serif" font-size="14.00">String</text>
+<polygon fill="none" stroke="black" points="753.5,-28.25 753.5,-50.75 789.5,-50.75 789.5,-28.25 753.5,-28.25"/>
+<text xml:space="preserve" text-anchor="start" x="759.88" y="-35" font-family="Times,serif" font-size="14.00">pass</text>
+</g>
+<!-- solec__seq_payload_switch&#45;&gt;user_auth__seq -->
+<g id="edge8" class="edge">
+<title>solec__seq_payload_switch:case6&#45;&gt;user_auth__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M554.75,-451.25C625.24,-451.25 550.5,-194.55 589.75,-136 603.14,-116.03 623.79,-100.96 644.96,-89.82"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="644.92,-93.74 652.32,-86.16 641.8,-87.47 644.92,-93.74"/>
</g>
<!-- string__seq -->
<g id="node7" class="node">
<title>string__seq</title>
-<polygon fill="#e0ffe0" stroke="none" points="855.75,-416.25 855.75,-438.75 880.5,-438.75 880.5,-416.25 855.75,-416.25"/>
-<polygon fill="none" stroke="black" points="855.75,-416.25 855.75,-438.75 880.5,-438.75 880.5,-416.25 855.75,-416.25"/>
-<text xml:space="preserve" text-anchor="start" x="858.75" y="-423" font-family="Times,serif" font-size="14.00">pos</text>
-<polygon fill="#e0ffe0" stroke="none" points="880.5,-416.25 880.5,-438.75 952.5,-438.75 952.5,-416.25 880.5,-416.25"/>
-<polygon fill="none" stroke="black" points="880.5,-416.25 880.5,-438.75 952.5,-438.75 952.5,-416.25 880.5,-416.25"/>
-<text xml:space="preserve" text-anchor="start" x="906" y="-423" font-family="Times,serif" font-size="14.00">size</text>
-<polygon fill="#e0ffe0" stroke="none" points="952.5,-416.25 952.5,-438.75 1017.75,-438.75 1017.75,-416.25 952.5,-416.25"/>
-<polygon fill="none" stroke="black" points="952.5,-416.25 952.5,-438.75 1017.75,-438.75 1017.75,-416.25 952.5,-416.25"/>
-<text xml:space="preserve" text-anchor="start" x="973.5" y="-423" font-family="Times,serif" font-size="14.00">type</text>
-<polygon fill="#e0ffe0" stroke="none" points="1017.75,-416.25 1017.75,-438.75 1089.75,-438.75 1089.75,-416.25 1017.75,-416.25"/>
-<polygon fill="none" stroke="black" points="1017.75,-416.25 1017.75,-438.75 1089.75,-438.75 1089.75,-416.25 1017.75,-416.25"/>
-<text xml:space="preserve" text-anchor="start" x="1048.5" y="-423" font-family="Times,serif" font-size="14.00">id</text>
-<polygon fill="none" stroke="black" points="855.75,-393.75 855.75,-416.25 880.5,-416.25 880.5,-393.75 855.75,-393.75"/>
-<text xml:space="preserve" text-anchor="start" x="864.75" y="-400.5" font-family="Times,serif" font-size="14.00">0</text>
-<polygon fill="none" stroke="black" points="880.5,-393.75 880.5,-416.25 952.5,-416.25 952.5,-393.75 880.5,-393.75"/>
-<text xml:space="preserve" text-anchor="start" x="913.12" y="-400.5" font-family="Times,serif" font-size="14.00">2</text>
-<polygon fill="none" stroke="black" points="952.5,-393.75 952.5,-416.25 1017.75,-416.25 1017.75,-393.75 952.5,-393.75"/>
-<text xml:space="preserve" text-anchor="start" x="972" y="-400.5" font-family="Times,serif" font-size="14.00">u2be</text>
-<polygon fill="none" stroke="black" points="1017.75,-393.75 1017.75,-416.25 1089.75,-416.25 1089.75,-393.75 1017.75,-393.75"/>
-<text xml:space="preserve" text-anchor="start" x="1020.75" y="-400.5" font-family="Times,serif" font-size="14.00">len_payload</text>
-<polygon fill="none" stroke="black" points="855.75,-371.25 855.75,-393.75 880.5,-393.75 880.5,-371.25 855.75,-371.25"/>
-<text xml:space="preserve" text-anchor="start" x="864.75" y="-378" font-family="Times,serif" font-size="14.00">2</text>
-<polygon fill="none" stroke="black" points="880.5,-371.25 880.5,-393.75 952.5,-393.75 952.5,-371.25 880.5,-371.25"/>
-<text xml:space="preserve" text-anchor="start" x="883.5" y="-378" font-family="Times,serif" font-size="14.00">len_payload</text>
-<polygon fill="none" stroke="black" points="952.5,-371.25 952.5,-393.75 1017.75,-393.75 1017.75,-371.25 952.5,-371.25"/>
-<text xml:space="preserve" text-anchor="start" x="955.5" y="-378" font-family="Times,serif" font-size="14.00">str(UTF&#45;8)</text>
-<polygon fill="none" stroke="black" points="1017.75,-371.25 1017.75,-393.75 1089.75,-393.75 1089.75,-371.25 1017.75,-371.25"/>
-<text xml:space="preserve" text-anchor="start" x="1032.38" y="-378" font-family="Times,serif" font-size="14.00">payload</text>
-</g>
-<!-- auth__seq&#45;&gt;string__seq -->
-<g id="edge9" class="edge">
-<title>auth__seq:name_type&#45;&gt;string__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M765,-801C919.93,-801 958.96,-559.88 968.63,-453.94"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="971.98,-455.89 969.34,-445.63 965,-455.29 971.98,-455.89"/>
+<polygon fill="#e0ffe0" stroke="none" points="898.5,-286.25 898.5,-308.75 923.25,-308.75 923.25,-286.25 898.5,-286.25"/>
+<polygon fill="none" stroke="black" points="898.5,-286.25 898.5,-308.75 923.25,-308.75 923.25,-286.25 898.5,-286.25"/>
+<text xml:space="preserve" text-anchor="start" x="901.5" y="-293" font-family="Times,serif" font-size="14.00">pos</text>
+<polygon fill="#e0ffe0" stroke="none" points="923.25,-286.25 923.25,-308.75 995.25,-308.75 995.25,-286.25 923.25,-286.25"/>
+<polygon fill="none" stroke="black" points="923.25,-286.25 923.25,-308.75 995.25,-308.75 995.25,-286.25 923.25,-286.25"/>
+<text xml:space="preserve" text-anchor="start" x="948.75" y="-293" font-family="Times,serif" font-size="14.00">size</text>
+<polygon fill="#e0ffe0" stroke="none" points="995.25,-286.25 995.25,-308.75 1060.5,-308.75 1060.5,-286.25 995.25,-286.25"/>
+<polygon fill="none" stroke="black" points="995.25,-286.25 995.25,-308.75 1060.5,-308.75 1060.5,-286.25 995.25,-286.25"/>
+<text xml:space="preserve" text-anchor="start" x="1016.25" y="-293" font-family="Times,serif" font-size="14.00">type</text>
+<polygon fill="#e0ffe0" stroke="none" points="1060.5,-286.25 1060.5,-308.75 1132.5,-308.75 1132.5,-286.25 1060.5,-286.25"/>
+<polygon fill="none" stroke="black" points="1060.5,-286.25 1060.5,-308.75 1132.5,-308.75 1132.5,-286.25 1060.5,-286.25"/>
+<text xml:space="preserve" text-anchor="start" x="1091.25" y="-293" font-family="Times,serif" font-size="14.00">id</text>
+<polygon fill="none" stroke="black" points="898.5,-263.75 898.5,-286.25 923.25,-286.25 923.25,-263.75 898.5,-263.75"/>
+<text xml:space="preserve" text-anchor="start" x="907.5" y="-270.5" font-family="Times,serif" font-size="14.00">0</text>
+<polygon fill="none" stroke="black" points="923.25,-263.75 923.25,-286.25 995.25,-286.25 995.25,-263.75 923.25,-263.75"/>
+<text xml:space="preserve" text-anchor="start" x="955.88" y="-270.5" font-family="Times,serif" font-size="14.00">2</text>
+<polygon fill="none" stroke="black" points="995.25,-263.75 995.25,-286.25 1060.5,-286.25 1060.5,-263.75 995.25,-263.75"/>
+<text xml:space="preserve" text-anchor="start" x="1014.75" y="-270.5" font-family="Times,serif" font-size="14.00">u2be</text>
+<polygon fill="none" stroke="black" points="1060.5,-263.75 1060.5,-286.25 1132.5,-286.25 1132.5,-263.75 1060.5,-263.75"/>
+<text xml:space="preserve" text-anchor="start" x="1063.5" y="-270.5" font-family="Times,serif" font-size="14.00">len_payload</text>
+<polygon fill="none" stroke="black" points="898.5,-241.25 898.5,-263.75 923.25,-263.75 923.25,-241.25 898.5,-241.25"/>
+<text xml:space="preserve" text-anchor="start" x="907.5" y="-248" font-family="Times,serif" font-size="14.00">2</text>
+<polygon fill="none" stroke="black" points="923.25,-241.25 923.25,-263.75 995.25,-263.75 995.25,-241.25 923.25,-241.25"/>
+<text xml:space="preserve" text-anchor="start" x="926.25" y="-248" font-family="Times,serif" font-size="14.00">len_payload</text>
+<polygon fill="none" stroke="black" points="995.25,-241.25 995.25,-263.75 1060.5,-263.75 1060.5,-241.25 995.25,-241.25"/>
+<text xml:space="preserve" text-anchor="start" x="998.25" y="-248" font-family="Times,serif" font-size="14.00">str(UTF&#45;8)</text>
+<polygon fill="none" stroke="black" points="1060.5,-241.25 1060.5,-263.75 1132.5,-263.75 1132.5,-241.25 1060.5,-241.25"/>
+<text xml:space="preserve" text-anchor="start" x="1075.12" y="-248" font-family="Times,serif" font-size="14.00">payload</text>
</g>
-<!-- auth__seq&#45;&gt;string__seq -->
+<!-- message__seq&#45;&gt;string__seq -->
<g id="edge10" class="edge">
-<title>auth__seq:pass_type&#45;&gt;string__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M746,-766.25C746,-732.78 793.73,-772.06 819.75,-751 913.62,-675.03 951.08,-529.45 964.72,-453.63"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="967.87,-455.95 966.13,-445.5 960.98,-454.76 967.87,-455.95"/>
+<title>message__seq:source_type&#45;&gt;string__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M804.38,-676.5C961.91,-676.5 1001.56,-430.85 1011.36,-323.84"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="1014.71,-325.69 1012.08,-315.43 1007.74,-325.09 1014.71,-325.69"/>
</g>
<!-- message__seq&#45;&gt;string__seq -->
<g id="edge11" class="edge">
-<title>message__seq:source_type&#45;&gt;string__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M778.88,-450.5C798.31,-450.5 818.55,-448.29 838.31,-444.83"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="837.38,-448.57 846.57,-443.29 836.1,-441.69 837.38,-448.57"/>
+<title>message__seq:target_type&#45;&gt;string__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M804.38,-654C953.61,-654 997.73,-426.47 1010.04,-324"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="1013.32,-326.07 1010.98,-315.73 1006.37,-325.27 1013.32,-326.07"/>
</g>
<!-- message__seq&#45;&gt;string__seq -->
<g id="edge12" class="edge">
-<title>message__seq:target_type&#45;&gt;string__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M778.88,-428C797.55,-428 817.17,-426.92 836.46,-425.24"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="835.12,-428.88 844.75,-424.46 834.47,-421.91 835.12,-428.88"/>
+<title>message__seq:content_type&#45;&gt;string__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M804.38,-609C937.55,-609 989.63,-416.41 1006.99,-323.72"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="1010.11,-326.11 1008.44,-315.64 1003.22,-324.86 1010.11,-326.11"/>
</g>
-<!-- message__seq&#45;&gt;string__seq -->
+<!-- server_auth__seq&#45;&gt;string__seq -->
<g id="edge13" class="edge">
-<title>message__seq:content_type&#45;&gt;string__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M778.88,-383C797.61,-383 817.3,-384.04 836.66,-385.66"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="834.71,-389 844.98,-386.41 835.34,-382.03 834.71,-389"/>
+<title>server_auth__seq:name_type&#45;&gt;string__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M790.5,-507.75C892.25,-507.75 962.29,-390.84 994.46,-322.73"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="996.83,-325.95 997.84,-315.4 990.47,-323.01 996.83,-325.95"/>
</g>
<!-- string__seq&#45;&gt;string__seq -->
<g id="edge14" class="edge">
<title>string__seq:len_payload_type&#45;&gt;string__seq:payload_size</title>
-<path fill="none" stroke="#404040" d="M1082.95,-416.22C1117.56,-435.5 1097.76,-460.75 985.12,-460.75 879.94,-460.75 855.72,-425.4 881.16,-400.64"/>
-<polygon fill="#404040" stroke="#404040" points="883.19,-403.5 888.93,-394.6 878.89,-397.98 883.19,-403.5"/>
+<path fill="none" stroke="#404040" d="M1127.57,-286.22C1164.49,-305.5 1144.06,-330.75 1027.88,-330.75 918.9,-330.75 894.17,-295.1 921.97,-270.33"/>
+<polygon fill="#404040" stroke="#404040" points="923.9,-273.25 929.96,-264.55 919.8,-267.58 923.9,-273.25"/>
</g>
<!-- test__seq&#45;&gt;string__seq -->
<g id="edge15" class="edge">
<title>test__seq:str1_type&#45;&gt;string__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M765.75,-151.5C870.26,-151.5 931.06,-282.87 956.91,-356.47"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="953.1,-356.13 959.64,-364.46 959.72,-353.86 953.1,-356.13"/>
+<path fill="none" stroke="black" stroke-width="2" d="M791.25,-275.5C819.65,-275.5 850.08,-275.46 879.06,-275.4"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="877.49,-278.9 887.48,-275.38 877.47,-271.9 877.49,-278.9"/>
</g>
<!-- test__seq&#45;&gt;string__seq -->
<g id="edge16" class="edge">
<title>test__seq:str2_type&#45;&gt;string__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M765.75,-106.5C885.7,-106.5 941.2,-271.78 961.75,-356.37"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="957.98,-355.62 963.67,-364.55 964.79,-354.01 957.98,-355.62"/>
+<path fill="none" stroke="black" stroke-width="2" d="M791.25,-230.5C820.16,-230.5 850.78,-234.13 879.77,-239.32"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="877.34,-242.43 887.82,-240.83 878.63,-235.55 877.34,-242.43"/>
</g>
<!-- test__seq&#45;&gt;string__seq -->
<g id="edge17" class="edge">
<title>test__seq:str3_type&#45;&gt;string__seq</title>
-<path fill="none" stroke="black" stroke-width="2" d="M765.75,-61.5C901.43,-61.5 949.95,-261.03 965.36,-355.95"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="961.66,-354.92 966.65,-364.27 968.57,-353.85 961.66,-354.92"/>
+<path fill="none" stroke="black" stroke-width="2" d="M791.25,-185.5C845.95,-185.5 903.13,-208.94 945.92,-231.82"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="942.82,-234.11 953.27,-235.85 946.19,-227.98 942.82,-234.11"/>
+</g>
+<!-- user_auth__seq&#45;&gt;string__seq -->
+<g id="edge18" class="edge">
+<title>user_auth__seq:name_type&#45;&gt;string__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M790.5,-62C885.81,-62 956.69,-164.53 991.17,-227.32"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="987.34,-227.59 995.15,-234.74 993.51,-224.28 987.34,-227.59"/>
+</g>
+<!-- user_auth__seq&#45;&gt;string__seq -->
+<g id="edge19" class="edge">
+<title>user_auth__seq:pass_type&#45;&gt;string__seq</title>
+<path fill="none" stroke="black" stroke-width="2" d="M790.5,-39.5C893.15,-39.5 963.02,-158.41 994.87,-227.24"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="990.91,-227 998.22,-234.67 997.29,-224.11 990.91,-227"/>
</g>
</g>
</svg>