-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdomain_model.drawio
270 lines (270 loc) · 24.4 KB
/
domain_model.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
<mxfile host="app.diagrams.net" modified="2021-11-26T18:51:42.485Z" agent="5.0 (X11)" etag="rYfV2qi69OjjV5HuQNbt" version="15.8.6" type="github">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="2062" dy="1115" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-0" value="Node" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="530" y="71" width="170" height="164" as="geometry">
<mxRectangle x="180" y="270" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-2" value="currentTerm : int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-0" vertex="1">
<mxGeometry y="26" width="170" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-74" value="nodeCount : int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-0" vertex="1">
<mxGeometry y="52" width="170" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-63" value="log : Log" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-0" vertex="1">
<mxGeometry y="78" width="170" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-4" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-0" vertex="1">
<mxGeometry y="104" width="170" height="8" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-5" value="getLastLogEntry() : LogEntry" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-0" vertex="1">
<mxGeometry y="112" width="170" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-40" value="setLeader(Node)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-0" vertex="1">
<mxGeometry y="138" width="170" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-6" value="Follower" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="410" y="376" width="160" height="190" as="geometry">
<mxRectangle x="80" y="510" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-7" value="timeout : int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-6" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-9" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-6" vertex="1">
<mxGeometry y="52" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-69" value="startElection() : Election" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-6" vertex="1">
<mxGeometry y="60" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-11" value="castVote(Node) : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-6" vertex="1">
<mxGeometry y="86" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-52" value="ackHeartbeat() : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-6" vertex="1">
<mxGeometry y="112" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-72" value="ackAppend() : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-6" vertex="1">
<mxGeometry y="138" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-73" value="ackCommit() : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-6" vertex="1">
<mxGeometry y="164" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-12" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-6" target="_0V1G8Eq5vXFRSd7CqIX-0" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="490" y="273" as="sourcePoint" />
<mxPoint x="490" y="273" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-13" value="Leader" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="610" y="376" width="170" height="104" as="geometry">
<mxRectangle x="290" y="510" width="170" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-14" value="sendHeartbeat() : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-13" vertex="1">
<mxGeometry y="26" width="170" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-70" value="appendLog(message) : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-13" vertex="1">
<mxGeometry y="52" width="170" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-71" value="commitLog() : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-13" vertex="1">
<mxGeometry y="78" width="170" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-16" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-13" target="_0V1G8Eq5vXFRSd7CqIX-0" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="500" y="443" as="sourcePoint" />
<mxPoint x="600" y="341" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-17" value="LogEntry" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="60" y="280" width="160" height="104" as="geometry">
<mxRectangle x="520" y="270" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-19" value="term : int
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-17" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-75" value="leader : Node
" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-17" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-20" value="value : string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-17" vertex="1">
<mxGeometry y="78" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-26" value="Election" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="60" y="419" width="160" height="104" as="geometry">
<mxRectangle x="500" y="780" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-27" value="term : int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-26" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-28" value="candidate : Follower" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-26" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-84" value="votes : Vote[]" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-26" vertex="1">
<mxGeometry y="78" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-32" value="Vote" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="230" y="606" width="160" height="104" as="geometry">
<mxRectangle x="110" y="740" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-33" value="voter : Follower" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-32" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-34" value="candidate : Follower" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-32" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-89" value="value : bool" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-32" vertex="1">
<mxGeometry y="78" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-53" value="Log" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="60" y="175" width="160" height="50" as="geometry">
<mxRectangle x="60" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-67" value="entries: LogEntry[]" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="_0V1G8Eq5vXFRSd7CqIX-53" vertex="1">
<mxGeometry y="26" width="160" height="24" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-59" value="Client" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="60" y="40" width="160" height="84" as="geometry">
<mxRectangle x="60" y="71" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="kUpq9EhUcnElUegu-_VD-1" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="_0V1G8Eq5vXFRSd7CqIX-59">
<mxGeometry y="26" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-41" value="getLeader() : Leader" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="_0V1G8Eq5vXFRSd7CqIX-59" vertex="1">
<mxGeometry y="34" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="kUpq9EhUcnElUegu-_VD-0" value="submitValue(value) : void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="_0V1G8Eq5vXFRSd7CqIX-59">
<mxGeometry y="60" width="160" height="24" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-60" value="Submit Value" style="endArrow=open;endSize=12;html=1;rounded=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.119;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;dashed=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-59" target="_0V1G8Eq5vXFRSd7CqIX-13" edge="1">
<mxGeometry x="0.1229" y="10" width="160" relative="1" as="geometry">
<mxPoint x="220" y="124" as="sourcePoint" />
<mxPoint x="530" y="119" as="targetPoint" />
<Array as="points">
<mxPoint x="740" y="50" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-64" value="" style="endArrow=block;endFill=1;html=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-63" target="_0V1G8Eq5vXFRSd7CqIX-53" edge="1">
<mxGeometry x="0.0663" y="62" relative="1" as="geometry">
<mxPoint x="320" y="581" as="sourcePoint" />
<mxPoint x="480" y="581" as="targetPoint" />
<mxPoint x="25" y="-5" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-65" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;" parent="_0V1G8Eq5vXFRSd7CqIX-64" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="-10" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-101" value="Node Log" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="_0V1G8Eq5vXFRSd7CqIX-64" vertex="1" connectable="0">
<mxGeometry x="0.1195" y="1" relative="1" as="geometry">
<mxPoint x="-33" y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-79" value="" style="endArrow=block;endFill=1;html=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-26" target="_0V1G8Eq5vXFRSd7CqIX-6" edge="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="220" y="506" as="sourcePoint" />
<mxPoint x="380" y="506" as="targetPoint" />
<Array as="points">
<mxPoint x="250" y="446" />
<mxPoint x="250" y="446" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-80" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;" parent="_0V1G8Eq5vXFRSd7CqIX-79" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry" />
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-85" value="<div>Candidate</div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="_0V1G8Eq5vXFRSd7CqIX-79" vertex="1" connectable="0">
<mxGeometry x="-0.1789" relative="1" as="geometry">
<mxPoint x="22" y="-10" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-83" value="<div>Start Election<br></div>" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-6" target="_0V1G8Eq5vXFRSd7CqIX-26" edge="1">
<mxGeometry x="-0.0526" y="15" width="160" relative="1" as="geometry">
<mxPoint x="320" y="466" as="sourcePoint" />
<mxPoint x="480" y="466" as="targetPoint" />
<Array as="points" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-90" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-32" target="_0V1G8Eq5vXFRSd7CqIX-26" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="240" y="406" as="sourcePoint" />
<mxPoint x="400" y="406" as="targetPoint" />
<Array as="points">
<mxPoint x="140" y="658" />
<mxPoint x="140" y="566" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-98" value="1..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="_0V1G8Eq5vXFRSd7CqIX-90" vertex="1" connectable="0">
<mxGeometry x="-0.952" relative="1" as="geometry">
<mxPoint x="-14" y="-13" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-91" value="" style="endArrow=diamondThin;endFill=1;endSize=24;html=1;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-17" target="_0V1G8Eq5vXFRSd7CqIX-67" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="150" y="220" as="sourcePoint" />
<mxPoint x="310" y="220" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-99" value="0..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="_0V1G8Eq5vXFRSd7CqIX-91" vertex="1" connectable="0">
<mxGeometry x="-0.6467" relative="1" as="geometry">
<mxPoint x="20" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-92" value="" style="endArrow=open;endFill=0;html=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;rounded=0;dashed=1;endSize=12;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-6" target="_0V1G8Eq5vXFRSd7CqIX-32" edge="1">
<mxGeometry x="-0.0417" y="-90" relative="1" as="geometry">
<mxPoint x="490" y="676" as="sourcePoint" />
<mxPoint x="590" y="710" as="targetPoint" />
<Array as="points">
<mxPoint x="490" y="658" />
</Array>
<mxPoint x="90" y="90" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-94" value="Cast Vote" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="_0V1G8Eq5vXFRSd7CqIX-92" vertex="1" connectable="0">
<mxGeometry x="-0.0608" y="3" relative="1" as="geometry">
<mxPoint x="-33" y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-95" value="" style="endArrow=block;endSize=6;html=1;rounded=0;exitX=0.988;exitY=0.077;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.815;entryY=1.077;entryDx=0;entryDy=0;entryPerimeter=0;endFill=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="_0V1G8Eq5vXFRSd7CqIX-89" target="_0V1G8Eq5vXFRSd7CqIX-73" edge="1">
<mxGeometry x="0.0375" y="20" width="160" relative="1" as="geometry">
<mxPoint x="550" y="696" as="sourcePoint" />
<mxPoint x="540" y="570" as="targetPoint" />
<Array as="points">
<mxPoint x="540" y="686" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="_0V1G8Eq5vXFRSd7CqIX-100" value="Candidate" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="_0V1G8Eq5vXFRSd7CqIX-95" vertex="1" connectable="0">
<mxGeometry x="-0.2351" y="-3" relative="1" as="geometry">
<mxPoint x="30" y="11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="alobFbxtTNsJ-LlYsYCW-0" value="<div>1</div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="_0V1G8Eq5vXFRSd7CqIX-95" vertex="1" connectable="0">
<mxGeometry x="-0.8833" y="-2" relative="1" as="geometry">
<mxPoint x="-8" y="12" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="kUpq9EhUcnElUegu-_VD-3" value="<div>Get Leader</div>" style="endArrow=open;endFill=0;html=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;rounded=0;endSize=12;entryX=0;entryY=0.097;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" target="_0V1G8Eq5vXFRSd7CqIX-0">
<mxGeometry x="-0.125" y="22" relative="1" as="geometry">
<mxPoint x="210" y="92" as="sourcePoint" />
<mxPoint x="460" y="100" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>