-
Notifications
You must be signed in to change notification settings - Fork 0
/
src.drawio
1225 lines (1225 loc) · 110 KB
/
src.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
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<mxGraphModel dx="0" dy="0" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="node1" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;enumeration&gt;&gt;</i><br/><b>ActionType</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ ActionType(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ values(): ActionType[]<br/>+ valueOf(String): ActionType</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2810" y="976" width="193" height="125" as="geometry" />
</mxCell>
<mxCell id="node29" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Button</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Button(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void<br/>+ clickAction(): void<br/>+ isIn(MouseEvent): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2605" y="1405" width="186" height="132" as="geometry" />
</mxCell>
<mxCell id="node31" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Cistern</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Cistern(String): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- createdPickupables: LinkedList&lt;PickupAble&gt;</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ WaterFlow(): void<br/>+ PlacedDownTo(Pipe): boolean<br/>+ GeneratePickupables(): void<br/>+ PickedUpFrom(PickupAble): boolean<br/>+ PlacedDownTo(Pump): boolean<br/>+ GeneratePickupables(String, String): void</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> createdPickupables: LinkedList&lt;PickupAble&gt;</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="517" y="1596" width="283" height="236" as="geometry" />
</mxCell>
<mxCell id="node7" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>CisternView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ CisternView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ isIn(MouseEvent): boolean<br/>+ paint(Graphics): void<br/>+ clickAction(): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1594" y="1604" width="186" height="132" as="geometry" />
</mxCell>
<mxCell id="node6" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;interface&gt;&gt;</i><br/><b>Clickable</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ clickAction(): void<br/>+ isIn(MouseEvent): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1163" y="1102" width="186" height="95" as="geometry" />
</mxCell>
<mxCell id="node33" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Controller</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- Controller(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- endGameView: EndGameView<br/>- gameView: GameView<br/>- objectCatalog: HashMap&lt;String, Object&gt;<br/>- menuView: MenuView<br/>- newGameView: NewGameView</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ save(String): void<br/>+ connect(String, String): void<br/>+ turnOver(): void<br/>+ pass(): void<br/>+ redirect(String, String, String): void<br/>+ lubricate(String): void<br/>+ pickup(String, String): void<br/>+ startGame(): void<br/>+ getObjectName(Object): String<br/>+ create(String, String): void<br/>+ pierce(String): void<br/>+ endGame(): void<br/>+ waterFlow(String): void<br/>+ stateSet(String, String, String): void<br/>+ move(String, String): void<br/>+ repair(String): void<br/>+ nextTurn(): void<br/>+ method(): void<br/>+ stateGet(String, String): void<br/>- listWrite(LinkedList&lt;?&gt;): String<br/>+ removeObject(Object): void<br/>+ paint(Graphics): void<br/>+ generate(String, String, String): void<br/>+ load(String): void<br/>+ glue(String): void<br/>+ placedown(String): void<br/>+ gameLoop(): void</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> gameView: GameView<br/> activePlayer: Player<br/> objectCatalog: HashMap&lt;String, Object&gt;<br/> menuView: MenuView<br/> instance: Controller<br/> endGameView: EndGameView<br/> newGameView: NewGameView</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="191" y="948" width="265" height="918" as="geometry" />
</mxCell>
<mxCell id="node24" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;interface&gt;&gt;</i><br/><b>CreatePopUpBar</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ createPopUpBar(): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2862" y="1392" width="168" height="68" as="geometry" />
</mxCell>
<mxCell id="node18" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Drawable</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Drawable(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2415" y="1215" width="156" height="84" as="geometry" />
</mxCell>
<mxCell id="node13" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>EndGameView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ EndGameView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ mouseClicked(MouseEvent): void<br/>+ mousePressed(MouseEvent): void<br/>+ mouseEntered(MouseEvent): void<br/>+ paint(Graphics): void<br/>+ mouseReleased(MouseEvent): void<br/>+ mouseExited(MouseEvent): void<br/>+ mouseMoved(MouseEvent): void<br/>+ mouseDragged(MouseEvent): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2019" y="1197" width="230" height="232" as="geometry" />
</mxCell>
<mxCell id="node23" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>GameView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ GameView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ mouseReleased(MouseEvent): void<br/>+ mouseMoved(MouseEvent): void<br/>+ mouseClicked(MouseEvent): void<br/>+ paint(Graphics): void<br/>+ mouseEntered(MouseEvent): void<br/>+ mouseExited(MouseEvent): void<br/>+ mouseDragged(MouseEvent): void<br/>+ mousePressed(MouseEvent): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2314" y="1354" width="230" height="232" as="geometry" />
</mxCell>
<mxCell id="node16" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>IO_Manager</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ IO_Manager(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ write(String): void<br/>+ writeInfoFile(String): void<br/>+ readLine(): String<br/>+ endReading(): void<br/>+ writeFile(String): void<br/>+ closeFile(): void<br/>+ writeInfo(String): void<br/>+ writeInfo(String, boolean): void<br/>+ writeErrorFile(String): void<br/>+ readLineFile(): String?<br/>+ writeError(String): void<br/>+ openFileWrite(String): void<br/>+ openFileRead(String): void<br/>+ writeError(String, boolean): void<br/>+ write(String, boolean): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="-84" y="1891" width="214" height="386" as="geometry" />
</mxCell>
<mxCell id="node20" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>KeyIn</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ KeyIn(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ keyPressed(KeyEvent): void<br/>+ keyTyped(KeyEvent): void<br/>+ keyReleased(KeyEvent): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="832" y="1894" width="195" height="132" as="geometry" />
</mxCell>
<mxCell id="node28" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Logger</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- Logger(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ addObject(Object, String): void<br/>- noNumbering(): void<br/>+ clearObjects(): void<br/>+ getObjectName(Object): String<br/>+ ask(String, String): String<br/>+ begin(Object, String, Object[]): void<br/>+ end(Object): void<br/>- numbering(): void<br/>+ resetCounter(): void<br/>+ remObject(Object): void<br/>+ begin(Object, String, Object): void<br/>+ end(Object, String): void<br/>- indentLine(): void</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> instance: Logger</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="525" y="1892" width="234" height="366" as="geometry" />
</mxCell>
<mxCell id="node22" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Main</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Main(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- readStd(String): void<br/>- processCommand(String, boolean): void<br/>+ main(String[]): void<br/>- readFile(String, String): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1087" y="1756" width="260" height="144" as="geometry" />
</mxCell>
<mxCell id="node2" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Mechanic</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Mechanic(String): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- heldItems: PickupAble</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Repair(): boolean<br/>+ PlaceDown(): boolean<br/>+ availableActions(): List&lt;ActionType&gt;<br/>+ PickUp(PickupAble): boolean</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> heldItems: PickupAble</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1127" y="1341" width="240" height="192" as="geometry" />
</mxCell>
<mxCell id="node30" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>MechanicView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ MechanicView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2538" y="1647" width="156" height="84" as="geometry" />
</mxCell>
<mxCell id="node12" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>MenuView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ MenuView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void<br/>+ mouseMoved(MouseEvent): void<br/>+ mouseEntered(MouseEvent): void<br/>+ mouseExited(MouseEvent): void<br/>+ mouseReleased(MouseEvent): void<br/>+ mouseClicked(MouseEvent): void<br/>+ mousePressed(MouseEvent): void<br/>+ mouseDragged(MouseEvent): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1728" y="1232" width="230" height="232" as="geometry" />
</mxCell>
<mxCell id="node3" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>MouseIn</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ MouseIn(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ mousePressed(MouseEvent): void<br/>+ mouseReleased(MouseEvent): void<br/>+ mouseDragged(MouseEvent): void<br/>+ mouseExited(MouseEvent): void<br/>+ mouseClicked(MouseEvent): void<br/>+ mouseEntered(MouseEvent): void<br/>+ mouseMoved(MouseEvent): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="213" y="1962" width="230" height="210" as="geometry" />
</mxCell>
<mxCell id="node25" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>NewGameView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ NewGameView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void<br/>+ mouseExited(MouseEvent): void<br/>+ mouseClicked(MouseEvent): void<br/>+ mouseEntered(MouseEvent): void<br/>+ mousePressed(MouseEvent): void<br/>+ mouseDragged(MouseEvent): void<br/>+ keyTyped(KeyEvent): void<br/>+ mouseMoved(MouseEvent): void<br/>+ mouseReleased(MouseEvent): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2323" y="900" width="230" height="254" as="geometry" />
</mxCell>
<mxCell id="node21" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;interface&gt;&gt;</i><br/><b>PickupAble</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PickedUp(Steppable): void<br/>+ PlacedDown(Steppable): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="963" y="914" width="221" height="95" as="geometry" />
</mxCell>
<mxCell id="node5" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Pipe</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Pipe(String): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- glued: boolean<br/>- beingHeld: boolean<br/>- waterCapacity: int<br/>- broken: boolean<br/>- readyToPierceTimer: int<br/>- heldWater: int<br/>- readyToPierce: boolean<br/>- nodes: LinkedList&lt;WaterNode&gt;<br/>- lubricated: boolean</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PlayerEnter(Player): boolean<br/>+ PickedUp(Steppable): void<br/>+ RemoveWaterNode(WaterNode): void<br/>+ PickedUpFrom(PickupAble): boolean<br/>+ PlayerExit(Player): void<br/>+ Pierced(): boolean<br/>+ PlacedDownTo(Pipe): boolean<br/>+ CutInHalf(Pump): void<br/>+ PlacedDown(Steppable): boolean<br/>+ Glued(): boolean<br/>+ Repaired(): boolean<br/>+ PlacedDownTo(Pump): boolean<br/>+ AddWaterNode(WaterNode): boolean<br/>+ GainWater(int): int<br/>+ Lubricated(): boolean<br/>+ canMove(): boolean<br/>+ LoseWater(int): int</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> glued: boolean<br/> beingHeld: boolean<br/> lubricated: boolean<br/> waterCapacity: int<br/> heldWater: int<br/> nodes: LinkedList&lt;WaterNode&gt;<br/> readyToPierce: boolean<br/> readyToPierceTimer: int<br/> broken: boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="871" y="-14" width="246" height="830" as="geometry" />
</mxCell>
<mxCell id="node34" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>PipeView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PipeView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void<br/>+ clickAction(): void<br/>+ isIn(MouseEvent): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2193" y="1655" width="186" height="132" as="geometry" />
</mxCell>
<mxCell id="node10" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Player</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Player(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"># fellDown: boolean<br/># standingOn: Steppable<br/>~ state: PlayerActionState<br/>- ignoreStates: boolean<br/># stuck: boolean</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Move(Steppable): boolean<br/>+ Pierce(): boolean<br/>+ Redirect(Pipe, Pipe): boolean<br/>+ Glue(): boolean<br/>+ RemovePlayer(): void<br/>+ availableActions(): List&lt;ActionType&gt;</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> standingOn: Steppable<br/> stuck: boolean<br/> fellDown: boolean<br/> state: PlayerActionState<br/> ignoreStates: boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1428" y="971" width="240" height="412" as="geometry" />
</mxCell>
<mxCell id="node19" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;enumeration&gt;&gt;</i><br/><b>PlayerActionState</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PlayerActionState(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ values(): PlayerActionState[]<br/>+ valueOf(String): PlayerActionState</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="833" y="1059" width="226" height="125" as="geometry" />
</mxCell>
<mxCell id="node36" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>PointCounter</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- PointCounter(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- pointsToWin: int</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ GetMechanicPoints(): int<br/>+ AddSaboteurPoints(int): void<br/>+ GetSaboteurPoints(): int<br/>+ AddMechanicPoints(int): void<br/>+ GetPointsToWin(): int</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> pointsToWin: int<br/> instance: PointCounter</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="606" y="717" width="204" height="236" as="geometry" />
</mxCell>
<mxCell id="node27" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>PopUpBar</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PopUpBar(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="3106" y="1319" width="156" height="84" as="geometry" />
</mxCell>
<mxCell id="node17" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>PopUpButton</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PopUpButton(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ clickAction(): void<br/>+ paint(Graphics): void<br/>+ isIn(MouseEvent): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2911" y="1136" width="186" height="132" as="geometry" />
</mxCell>
<mxCell id="node0" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Pump</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Pump(String): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">- maximumPipes: int<br/>- activeIn: Pipe<br/>- activeOut: Pipe<br/>- broken: boolean<br/>- waterCapacity: int<br/>- heldWater: int</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ WaterFlow(): void<br/>+ Repaired(): boolean<br/>+ PlacedDownTo(Pump): boolean<br/>+ PlacedDown(Steppable): boolean<br/>+ PlayerRedirect(Pipe, Pipe): boolean<br/>+ PlacedDownTo(Pipe): boolean<br/>+ AddPipe(Pipe): boolean<br/>+ PickedUpFrom(PickupAble): boolean<br/>+ PickedUp(Steppable): void</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> heldWater: int<br/> maximumPipes: int<br/> activeIn: Pipe<br/> activeOut: Pipe<br/> broken: boolean<br/> waterCapacity: int</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="523" y="1013" width="241" height="522" as="geometry" />
</mxCell>
<mxCell id="node8" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>PumpView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PumpView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void<br/>+ clickAction(): void<br/>+ isIn(MouseEvent): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2465" y="1787" width="186" height="132" as="geometry" />
</mxCell>
<mxCell id="node14" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Saboteur</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Saboteur(String): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ availableActions(): List&lt;ActionType&gt;<br/>+ Lubricate(): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1427" y="1444" width="240" height="108" as="geometry" />
</mxCell>
<mxCell id="node15" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>SaboteurView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ SaboteurView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2754" y="1588" width="156" height="84" as="geometry" />
</mxCell>
<mxCell id="node26" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Spring</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Spring(String): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PlacedDownTo(Pipe): boolean<br/>+ PlacedDownTo(Pump): boolean<br/>+ WaterFlow(): void<br/>+ PickedUpFrom(PickupAble): boolean<br/>+ AddPipe(Pipe): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="824" y="1336" width="241" height="166" as="geometry" />
</mxCell>
<mxCell id="node32" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>SpringView</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ SpringView(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ clickAction(): void<br/>+ paint(Graphics): void<br/>+ isIn(MouseEvent): boolean</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1840" y="1525" width="186" height="132" as="geometry" />
</mxCell>
<mxCell id="node35" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Steppable</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Steppable(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"># players: LinkedList&lt;Player&gt;</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ CutInHalf(Pump): void<br/>+ PlayerEnter(Player): boolean<br/>+ PlacedDownTo(Pipe): boolean<br/>+ Lubricated(): boolean<br/>+ PlayerExit(Player): void<br/>+ PlacedDownTo(Pump): boolean<br/>+ PickedUpFrom(PickupAble): boolean<br/>+ Repaired(): boolean<br/>+ PlayerRedirect(Pipe, Pipe): boolean<br/>+ Glued(): boolean<br/>+ Pierced(): boolean<br/>+ canMove(): boolean</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> players: LinkedList&lt;Player&gt;<br/> activeIn: Pipe<br/> activeOut: Pipe</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="1380" y="499" width="241" height="412" as="geometry" />
</mxCell>
<mxCell id="node4" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>WaterNode</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ WaterNode(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"># pipes: LinkedList&lt;Pipe&gt;</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ PlayerEnter(Player): boolean<br/>+ PlayerExit(Player): void<br/>+ PickedUpFrom(PickupAble): boolean<br/>+ PlacedDownTo(Pump): boolean<br/>+ canMove(): boolean<br/>+ AddPipe(Pipe): boolean<br/>+ PlacedDownTo(Pipe): boolean<br/>+ RemovePipe(Pipe): void<br/>+ WaterFlow(): void</p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;"> pipes: LinkedList&lt;Pipe&gt;</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="551" y="354" width="241" height="302" as="geometry" />
</mxCell>
<mxCell id="node11" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Window</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ Window(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ paint(Graphics): void<br/>+ mouseExited(MouseEvent): void<br/>+ mouseClicked(MouseEvent): void<br/>+ mouseReleased(MouseEvent): void<br/>+ mouseEntered(MouseEvent): void<br/>+ mouseDragged(MouseEvent): void<br/>+ mousePressed(MouseEvent): void<br/>+ mouseMoved(MouseEvent): void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2004" y="902" width="230" height="232" as="geometry" />
</mxCell>
<mxCell id="node9" parent="1" vertex="1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;enumeration&gt;&gt;</i><br/><b>WindowOptions</b></p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ WindowOptions(): </p><hr size="1"/><p style="margin:0 0 0 4px;line-height:1.6;">+ values(): WindowOptions[]<br/>+ valueOf(String): WindowOptions</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;">
<mxGeometry x="2631" y="1230" width="219" height="125" as="geometry" />
</mxCell>
<mxCell id="edge27" edge="1" value="" parent="1" source="node29" target="node6" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2698" y="1602" />
<mxPoint x="2396" y="1602" />
<mxPoint x="2396" y="1854" />
<mxPoint x="1410" y="1854" />
<mxPoint x="1410" y="1140" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge29" edge="1" value="" parent="1" source="node29" target="node18" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2589" y="1466" />
<mxPoint x="2589" y="1254" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge63" edge="1" value="" parent="1" source="node29" target="node9" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2698" y="1376" />
<mxPoint x="2741" y="1376" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label378" parent="edge63" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2687" y="1377" as="geometry" />
</mxCell>
<mxCell id="label382" parent="edge63" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2721" y="1332" as="geometry" />
</mxCell>
<mxCell id="label383" parent="edge63" vertex="1" connectable="0" value="option" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2741" y="1335" as="geometry" />
</mxCell>
<mxCell id="edge42" edge="1" value="" parent="1" source="node31" target="node21" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.401;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1097" y="1714" />
<mxPoint x="1097" y="1026" />
<mxPoint x="1052" y="1026" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label252" parent="edge42" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1101" y="1704" as="geometry" />
</mxCell>
<mxCell id="label256" parent="edge42" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1057" y="1006" as="geometry" />
</mxCell>
<mxCell id="label257" parent="edge42" vertex="1" connectable="0" value="createdPickupables" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1032" y="1011" as="geometry" />
</mxCell>
<mxCell id="edge52" edge="1" value="" parent="1" source="node31" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.436;exitDx=0;exitDy=0;entryX=0.000;entryY=0.266;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="487" y="1699" />
<mxPoint x="487" y="1437" />
<mxPoint x="505" y="1437" />
<mxPoint x="505" y="207" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label314" parent="edge52" vertex="1" connectable="0" value="«create»" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="489" y="812" as="geometry" />
</mxCell>
<mxCell id="edge46" edge="1" value="" parent="1" source="node31" target="node36" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="472" y="1714" />
<mxPoint x="472" y="968" />
<mxPoint x="708" y="968" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label276" parent="edge46" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="501" y="1709" as="geometry" />
</mxCell>
<mxCell id="label280" parent="edge46" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="697" y="950" as="geometry" />
</mxCell>
<mxCell id="label281" parent="edge46" vertex="1" connectable="0" value="counter" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="708" y="950" as="geometry" />
</mxCell>
<mxCell id="edge75" edge="1" value="" parent="1" source="node31" target="node0" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.373;exitDx=0;exitDy=0;entryX=0.000;entryY=0.964;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="506" y="1684" />
<mxPoint x="506" y="1517" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label452" parent="edge75" vertex="1" connectable="0" value="«create»" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="454" y="1507" as="geometry" />
</mxCell>
<mxCell id="edge16" edge="1" value="" parent="1" source="node31" target="node4" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="658" y="1553" />
<mxPoint x="795" y="1553" />
<mxPoint x="795" y="1041" />
<mxPoint x="841" y="1041" />
<mxPoint x="841" y="505" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge43" edge="1" value="" parent="1" source="node7" target="node31" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.419;exitY=1.000;exitDx=0;exitDy=0;entryX=0.000;entryY=0.890;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1672" y="2309" />
<mxPoint x="472" y="2309" />
<mxPoint x="472" y="1806" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label258" parent="edge43" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1672" y="1731" as="geometry" />
</mxCell>
<mxCell id="label262" parent="edge43" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="866" y="2289" as="geometry" />
</mxCell>
<mxCell id="label263" parent="edge43" vertex="1" connectable="0" value="cistern" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="470" y="1806" as="geometry" />
</mxCell>
<mxCell id="edge1" edge="1" value="" parent="1" source="node7" target="node6" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.581;exitY=1.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1702" y="1854" />
<mxPoint x="1410" y="1854" />
<mxPoint x="1410" y="1140" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge28" edge="1" value="" parent="1" source="node7" target="node24" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.001;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2175" y="1665" />
<mxPoint x="2175" y="1636" />
<mxPoint x="2505" y="1636" />
<mxPoint x="2505" y="1742" />
<mxPoint x="2946" y="1742" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge19" edge="1" value="" parent="1" source="node7" target="node18" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1687" y="1932" />
<mxPoint x="2428" y="1932" />
<mxPoint x="2428" y="1617" />
<mxPoint x="2589" y="1617" />
<mxPoint x="2589" y="1254" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge62" edge="1" value="" parent="1" source="node33" target="node31" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.850;exitDx=0;exitDy=0;entryX=0.000;entryY=0.564;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="label374" parent="edge62" vertex="1" connectable="0" value="«create»" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="461" y="1709" as="geometry" />
</mxCell>
<mxCell id="edge76" edge="1" value="" parent="1" source="node33" target="node31" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.934;exitDx=0;exitDy=0;entryX=0.000;entryY=0.890;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="label456" parent="edge76" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="506" y="1796" as="geometry" />
</mxCell>
<mxCell id="label460" parent="edge76" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="492" y="1786" as="geometry" />
</mxCell>
<mxCell id="label461" parent="edge76" vertex="1" connectable="0" value="cisterns" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="464" y="1806" as="geometry" />
</mxCell>
<mxCell id="edge49" edge="1" value="" parent="1" source="node33" target="node13" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.330;exitY=0.000;exitDx=0;exitDy=0;entryX=0.000;entryY=0.076;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="278" y="-122" />
<mxPoint x="1903" y="-122" />
<mxPoint x="1903" y="1215" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label294" parent="edge49" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="544" y="-182" as="geometry" />
</mxCell>
<mxCell id="label298" parent="edge49" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1979" y="1199" as="geometry" />
</mxCell>
<mxCell id="label299" parent="edge49" vertex="1" connectable="0" value="endGameView" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1914" y="1247" as="geometry" />
</mxCell>
<mxCell id="edge35" edge="1" value="" parent="1" source="node33" target="node23" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.217;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.822;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="248" y="-152" />
<mxPoint x="3279" y="-152" />
<mxPoint x="3279" y="1545" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label210" parent="edge35" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="243" y="-172" as="geometry" />
</mxCell>
<mxCell id="label214" parent="edge35" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2711" y="1545" as="geometry" />
</mxCell>
<mxCell id="label215" parent="edge35" vertex="1" connectable="0" value="gameView" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2705" y="1504" as="geometry" />
</mxCell>
<mxCell id="edge51" edge="1" value="" parent="1" source="node33" target="node2" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.443;exitY=0.000;exitDx=0;exitDy=0;entryX=0.078;entryY=0.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="308" y="-92" />
<mxPoint x="1232" y="-92" />
<mxPoint x="1232" y="1043" />
<mxPoint x="1146" y="1043" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label308" parent="edge51" vertex="1" connectable="0" value="«create»" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="744" y="-113" as="geometry" />
</mxCell>
<mxCell id="edge67" edge="1" value="" parent="1" source="node33" target="node2" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.438;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-101" y="1407" />
<mxPoint x="-101" y="2324" />
<mxPoint x="1365" y="2324" />
<mxPoint x="1365" y="1586" />
<mxPoint x="1232" y="1586" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label402" parent="edge67" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="-107" y="1392" as="geometry" />
</mxCell>
<mxCell id="label406" parent="edge67" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1223" y="1547" as="geometry" />
</mxCell>
<mxCell id="label407" parent="edge67" vertex="1" connectable="0" value="mechanics" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1232" y="1540" as="geometry" />
</mxCell>
<mxCell id="edge69" edge="1" value="" parent="1" source="node33" target="node12" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.387;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=0.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="293" y="-107" />
<mxPoint x="1843" y="-107" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label414" parent="edge69" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="546" y="-127" as="geometry" />
</mxCell>
<mxCell id="label418" parent="edge69" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1843" y="912" as="geometry" />
</mxCell>
<mxCell id="label419" parent="edge69" vertex="1" connectable="0" value="menuView" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1781" y="912" as="geometry" />
</mxCell>
<mxCell id="edge72" edge="1" value="" parent="1" source="node33" target="node25" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.274;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=0.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="263" y="-137" />
<mxPoint x="2438" y="-137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label432" parent="edge72" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="212" y="536" as="geometry" />
</mxCell>
<mxCell id="label436" parent="edge72" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2438" y="647" as="geometry" />
</mxCell>
<mxCell id="label437" parent="edge72" vertex="1" connectable="0" value="newGameView" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2351" y="647" as="geometry" />
</mxCell>
<mxCell id="edge50" edge="1" value="" parent="1" source="node33" target="node21" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.675;exitDx=0;exitDy=0;entryX=0.401;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1097" y="1568" />
<mxPoint x="1097" y="1026" />
<mxPoint x="1052" y="1026" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label300" parent="edge50" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="450" y="1508" as="geometry" />
</mxCell>
<mxCell id="label304" parent="edge50" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1057" y="1001" as="geometry" />
</mxCell>
<mxCell id="label305" parent="edge50" vertex="1" connectable="0" value="pickupables" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="983" y="998" as="geometry" />
</mxCell>
<mxCell id="edge40" edge="1" value="" parent="1" source="node33" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.484;exitDx=0;exitDy=0;entryX=0.000;entryY=0.266;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="505" y="1392" />
<mxPoint x="505" y="207" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label242" parent="edge40" vertex="1" connectable="0" value="«create»" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="591" y="171" as="geometry" />
</mxCell>
<mxCell id="edge60" edge="1" value="" parent="1" source="node33" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.281;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="487" y="1407" />
<mxPoint x="487" y="983" />
<mxPoint x="941" y="983" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label360" parent="edge60" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="889" y="836" as="geometry" />
</mxCell>
<mxCell id="label364" parent="edge60" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="919" y="818" as="geometry" />
</mxCell>
<mxCell id="label365" parent="edge60" vertex="1" connectable="0" value="pipes" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="941" y="866" as="geometry" />
</mxCell>
<mxCell id="edge37" edge="1" value="" parent="1" source="node33" target="node10" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.000;entryY=0.275;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="323" y="-77" />
<mxPoint x="1135" y="-77" />
<mxPoint x="1135" y="891" />
<mxPoint x="1202" y="891" />
<mxPoint x="1202" y="1085" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label222" parent="edge37" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="312" y="934" as="geometry" />
</mxCell>
<mxCell id="label226" parent="edge37" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1396" y="1070" as="geometry" />
</mxCell>
<mxCell id="label227" parent="edge37" vertex="1" connectable="0" value="turnOrder" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1351" y="1103" as="geometry" />
</mxCell>
<mxCell id="edge74" edge="1" value="" parent="1" source="node33" target="node36" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.516;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="472" y="1422" />
<mxPoint x="472" y="968" />
<mxPoint x="708" y="968" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label444" parent="edge74" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="458" y="1407" as="geometry" />
</mxCell>
<mxCell id="label448" parent="edge74" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="697" y="951" as="geometry" />
</mxCell>
<mxCell id="label449" parent="edge74" vertex="1" connectable="0" value="counter" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="708" y="951" as="geometry" />
</mxCell>
<mxCell id="edge36" edge="1" value="" parent="1" source="node33" target="node0" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.619;exitDx=0;exitDy=0;entryX=0.000;entryY=0.964;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="label218" parent="edge36" vertex="1" connectable="0" value="«create»" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="464" y="1481" as="geometry" />
</mxCell>
<mxCell id="edge48" edge="1" value="" parent="1" source="node33" target="node0" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.658;exitDx=0;exitDy=0;entryX=0.140;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="557" y="1552" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label288" parent="edge48" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="552" y="1492" as="geometry" />
</mxCell>
<mxCell id="label292" parent="edge48" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="553" y="1534" as="geometry" />
</mxCell>
<mxCell id="label293" parent="edge48" vertex="1" connectable="0" value="pumps" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="514" y="1536" as="geometry" />
</mxCell>
<mxCell id="edge34" edge="1" value="" parent="1" source="node33" target="node14" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.484;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-116" y="1392" />
<mxPoint x="-116" y="2339" />
<mxPoint x="1425" y="2339" />
<mxPoint x="1425" y="1650" />
<mxPoint x="1547" y="1650" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label204" parent="edge34" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="-116" y="1540" as="geometry" />
</mxCell>
<mxCell id="label208" parent="edge34" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1538" y="1554" as="geometry" />
</mxCell>
<mxCell id="label209" parent="edge34" vertex="1" connectable="0" value="saboteurs" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1547" y="1554" as="geometry" />
</mxCell>
<mxCell id="edge79" edge="1" value="" parent="1" source="node33" target="node14" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.451;exitDx=0;exitDy=0;entryX=0.563;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-146" y="1362" />
<mxPoint x="-146" y="2369" />
<mxPoint x="1562" y="2369" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label476" parent="edge79" vertex="1" connectable="0" value="«create»" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="-146" y="1957" as="geometry" />
</mxCell>
<mxCell id="edge56" edge="1" value="" parent="1" source="node33" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.467;exitDx=0;exitDy=0;entryX=0.913;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="-131" y="1377" />
<mxPoint x="-131" y="2354" />
<mxPoint x="1044" y="2354" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label338" parent="edge56" vertex="1" connectable="0" value="«create»" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="-131" y="2100" as="geometry" />
</mxCell>
<mxCell id="edge73" edge="1" value="" parent="1" source="node33" target="node26" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.981;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1019" y="1849" />
<mxPoint x="1019" y="1742" />
<mxPoint x="945" y="1742" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label438" parent="edge73" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="945" y="1563" as="geometry" />
</mxCell>
<mxCell id="label442" parent="edge73" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="930" y="1563" as="geometry" />
</mxCell>
<mxCell id="label443" parent="edge73" vertex="1" connectable="0" value="springs" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="945" y="1507" as="geometry" />
</mxCell>
<mxCell id="edge66" edge="1" value="" parent="1" source="node33" target="node35" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.016;exitY=1.000;exitDx=0;exitDy=0;entryX=0.103;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="195" y="2294" />
<mxPoint x="1385" y="2294" />
<mxPoint x="1385" y="1043" />
<mxPoint x="1405" y="1043" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label396" parent="edge66" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="487" y="2274" as="geometry" />
</mxCell>
<mxCell id="label400" parent="edge66" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1410" y="945" as="geometry" />
</mxCell>
<mxCell id="label401" parent="edge66" vertex="1" connectable="0" value="steppables" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1382" y="925" as="geometry" />
</mxCell>
<mxCell id="edge45" edge="1" value="" parent="1" source="node33" target="node4" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.005;exitDx=0;exitDy=0;entryX=0.000;entryY=0.406;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="523" y="953" />
<mxPoint x="523" y="477" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label270" parent="edge45" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="508" y="824" as="geometry" />
</mxCell>
<mxCell id="label274" parent="edge45" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="522" y="467" as="geometry" />
</mxCell>
<mxCell id="label275" parent="edge45" vertex="1" connectable="0" value="nodes" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="489" y="478" as="geometry" />
</mxCell>
<mxCell id="edge31" edge="1" value="" parent="1" source="node13" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1997" y="1313" />
<mxPoint x="1997" y="1179" />
<mxPoint x="2119" y="1179" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge9" edge="1" value="" parent="1" source="node23" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1997" y="1470" />
<mxPoint x="1997" y="1179" />
<mxPoint x="2119" y="1179" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge57" edge="1" value="" parent="1" source="node2" target="node21" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.401;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1097" y="1437" />
<mxPoint x="1097" y="1026" />
<mxPoint x="1052" y="1026" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label342" parent="edge57" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1111" y="1433" as="geometry" />
</mxCell>
<mxCell id="label346" parent="edge57" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1041" y="995" as="geometry" />
</mxCell>
<mxCell id="label347" parent="edge57" vertex="1" connectable="0" value="heldItems" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1022" y="1046" as="geometry" />
</mxCell>
<mxCell id="edge15" edge="1" value="" parent="1" source="node2" target="node10" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1247" y="1568" />
<mxPoint x="1685" y="1568" />
<mxPoint x="1685" y="1414" />
<mxPoint x="1548" y="1414" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge13" edge="1" value="" parent="1" source="node30" target="node18" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.001;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2616" y="1624" />
<mxPoint x="2589" y="1624" />
<mxPoint x="2589" y="1254" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge39" edge="1" value="" parent="1" source="node30" target="node2" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.836;exitY=1.000;exitDx=0;exitDy=0;entryX=0.438;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2668" y="2324" />
<mxPoint x="1365" y="2324" />
<mxPoint x="1365" y="1586" />
<mxPoint x="1232" y="1586" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label234" parent="edge39" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2668" y="1730" as="geometry" />
</mxCell>
<mxCell id="label238" parent="edge39" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1221" y="1538" as="geometry" />
</mxCell>
<mxCell id="label239" parent="edge39" vertex="1" connectable="0" value="mechanic" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1336" y="2324" as="geometry" />
</mxCell>
<mxCell id="edge20" edge="1" value="" parent="1" source="node12" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1997" y="1348" />
<mxPoint x="1997" y="1179" />
<mxPoint x="2119" y="1179" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge0" edge="1" value="" parent="1" source="node25" target="node11" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2271" y="1027" />
<mxPoint x="2271" y="1179" />
<mxPoint x="2119" y="1179" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge6" edge="1" value="" parent="1" source="node5" target="node21" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.500;exitY=1.000;exitDx=0;exitDy=0;entryX=0.500;entryY=0.001;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="994" y="866" />
<mxPoint x="1074" y="866" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge55" edge="1" value="" parent="1" source="node5" target="node36" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.220;exitY=1.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="926" y="968" />
<mxPoint x="708" y="968" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label330" parent="edge55" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="893" y="948" as="geometry" />
</mxCell>
<mxCell id="label334" parent="edge55" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="838" y="948" as="geometry" />
</mxCell>
<mxCell id="label335" parent="edge55" vertex="1" connectable="0" value="counter" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="794" y="968" as="geometry" />
</mxCell>
<mxCell id="edge12" edge="1" value="" parent="1" source="node5" target="node35" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.285;exitDx=0;exitDy=0;entryX=0.500;entryY=0.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="785" y="222" />
<mxPoint x="785" y="-62" />
<mxPoint x="1500" y="-62" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge68" edge="1" value="" parent="1" source="node5" target="node4" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.422;exitDx=0;exitDy=0;entryX=0.000;entryY=0.406;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="523" y="336" />
<mxPoint x="523" y="477" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label408" parent="edge68" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="855" y="332" as="geometry" />
</mxCell>
<mxCell id="label412" parent="edge68" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="528" y="396" as="geometry" />
</mxCell>
<mxCell id="label413" parent="edge68" vertex="1" connectable="0" value="nodes" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="518" y="511" as="geometry" />
</mxCell>
<mxCell id="edge64" edge="1" value="" parent="1" source="node34" target="node7" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=0.661;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2175" y="1716" />
<mxPoint x="2175" y="1775" />
<mxPoint x="1717" y="1775" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label384" parent="edge64" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2160" y="1706" as="geometry" />
</mxCell>
<mxCell id="label388" parent="edge64" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1701" y="1739" as="geometry" />
</mxCell>
<mxCell id="label389" parent="edge64" vertex="1" connectable="0" value="gen" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1704" y="1775" as="geometry" />
</mxCell>
<mxCell id="edge24" edge="1" value="" parent="1" source="node34" target="node6" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.419;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2271" y="1602" />
<mxPoint x="2396" y="1602" />
<mxPoint x="2396" y="1854" />
<mxPoint x="1410" y="1854" />
<mxPoint x="1410" y="1140" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge3" edge="1" value="" parent="1" source="node34" target="node24" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.581;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.001;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2301" y="1636" />
<mxPoint x="2505" y="1636" />
<mxPoint x="2505" y="1742" />
<mxPoint x="2946" y="1742" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge10" edge="1" value="" parent="1" source="node34" target="node18" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2286" y="1617" />
<mxPoint x="2589" y="1617" />
<mxPoint x="2589" y="1254" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge32" edge="1" value="" parent="1" source="node34" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.262;exitY=0.000;exitDx=0;exitDy=0;entryX=0.281;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2241" y="1497" />
<mxPoint x="1700" y="1497" />
<mxPoint x="1700" y="-32" />
<mxPoint x="487" y="-32" />
<mxPoint x="487" y="983" />
<mxPoint x="941" y="983" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label192" parent="edge32" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2230" y="1630" as="geometry" />
</mxCell>
<mxCell id="label196" parent="edge32" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="930" y="821" as="geometry" />
</mxCell>
<mxCell id="label197" parent="edge32" vertex="1" connectable="0" value="pipe" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="946" y="840" as="geometry" />
</mxCell>
<mxCell id="edge58" edge="1" value="" parent="1" source="node10" target="node19" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.545;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="946" y="1196" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label348" parent="edge58" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="951" y="1183" as="geometry" />
</mxCell>
<mxCell id="label352" parent="edge58" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="935" y="1164" as="geometry" />
</mxCell>
<mxCell id="label353" parent="edge58" vertex="1" connectable="0" value="state" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="946" y="1164" as="geometry" />
</mxCell>
<mxCell id="edge33" edge="1" value="" parent="1" source="node10" target="node35" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.134;exitDx=0;exitDy=0;entryX=0.103;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1405" y="1026" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label198" parent="edge33" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1412" y="1022" as="geometry" />
</mxCell>
<mxCell id="label202" parent="edge33" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1389" y="983" as="geometry" />
</mxCell>
<mxCell id="label203" parent="edge33" vertex="1" connectable="0" value="standingOn" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1373" y="1006" as="geometry" />
</mxCell>
<mxCell id="edge11" edge="1" value="" parent="1" source="node27" target="node18" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2589" y="1358" />
<mxPoint x="2589" y="1254" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge77" edge="1" value="" parent="1" source="node27" target="node17" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="3184" y="1197" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label462" parent="edge77" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="3185" y="1222" as="geometry" />
</mxCell>
<mxCell id="label466" parent="edge77" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="3109" y="1192" as="geometry" />
</mxCell>
<mxCell id="label467" parent="edge77" vertex="1" connectable="0" value="buttons" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="3107" y="1165" as="geometry" />
</mxCell>
<mxCell id="edge47" edge="1" value="" parent="1" source="node27" target="node9" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.049;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2919" y="1323" />
<mxPoint x="2919" y="1376" />
<mxPoint x="2741" y="1376" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label282" parent="edge47" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2903" y="1313" as="geometry" />
</mxCell>
<mxCell id="label286" parent="edge47" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2741" y="1346" as="geometry" />
</mxCell>
<mxCell id="label287" parent="edge47" vertex="1" connectable="0" value="option" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2722" y="1337" as="geometry" />
</mxCell>
<mxCell id="edge41" edge="1" value="" parent="1" source="node17" target="node1" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.454;exitY=0.000;exitDx=0;exitDy=0;entryX=0.961;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="label246" parent="edge41" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2990" y="1105" as="geometry" />
</mxCell>
<mxCell id="label250" parent="edge41" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2985" y="1091" as="geometry" />
</mxCell>
<mxCell id="label251" parent="edge41" vertex="1" connectable="0" value="actiontype" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2996" y="1081" as="geometry" />
</mxCell>
<mxCell id="edge5" edge="1" value="" parent="1" source="node17" target="node6" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.000;exitY=0.353;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2297" y="1179" />
<mxPoint x="2297" y="1602" />
<mxPoint x="2396" y="1602" />
<mxPoint x="2396" y="1854" />
<mxPoint x="1410" y="1854" />
<mxPoint x="1410" y="1140" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge59" edge="1" value="" parent="1" source="node17" target="node6" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.588;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=0.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="3021" y="883" />
<mxPoint x="1987" y="883" />
<mxPoint x="1987" y="954" />
<mxPoint x="1256" y="954" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label354" parent="edge59" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="3015" y="863" as="geometry" />
</mxCell>
<mxCell id="label358" parent="edge59" vertex="1" connectable="0" value="*" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1256" y="1088" as="geometry" />
</mxCell>
<mxCell id="label359" parent="edge59" vertex="1" connectable="0" value="parameters" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1222" y="1072" as="geometry" />
</mxCell>
<mxCell id="edge17" edge="1" value="" parent="1" source="node17" target="node18" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2589" y="1197" />
<mxPoint x="2589" y="1254" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge14" edge="1" value="" parent="1" source="node0" target="node21" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=1.000;exitY=0.025;exitDx=0;exitDy=0;entryX=0.500;entryY=0.001;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="911" y="1026" />
<mxPoint x="911" y="866" />
<mxPoint x="1074" y="866" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge54" edge="1" value="" parent="1" source="node0" target="node5" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.281;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="644" y="983" />
<mxPoint x="941" y="983" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label324" parent="edge54" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="633" y="988" as="geometry" />
</mxCell>
<mxCell id="label328" parent="edge54" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="836" y="983" as="geometry" />
</mxCell>
<mxCell id="label329" parent="edge54" vertex="1" connectable="0" value="activeIn" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="941" y="806" as="geometry" />
</mxCell>
<mxCell id="edge2" edge="1" value="" parent="1" source="node0" target="node4" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;endArrow=block;endSize=12;strokeColor=#000082;exitX=1.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="795" y="1274" />
<mxPoint x="795" y="1041" />
<mxPoint x="841" y="1041" />
<mxPoint x="841" y="505" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="edge65" edge="1" value="" parent="1" source="node8" target="node7" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.000;exitY=0.673;exitDx=0;exitDy=0;entryX=0.661;entryY=1.000;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1948" y="1869" />
<mxPoint x="1948" y="1775" />
<mxPoint x="1717" y="1775" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="label390" parent="edge65" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="2449" y="1865" as="geometry" />
</mxCell>
<mxCell id="label394" parent="edge65" vertex="1" connectable="0" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1948" y="1812" as="geometry" />
</mxCell>
<mxCell id="label395" parent="edge65" vertex="1" connectable="0" value="gen" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;">
<mxGeometry x="1923" y="1812" as="geometry" />
</mxCell>
<mxCell id="edge25" edge="1" value="" parent="1" source="node8" target="node6" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;strokeColor=#008200;exitX=0.299;exitY=0.000;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2520" y="1602" />