-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClassDiagram.drawio
305 lines (305 loc) · 34.1 KB
/
ClassDiagram.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
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
<mxfile host="65bd71144e">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="785" dy="828" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0"/>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0"/>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--0" value="Neuron" 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="270" y="227" width="160" height="86" as="geometry">
<mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--3" value="+ Name: 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="zkfFHV4jXpPFQw0GAbJ--0" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-10" value="+ Description: 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="zkfFHV4jXpPFQw0GAbJ--0" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--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="zkfFHV4jXpPFQw0GAbJ--0" vertex="1">
<mxGeometry y="78" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--6" value="InputNode" 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="10" y="390" width="200" height="190" as="geometry">
<mxRectangle x="40" y="360" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--7" value="+ Output: double" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="Ybb1fxDhjjD_npZQvU0o-6" value="- output: double" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="52" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="Ybb1fxDhjjD_npZQvU0o-7" value="- storedOutput: double" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="78" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--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="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="104" width="200" height="8" as="geometry"/>
</mxCell>
<mxCell id="357mBZ8HgTN5hW8DV9T2-0" value="+ Calculate(): 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="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="112" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="357mBZ8HgTN5hW8DV9T2-1" value="+ Propagate(): 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="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="138" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="Ybb1fxDhjjD_npZQvU0o-8" value="- GetOutput(): double" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1">
<mxGeometry y="164" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--12" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--6" target="zkfFHV4jXpPFQw0GAbJ--0" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="190" y="96" as="sourcePoint"/>
<mxPoint x="190" y="96" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--13" value="OutputNode" 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="490" y="390" width="200" height="86" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-13" value="+ Result: double" 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="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="22" value="- Inputs: List<ICanSupplement>" 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="zkfFHV4jXpPFQw0GAbJ--13">
<mxGeometry y="52" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--15" 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="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="78" width="200" height="8" as="geometry"/>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--16" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--13" target="zkfFHV4jXpPFQw0GAbJ--0" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="200" y="266" as="sourcePoint"/>
<mxPoint x="380" y="143" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--17" value="Module" 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="945" y="730" width="210" height="86" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--18" value="+ Body: Actor" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=2" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="26" width="210" height="26" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-29" value="+ Dependencies: List<Dependency>" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=2" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="52" width="210" height="26" as="geometry"/>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--23" 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="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="78" width="210" height="8" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="2" target="zkfFHV4jXpPFQw0GAbJ--17" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-0" value="Learner" 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="950" y="358" width="200" height="112" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="6vYefpPt7fxRZcZ7pBTP-7" value="- Brain: Brain" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="h9fvNP_zNP7rr5-ymVxC-0" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-2" 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="h9fvNP_zNP7rr5-ymVxC-0" vertex="1">
<mxGeometry y="52" width="200" height="8" as="geometry"/>
</mxCell>
<mxCell id="19" value="+ Think(): void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="h9fvNP_zNP7rr5-ymVxC-0">
<mxGeometry y="60" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="20" value="+ Act(): void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="h9fvNP_zNP7rr5-ymVxC-0">
<mxGeometry y="86" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-14" value="HiddenNode" 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="250" y="390" width="200" height="60" as="geometry">
<mxRectangle x="130" y="380" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-18" value="- Inputs: List<ICanSupplement>" 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="h9fvNP_zNP7rr5-ymVxC-14" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-16" 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="h9fvNP_zNP7rr5-ymVxC-14" vertex="1">
<mxGeometry y="52" width="200" height="8" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-17" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="h9fvNP_zNP7rr5-ymVxC-14" target="zkfFHV4jXpPFQw0GAbJ--6" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="520" y="263" as="sourcePoint"/>
<mxPoint x="390" y="153" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-23" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>ICanAugment</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px"><i>- Inputs: List&lt;ICanSupplement&gt;</i><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="370" y="520" width="200" height="70" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-24" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>ICanSupplement</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px">+ Output: double</p><p style="margin: 0px ; margin-left: 4px">+ Calculate(): void</p><p style="margin: 0px ; margin-left: 4px">+ Propagate(): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="10" y="640" width="200" height="90" as="geometry"/>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-25" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;dashed=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--6" target="h9fvNP_zNP7rr5-ymVxC-24" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="120" y="263" as="sourcePoint"/>
<mxPoint x="320" y="109" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-27" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;dashed=1;fontStyle=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="h9fvNP_zNP7rr5-ymVxC-14" target="h9fvNP_zNP7rr5-ymVxC-23" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="320" y="349" as="sourcePoint"/>
<mxPoint x="215" y="433" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="h9fvNP_zNP7rr5-ymVxC-28" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;dashed=1;fontStyle=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--13" target="h9fvNP_zNP7rr5-ymVxC-23" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="320" y="349" as="sourcePoint"/>
<mxPoint x="425" y="433" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="6vYefpPt7fxRZcZ7pBTP-0" value="Brain" 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="950" y="214" width="200" height="112" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="6vYefpPt7fxRZcZ7pBTP-1" value="- Neurons: List<Neuron>" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6vYefpPt7fxRZcZ7pBTP-0" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="6vYefpPt7fxRZcZ7pBTP-3" 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="6vYefpPt7fxRZcZ7pBTP-0" vertex="1">
<mxGeometry y="52" width="200" height="8" as="geometry"/>
</mxCell>
<mxCell id="6vYefpPt7fxRZcZ7pBTP-5" value="+ Calculate(): 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="6vYefpPt7fxRZcZ7pBTP-0" vertex="1">
<mxGeometry y="60" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="6vYefpPt7fxRZcZ7pBTP-6" value="+ Propagate(): 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="6vYefpPt7fxRZcZ7pBTP-0" vertex="1">
<mxGeometry y="86" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="6vYefpPt7fxRZcZ7pBTP-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="h9fvNP_zNP7rr5-ymVxC-0" target="6vYefpPt7fxRZcZ7pBTP-0" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="890" y="263" as="sourcePoint"/>
<mxPoint x="890" y="219" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-0" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="6vYefpPt7fxRZcZ7pBTP-0" target="zkfFHV4jXpPFQw0GAbJ--0" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="900" y="183" as="sourcePoint"/>
<mxPoint x="900" y="122" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-1" value="World" 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="650" y="488" width="240" height="208" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-3" value="+ Actors: List<Actor>" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="dODVJtbnFo_2eaHGkToM-1" vertex="1">
<mxGeometry y="26" width="240" height="26" as="geometry"/>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-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="dODVJtbnFo_2eaHGkToM-1" vertex="1">
<mxGeometry y="52" width="240" height="8" as="geometry"/>
</mxCell>
<mxCell id="0" value="+ Iterate(): 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="dODVJtbnFo_2eaHGkToM-1" vertex="1">
<mxGeometry y="60" width="240" height="26" as="geometry"/>
</mxCell>
<mxCell id="15" value="+ Think(): 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="dODVJtbnFo_2eaHGkToM-1" vertex="1">
<mxGeometry y="86" width="240" height="26" as="geometry"/>
</mxCell>
<mxCell id="16" value="+ Act(): 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="dODVJtbnFo_2eaHGkToM-1" vertex="1">
<mxGeometry y="112" width="240" height="26" as="geometry"/>
</mxCell>
<mxCell id="17" value="~ SortActors(): 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="dODVJtbnFo_2eaHGkToM-1" vertex="1">
<mxGeometry y="138" width="240" height="26" as="geometry"/>
</mxCell>
<mxCell id="1" value="<<event>> + HasIterated(): HasIteratedEventHandler" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=0" parent="dODVJtbnFo_2eaHGkToM-1" vertex="1">
<mxGeometry y="164" width="240" height="44" as="geometry"/>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="dODVJtbnFo_2eaHGkToM-1" target="2" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="920" y="278" as="sourcePoint"/>
<mxPoint x="960" y="278" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-6" value="FiniteWorld" 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="790" y="776" width="120" height="40" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-8" 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="dODVJtbnFo_2eaHGkToM-6" vertex="1">
<mxGeometry y="26" width="120" height="8" as="geometry"/>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-9" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="dODVJtbnFo_2eaHGkToM-10" target="dODVJtbnFo_2eaHGkToM-1" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="105" y="193" as="sourcePoint"/>
<mxPoint x="210" y="650" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-10" value="IndefiniteWorld" 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="630" y="776" width="120" height="40" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-12" 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="dODVJtbnFo_2eaHGkToM-10" vertex="1">
<mxGeometry y="26" width="120" height="8" as="geometry"/>
</mxCell>
<mxCell id="dODVJtbnFo_2eaHGkToM-13" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="dODVJtbnFo_2eaHGkToM-6" target="dODVJtbnFo_2eaHGkToM-1" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="820" y="509" as="sourcePoint"/>
<mxPoint x="700" y="583" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="2" value="Actor" 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="950" y="510" width="200" height="164" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="3" value="- Modules: List<Module>" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="2" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="18" value="+ Initiative: 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="2" vertex="1">
<mxGeometry y="52" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="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="2" vertex="1">
<mxGeometry y="78" width="200" height="8" as="geometry"/>
</mxCell>
<mxCell id="12" value="+ Think(): void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=2" parent="2" vertex="1">
<mxGeometry y="86" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="13" value="+ Act(): void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=2" parent="2" vertex="1">
<mxGeometry y="112" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="14" value="+ AddModule(): 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="2" vertex="1">
<mxGeometry y="138" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="11" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="h9fvNP_zNP7rr5-ymVxC-0" target="2" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="700" y="380" as="sourcePoint"/>
<mxPoint x="350" y="109" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="BAasb_mLCND99O-H3Dav-13" target="zkfFHV4jXpPFQw0GAbJ--0" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="BAasb_mLCND99O-H3Dav-13" target="6vYefpPt7fxRZcZ7pBTP-0" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1050" y="125"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-13" value="NeuralConnection" 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="570" y="30" width="200" height="190" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-14" value="+ From: ICanSupplement" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="BAasb_mLCND99O-H3Dav-13" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-16" value="+ To: ICanAugment" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="BAasb_mLCND99O-H3Dav-13" vertex="1">
<mxGeometry y="52" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-18" value="+ Weight: double" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="BAasb_mLCND99O-H3Dav-13" vertex="1">
<mxGeometry y="78" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="21" value="- savedWeight: short" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="BAasb_mLCND99O-H3Dav-13">
<mxGeometry y="104" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-19" value="+ Output: double" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="BAasb_mLCND99O-H3Dav-13" vertex="1">
<mxGeometry y="130" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-15" 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="BAasb_mLCND99O-H3Dav-13" vertex="1">
<mxGeometry y="156" width="200" height="8" as="geometry"/>
</mxCell>
<mxCell id="BAasb_mLCND99O-H3Dav-17" value="+ ToBinary(): byte[]" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="BAasb_mLCND99O-H3Dav-13" vertex="1">
<mxGeometry y="164" width="200" height="26" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>