Skip to content

Commit 1f05b93

Browse files
authored
Merge pull request #126 from ChrisSon15/doc-CustomTx
Documentation for custom tx & blinded signature article update transaction diagram
2 parents c0d46ff + e6c3fd8 commit 1f05b93

4 files changed

Lines changed: 201 additions & 1 deletion

File tree

concept/MuSig2adaptor-rust.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Up to here, its independent of the message and can be precalculated.
6060

6161
### Sign round 2
6262

63-
From collected Nonce the aggregated Nonce $R$ is calculated:
63+
At this point in time the public Adaptor $T$ must be known to both parties. From collected Nonce the aggregated Nonce $R$ is calculated:
6464

6565
$$\begin{aligned}
6666
(2)~~ R_1 &= R_{a,1} + R_{b,1} \\

concept/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
- [update.md](update.md)
1111
- [ProtocolUpdate2.md](ProtocolUpdate2.md)
12+
- [use of blinded signature in SwapTx](blindedsig/blindedsig-swaptx.md)
1213

1314
## Different aspects in detail
1415

concept/STx7.drawio

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
<mxfile host="drawio-plugin" modified="2026-03-05T14:00:00.567Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" etag="HtWYuJCgjJPmr4AlW5qf" version="22.1.22" type="embed">
2+
<diagram name="Page-1" id="4t2JOigZqfDRrmz9JXpL">
3+
<mxGraphModel dx="1168" dy="1236" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" background="#FFFFFF" math="1" shadow="0">
4+
<root>
5+
<mxCell id="0" />
6+
<mxCell id="1" parent="0" />
7+
<mxCell id="2" value="Alice&#39;s Funds" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
8+
<mxGeometry x="30" y="130" width="140" height="90" as="geometry" />
9+
</mxCell>
10+
<mxCell id="3" value="&lt;b&gt;Output 0: &lt;/b&gt;Seller deposit and trade amount&amp;nbsp;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="2" vertex="1">
11+
<mxGeometry y="30" width="140" height="60" as="geometry" />
12+
</mxCell>
13+
<mxCell id="6" value="Bob&#39;s Funds" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
14+
<mxGeometry x="30" y="460" width="145" height="70" as="geometry" />
15+
</mxCell>
16+
<mxCell id="7" value="&lt;b&gt;Output 0: &lt;/b&gt;Buyer deposit&amp;nbsp;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="6" vertex="1">
17+
<mxGeometry y="30" width="145" height="40" as="geometry" />
18+
</mxCell>
19+
<mxCell id="12" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="10" target="3" edge="1">
20+
<mxGeometry relative="1" as="geometry" />
21+
</mxCell>
22+
<mxCell id="22" value="Alice Signature" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;" parent="12" vertex="1" connectable="0">
23+
<mxGeometry x="0.2175" y="-1" relative="1" as="geometry">
24+
<mxPoint x="-17" y="37" as="offset" />
25+
</mxGeometry>
26+
</mxCell>
27+
<mxCell id="8" value="Deposit Tx" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;gradientColor=#97d077;" parent="1" vertex="1">
28+
<mxGeometry x="250" y="180" width="220" height="280" as="geometry" />
29+
</mxCell>
30+
<mxCell id="10" value="&lt;b&gt;Output&lt;/b&gt;&amp;nbsp;0: Seller deposit and trade amount&lt;br&gt;Taproot key spend: P&#39;&lt;br&gt;script spend 0:&lt;br&gt;&amp;lt;PubKey Bob V&amp;gt;&lt;br&gt;OP_CHECKSIG_VERIFY&lt;br&gt;&amp;lt;PubKey Alice U&amp;gt;&lt;br&gt;OP_CHECKSIG&lt;br&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="8" vertex="1">
31+
<mxGeometry y="30" width="220" height="130" as="geometry" />
32+
</mxCell>
33+
<mxCell id="14" value="&lt;b&gt;Output&lt;/b&gt;&amp;nbsp;1: Buyer deposit&lt;br&gt;Taproot key spent: Q&#39;&lt;br&gt;script spend 0:&lt;br style=&quot;border-color: rgb(218, 220, 224);&quot;&gt;&amp;lt;PubKey Alice U&amp;gt;&lt;br style=&quot;border-color: rgb(218, 220, 224);&quot;&gt;OP_CHECKSIG_VERIFY&lt;br style=&quot;border-color: rgb(218, 220, 224);&quot;&gt;&amp;lt;PubKey Bob V&amp;gt;&lt;br style=&quot;border-color: rgb(218, 220, 224);&quot;&gt;OP_CHECKSIG" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="8" vertex="1">
34+
<mxGeometry y="160" width="220" height="120" as="geometry" />
35+
</mxCell>
36+
<mxCell id="15" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1.005;entryY=0.342;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;" parent="1" source="14" target="7" edge="1">
37+
<mxGeometry relative="1" as="geometry" />
38+
</mxCell>
39+
<mxCell id="23" value="Bob&#39;s Signature" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;" parent="15" vertex="1" connectable="0">
40+
<mxGeometry x="0.2283" y="1" relative="1" as="geometry">
41+
<mxPoint x="35" y="16" as="offset" />
42+
</mxGeometry>
43+
</mxCell>
44+
<mxCell id="16" value="Warning Tx Alice / Bob" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
45+
<mxGeometry x="580" y="20" width="260" height="300" as="geometry" />
46+
</mxCell>
47+
<mxCell id="17" value="&lt;b style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Output 0&lt;/font&gt;&lt;span style=&quot;font-size: 13px;&quot;&gt;: &lt;/span&gt;&lt;/b&gt;buyer deposit&amp;nbsp;seller deposit and trade amount&lt;br&gt;&lt;br&gt;&lt;b&gt;key spend&lt;/b&gt;: &lt;br&gt;Q&#39; / P&#39;&amp;nbsp;(Bob / Alice can claim if key exchange already happened)&lt;br&gt;&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;&lt;br&gt;script spend 0&lt;/b&gt;: &lt;br&gt;Alice / Bob can claim the hole amount after time t_1 with script:&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;push pubkey R&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;OP_CHECKSIGVERIFY&lt;br&gt;push t_1&lt;br style=&quot;border-color: rgb(218, 220, 224);&quot;&gt;OP_CSV" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;opacity=0;" parent="16" vertex="1">
48+
<mxGeometry y="30" width="260" height="230" as="geometry" />
49+
</mxCell>
50+
<mxCell id="74" value="&lt;b style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Output 1&lt;/font&gt;&lt;span style=&quot;font-size: 13px;&quot;&gt;: &lt;/span&gt;&lt;/b&gt;anchor output 330 sats.&lt;br&gt;&lt;b&gt;key spend&lt;/b&gt;: Pubkey from Alice / Bob" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;opacity=0;" parent="16" vertex="1">
51+
<mxGeometry y="260" width="260" height="40" as="geometry" />
52+
</mxCell>
53+
<mxCell id="20" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;" parent="1" source="16" target="10" edge="1">
54+
<mxGeometry relative="1" as="geometry" />
55+
</mxCell>
56+
<mxCell id="21" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;" parent="1" source="16" target="14" edge="1">
57+
<mxGeometry relative="1" as="geometry">
58+
<mxPoint x="500" y="401.4634146341464" as="sourcePoint" />
59+
</mxGeometry>
60+
</mxCell>
61+
<mxCell id="33" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;labelBackgroundColor=none;fontColor=default;" parent="1" source="44" target="17" edge="1">
62+
<mxGeometry relative="1" as="geometry">
63+
<mxPoint x="840" y="205" as="targetPoint" />
64+
</mxGeometry>
65+
</mxCell>
66+
<mxCell id="40" value="SwapTx" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
67+
<mxGeometry x="580" y="480" width="260" height="90" as="geometry" />
68+
</mxCell>
69+
<mxCell id="41" value="&lt;b&gt;Output 0:&lt;/b&gt;&lt;br&gt;key spend to Alice&#39;s Wallet" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="40" vertex="1">
70+
<mxGeometry y="30" width="260" height="60" as="geometry" />
71+
</mxCell>
72+
<mxCell id="42" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;" parent="1" source="40" target="14" edge="1">
73+
<mxGeometry relative="1" as="geometry" />
74+
</mxCell>
75+
<mxCell id="53" value="adaptor Signature &lt;br&gt;reveals pA only to Bob" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="42" vertex="1" connectable="0">
76+
<mxGeometry x="0.0049" y="3" relative="1" as="geometry">
77+
<mxPoint x="-28" y="21" as="offset" />
78+
</mxGeometry>
79+
</mxCell>
80+
<mxCell id="43" value="&lt;font style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 24px;&quot;&gt;Alice: Seller&lt;br&gt;Bob: Buyer&lt;/font&gt;&lt;br&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;change output and funding from multiple inputs not shown anymore&lt;/font&gt;&lt;br&gt;&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;labelBackgroundColor=none;" parent="1" vertex="1">
81+
<mxGeometry x="10" y="-12" width="350" height="90" as="geometry" />
82+
</mxCell>
83+
<mxCell id="44" value="Redirect Tx&lt;br&gt;Bob / Alice" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
84+
<mxGeometry x="940" y="180" width="180" height="130" as="geometry" />
85+
</mxCell>
86+
<mxCell id="45" value="multiple key spend outputs to the burning men." style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="44" vertex="1">
87+
<mxGeometry y="30" width="180" height="50" as="geometry" />
88+
</mxCell>
89+
<mxCell id="62" value="&lt;b&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Output n + 1:&lt;/font&gt;&lt;/b&gt; anchor output&lt;br&gt;&lt;b&gt;key spend:&lt;/b&gt; Pubkey of Bob / Alice" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="44" vertex="1">
90+
<mxGeometry y="80" width="180" height="50" as="geometry" />
91+
</mxCell>
92+
<mxCell id="60" value="&lt;h1&gt;Transactions&amp;nbsp;&lt;/h1&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(255, 230, 204);&quot;&gt;Funding transaction. Keys / Signature for spending come from the wallet crate. The signatures for all other transaction are made ny the protocol crate.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(213, 232, 212);&quot;&gt;Only the DepositTx is broadcasted at the time of creation, the transactions right of it will the problem that the necessary fee rate is not known for the time they are broadcasted.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(225, 213, 231);&quot;&gt;These transaction are presigned. They are created when the trade starts (and the DepositTx is broadcast). They need to be signed at the time when both traders are online.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(176, 227, 230);&quot;&gt;CustomTx, ClaimTx and PunishTx are transaction created on demand. &lt;span style=&quot;font-size: 10px;&quot;&gt;The Addresses will be genereated only when needed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
93+
<mxGeometry x="30" y="530" width="460" height="260" as="geometry" />
94+
</mxCell>
95+
<mxCell id="64" value="Punish Tx&lt;br&gt;Bob / Alice" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1">
96+
<mxGeometry x="940" y="-50" width="180" height="170" as="geometry" />
97+
</mxCell>
98+
<mxCell id="65" value="created by the protocol when needed. It disincentivises the use of the WarningTx, when Bob has the key already." style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="64" vertex="1">
99+
<mxGeometry y="30" width="180" height="80" as="geometry" />
100+
</mxCell>
101+
<mxCell id="66" value="&lt;b&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Output 0:&lt;/font&gt;&lt;/b&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;key spend:&lt;/b&gt; Pubkey of Bob / Alice" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="64" vertex="1">
102+
<mxGeometry y="110" width="180" height="60" as="geometry" />
103+
</mxCell>
104+
<mxCell id="67" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="64" target="17" edge="1">
105+
<mxGeometry relative="1" as="geometry" />
106+
</mxCell>
107+
<mxCell id="69" value="ClaimTx Alice / Bob" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1">
108+
<mxGeometry x="940" y="370" width="180" height="80" as="geometry" />
109+
</mxCell>
110+
<mxCell id="70" value="Alice / Bob sends funds to own wallet" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="69" vertex="1">
111+
<mxGeometry y="30" width="180" height="50" as="geometry" />
112+
</mxCell>
113+
<mxCell id="72" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="69" target="17" edge="1">
114+
<mxGeometry relative="1" as="geometry" />
115+
</mxCell>
116+
<mxCell id="73" value="nSequence t&lt;sub&gt;1&lt;/sub&gt;&lt;br&gt;using output 0, script path 0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="72" vertex="1" connectable="0">
117+
<mxGeometry x="-0.1723" relative="1" as="geometry">
118+
<mxPoint x="19" y="14" as="offset" />
119+
</mxGeometry>
120+
</mxCell>
121+
<mxCell id="75" value="CustomTx" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1">
122+
<mxGeometry x="580" y="360" width="260" height="90" as="geometry" />
123+
</mxCell>
124+
<mxCell id="76" value="&lt;b&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Output 0:&lt;/font&gt;&lt;/b&gt; agreed on&amp;nbsp;amount for Alice" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="75" vertex="1">
125+
<mxGeometry y="30" width="260" height="30" as="geometry" />
126+
</mxCell>
127+
<mxCell id="77" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b&gt;Output 1:&lt;/b&gt; &lt;/font&gt;agreed on amount for Bob" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;" parent="75" vertex="1">
128+
<mxGeometry y="60" width="260" height="30" as="geometry" />
129+
</mxCell>
130+
<mxCell id="78" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="76" target="10" edge="1">
131+
<mxGeometry relative="1" as="geometry" />
132+
</mxCell>
133+
<mxCell id="79" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="75" target="14" edge="1">
134+
<mxGeometry relative="1" as="geometry">
135+
<mxPoint x="570" y="470" as="sourcePoint" />
136+
<mxPoint x="460" y="330" as="targetPoint" />
137+
</mxGeometry>
138+
</mxCell>
139+
</root>
140+
</mxGraphModel>
141+
</diagram>
142+
</mxfile>

0 commit comments

Comments
 (0)