forked from codesquad-members-2022/airbnb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ClassDiagram
511 lines (511 loc) · 63.2 KB
/
ClassDiagram
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
<mxfile host="app.diagrams.net" modified="2022-05-27T09:05:32.941Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36" etag="Ue-7qmOhEzpWQlL4pKCt" version="16.4.7" type="github">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="2338" dy="2112" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="Ax1DXbij-rGARmu-P0IM-50" value="MainViewController" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="40" y="40" width="280" height="138" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-67" value="- viewModel" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-50">
<mxGeometry y="26" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-59" value="- recommandTravelViewController" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-50">
<mxGeometry y="52" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-57" value="- arroundTravalViewController
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-50">
<mxGeometry y="78" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-55" value="- heroImageView
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-50">
<mxGeometry y="104" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-52" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-50">
<mxGeometry y="130" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-154" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.014;entryY=0.496;entryDx=0;entryDy=0;entryPerimeter=0;startSize=50;dashed=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" target="Ax1DXbij-rGARmu-P0IM-133">
<mxGeometry relative="1" as="geometry">
<mxPoint x="780" y="70" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-68" value="MainViewModel" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="500" y="40" width="280" height="188" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-122" value="+ loadHome: PublishRelay<void>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-68">
<mxGeometry y="50" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-132" value="+ loadedHeroImage: PublishRelay<url>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-68">
<mxGeometry y="76" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-131" value="+ presentSearchOption: PublishRelay<string>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-68">
<mxGeometry y="102" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-77" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-68">
<mxGeometry y="128" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-147" value="+ func action -> MainViewModelAction" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-68">
<mxGeometry y="136" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-148" value="+ func state -> MainViewModelState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-68">
<mxGeometry y="162" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-82" value="ArroundTravalMiniViewController" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="40" y="550" width="280" height="60" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-182" value="- viewModel" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-82">
<mxGeometry y="26" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-91" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-82">
<mxGeometry y="52" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-94" value="RecommandTravelViewController" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="40" y="960" width="280" height="60" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-95" value="- viewModel" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-94">
<mxGeometry y="26" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-96" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-94">
<mxGeometry y="52" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-100" value="HeroImageView" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="30" y="342" width="280" height="60" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-101" value="propertys
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-100">
<mxGeometry y="26" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-102" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-100">
<mxGeometry y="52" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-133" value="<<protocol>>
MainViewModelAction" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="40" width="400" height="76" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-134" value="+ loadHome: PublishRelay<void>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-133">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-142" value="<<protocol>>
MainViewModelState" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="140" width="400" height="76" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-143" value="+ loadedHeroImage: PublishRelay<url>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-142">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-144" value="<<protocol>>
MainViewModelBinding" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="240" width="400" height="102" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-145" value="+ func action -> MainViewModelAction" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-144">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-146" value="+ func state -> MainViewModelState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-144">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-149" value="<<protocol>>
MainViewModelProperty" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="370" width="400" height="102" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-152" value="+ arroundTravelViewModel: ArroundTravalViewModelProtocol
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-149">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-153" value="+ recommandTravelViewModel: RecommandTravelViewModelProtocol
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-149">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-155" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.002;entryY=0.39;entryDx=0;entryDy=0;entryPerimeter=0;startSize=50;dashed=1;exitX=1.005;exitY=0.158;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-68" target="Ax1DXbij-rGARmu-P0IM-142">
<mxGeometry relative="1" as="geometry">
<mxPoint x="790" y="144" as="sourcePoint" />
<mxPoint x="846.0799999999999" y="87.69600000000003" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-156" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;startSize=50;dashed=1;exitX=1;exitY=0.165;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-68" target="Ax1DXbij-rGARmu-P0IM-144">
<mxGeometry relative="1" as="geometry">
<mxPoint x="800" y="154" as="sourcePoint" />
<mxPoint x="849.4399999999998" y="179.64" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-157" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;startSize=50;dashed=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" target="Ax1DXbij-rGARmu-P0IM-149">
<mxGeometry relative="1" as="geometry">
<mxPoint x="780" y="70" as="sourcePoint" />
<mxPoint x="850" y="275.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-158" value="ArroundTravalViewModel" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="500" y="550" width="280" height="188" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-176" value="+ loadArroundTravel: PublishRelay<void>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-158">
<mxGeometry y="50" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-177" value="+ loadedAroundTraval: PublishRelay<[ArroundTravelCellViewModel]>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-158">
<mxGeometry y="76" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-178" value="+ selectedAddress: PublishRelay<ArroundTraval>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-158">
<mxGeometry y="102" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-162" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-158">
<mxGeometry y="128" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-179" value="+ func action -> ArroundTravalViewModelAction" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-158">
<mxGeometry y="136" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-180" value="+ func state -> ArroundTravalViewModelState

" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-158">
<mxGeometry y="162" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-165" value="<<protocol>>
ArroundTravalViewModelAction" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="550" width="400" height="76" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-166" value="+ loadArroundTravel: PublishRelay<void>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-165">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-167" value="<<protocol>>
ArroundTravalViewModelState" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="650" width="400" height="102" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-168" value="+ loadedAroundTraval: PublishRelay<[ArroundTravelCellViewModel]>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-167">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-175" value="+ selectedAddress: PublishRelay<ArroundTraval>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-167">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-169" value="<<protocol>>
ArroundTravalViewModelBinding" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="780" width="400" height="102" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-170" value="+ func action -> ArroundTravalViewModelAction" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-169">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-171" value="+ func state -> ArroundTravalViewModelState

" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-169">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-236" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startSize=50;dashed=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-183" target="Ax1DXbij-rGARmu-P0IM-190">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-237" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=-0.009;entryY=0.355;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;startSize=50;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-183" target="Ax1DXbij-rGARmu-P0IM-192">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-238" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;startSize=50;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-183" target="Ax1DXbij-rGARmu-P0IM-195">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-183" value="RecommandTravelViewModel" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="500" y="960" width="280" height="162" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-199" value="+ loadRecommandTravel: PublishRelay<void>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-183">
<mxGeometry y="50" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-200" value="+ loadedRecommandTraval: PublishRelay<[RecommandTraval]>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-183">
<mxGeometry y="76" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-187" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-183">
<mxGeometry y="102" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-202" value="+ func state -> RecommandTravelViewModelState

" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-183">
<mxGeometry y="110" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-201" value="+ func action -> RecommandTravelViewModelAction


" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-183">
<mxGeometry y="136" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-190" value="<<protocol>>
RecommandTravelViewModelAction
" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="960" width="400" height="76" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-191" value="+ loadRecommandTravel: PublishRelay<void>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-190">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-192" value="<<protocol>>
RecommandTravelViewModelState" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="1060" width="400" height="76" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-193" value="+ loadedRecommandTraval: PublishRelay<[RecommandTraval]>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-192">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-195" value="<<protocol>>
RecommandTravelViewModelBinding
" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="1190" width="400" height="102" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-196" value="+ func action -> RecommandTravelViewModelAction


" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-195">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-197" value="+ func state -> RecommandTravelViewModelState

" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-195">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-203" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.009;entryY=0.362;entryDx=0;entryDy=0;startSize=50;dashed=1;exitX=1.006;exitY=0.124;exitDx=0;exitDy=0;exitPerimeter=0;entryPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-158" target="Ax1DXbij-rGARmu-P0IM-165">
<mxGeometry relative="1" as="geometry">
<mxPoint x="750" y="780" as="sourcePoint" />
<mxPoint x="810" y="1105.4999999999998" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-204" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;startSize=50;dashed=1;exitX=1.002;exitY=0.118;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-158" target="Ax1DXbij-rGARmu-P0IM-167">
<mxGeometry relative="1" as="geometry">
<mxPoint x="791.6799999999998" y="583.3120000000001" as="sourcePoint" />
<mxPoint x="846.4000000000001" y="587.5120000000002" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-205" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;startSize=50;dashed=1;exitX=0.999;exitY=0.135;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-158" target="Ax1DXbij-rGARmu-P0IM-169">
<mxGeometry relative="1" as="geometry">
<mxPoint x="790.56" y="582.1840000000002" as="sourcePoint" />
<mxPoint x="850" y="685.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-206" value="SearchViewController" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="40" y="1430" width="280" height="128" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-207" value="+ viewModel" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-206">
<mxGeometry y="50" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-208" value="+ arroundTravalViewController" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-206">
<mxGeometry y="76" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-209" value="+ searchResultViewController" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-206">
<mxGeometry y="102" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-251" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;startSize=50;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-213" target="Ax1DXbij-rGARmu-P0IM-220">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-252" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=-0.009;entryY=0.185;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;startSize=50;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-213" target="Ax1DXbij-rGARmu-P0IM-239">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-253" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;startSize=50;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-213" target="Ax1DXbij-rGARmu-P0IM-241">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-213" value="SearchViewModel" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="500" y="1430" width="280" height="396" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-254" value="+ loadAroundTraval: PublishRelay<Void>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="50" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-264" value="+ clearedSearchText: PublishRelay<Void>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="76" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-263" value="+ enabledClearButton: PublishRelay<Bool>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="102" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-262" value="+ showSearchResultView: PublishRelay<Bool>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="128" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-261" value="+ showArroundTravalView: PublishRelay<Bool>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="154" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-260" value="+ presentSearchOption: PublishRelay<String>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="180" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-259" value="+ loadedAroundTraval: PublishRelay<[ArroundTraval]>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="206" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-256" value="+ clearSearchText: PublishRelay<Void>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="232" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-255" value="+ inputSearchText: PublishRelay<String?>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="258" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-265" value="+ arroundTravelViewModel: ArroundTravalViewModelProtocol" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="284" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-267" value="+ searchResultTravelViewModel: SearchResultViewModelProtocol" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="310" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-217" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="336" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-257" value="+ func action() -> SearchViewModelAction" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="344" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-258" value="+ func state() -> SearchViewModelState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry y="370" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-220" value="<<protocol>>
SearchViewModelAction" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="1430" width="400" height="128" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-221" value="+ loadAroundTraval: PublishRelay<Void>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-220">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-243" value="+ inputSearchText: PublishRelay<String?>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-220">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-244" value="+ clearSearchText: PublishRelay<Void>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-220">
<mxGeometry y="102" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-222" value="ArroundTravalLargeViewController" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="40" y="678" width="280" height="60" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-223" value="- viewModel" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-222">
<mxGeometry y="26" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-224" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-222">
<mxGeometry y="52" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-228" value="SearchResultViewController" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="30" y="2140" width="280" height="76" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-229" value="+ viewModel" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-228">
<mxGeometry y="50" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-239" value="<<protocol>>
SearchViewModelState" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="1610" width="400" height="206" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-240" value="+ loadedAroundTraval: PublishRelay<[ArroundTraval]>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-239">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-245" value="+ presentSearchOption: PublishRelay<String>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-239">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-246" value="+ showArroundTravalView: PublishRelay<Bool>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-239">
<mxGeometry y="102" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-247" value="+ showSearchResultView: PublishRelay<Bool>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-239">
<mxGeometry y="128" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-248" value="+ enabledClearButton: PublishRelay<Bool>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-239">
<mxGeometry y="154" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-249" value="+ clearedSearchText: PublishRelay<Void>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-239">
<mxGeometry y="180" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-241" value="<<protocol>>
SearchViewModelBinding" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="1880" width="400" height="102" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-242" value="+ func action() -> SearchViewModelAction" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-241">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-250" value="+ func state() -> SearchViewModelState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-241">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-269" value="viewModel" style="html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-208" target="Ax1DXbij-rGARmu-P0IM-265">
<mxGeometry width="60" relative="1" as="geometry">
<mxPoint x="320" y="1410" as="sourcePoint" />
<mxPoint x="380" y="1410" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-270" value="viewModel" style="html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-209" target="Ax1DXbij-rGARmu-P0IM-267">
<mxGeometry width="60" relative="1" as="geometry">
<mxPoint x="330" y="1529" as="sourcePoint" />
<mxPoint x="510" y="1737" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-271" value="viewModel" style="html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;rounded=0;exitX=1.001;exitY=0.674;exitDx=0;exitDy=0;entryX=-0.002;entryY=0.057;entryDx=0;entryDy=0;exitPerimeter=0;entryPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-207" target="Ax1DXbij-rGARmu-P0IM-213">
<mxGeometry width="60" relative="1" as="geometry">
<mxPoint x="330" y="1529" as="sourcePoint" />
<mxPoint x="510" y="1737" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-272" value="viewModel" style="html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.004;entryY=0.138;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-95" target="Ax1DXbij-rGARmu-P0IM-183">
<mxGeometry width="60" relative="1" as="geometry">
<mxPoint x="324" y="1004.954" as="sourcePoint" />
<mxPoint x="503.1600000000001" y="960.0020000000002" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-273" value="viewModel" style="html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.007;entryY=0.172;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-223" target="Ax1DXbij-rGARmu-P0IM-158">
<mxGeometry width="60" relative="1" as="geometry">
<mxPoint x="324" y="694.6399999999998" as="sourcePoint" />
<mxPoint x="502.8800000000001" y="677.996" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-274" value="viewModel" style="html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.002;entryY=0.172;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-182" target="Ax1DXbij-rGARmu-P0IM-158">
<mxGeometry width="60" relative="1" as="geometry">
<mxPoint x="330" y="727" as="sourcePoint" />
<mxPoint x="508.03999999999996" y="592.336" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-275" value="viewModel" style="html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.012;entryY=0.159;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-67" target="Ax1DXbij-rGARmu-P0IM-68">
<mxGeometry width="60" relative="1" as="geometry">
<mxPoint x="300" y="246.66000000000003" as="sourcePoint" />
<mxPoint x="479.44000000000005" y="239.99600000000004" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-306" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=-0.006;entryY=0.41;entryDx=0;entryDy=0;entryPerimeter=0;startSize=50;dashed=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-276" target="Ax1DXbij-rGARmu-P0IM-292">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-307" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;startSize=50;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-276" target="Ax1DXbij-rGARmu-P0IM-298">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-308" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;startSize=50;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-276" target="Ax1DXbij-rGARmu-P0IM-295">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-276" value="SearchResultViewModel
" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#82b366;fillColor=#d5e8d4;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="500" y="2140" width="280" height="188" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-301" value="+ inputSearchText: PublishRelay<String>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-276">
<mxGeometry y="50" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-303" value="+ selectedAddress: PublishRelay<String>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-276">
<mxGeometry y="76" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-302" value="+ updatedSearchResult: PublishRelay<[SearchResultCellViewModel]>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-276">
<mxGeometry y="102" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-288" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-276">
<mxGeometry y="128" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-304" value="+ action() -> SearchResultViewModelAction" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-276">
<mxGeometry y="136" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-305" value="+ state() -> SearchResultViewModelState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-276">
<mxGeometry y="162" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-291" value="viewModel" style="html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Ax1DXbij-rGARmu-P0IM-229" target="Ax1DXbij-rGARmu-P0IM-276">
<mxGeometry width="60" relative="1" as="geometry">
<mxPoint x="360.0000000000002" y="1959.9999999999995" as="sourcePoint" />
<mxPoint x="540" y="2168" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-292" value="<<protocol>>
SearchResultViewModelAction" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="2140" width="400" height="76" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-293" value="+ inputSearchText: PublishRelay<String>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-292">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-295" value="<<protocol>>
SearchResultViewModelBinding" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="2480" width="400" height="102" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-296" value="+ action() -> SearchResultViewModelAction" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-295">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-297" value="+ state() -> SearchResultViewModelState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-295">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-298" value="<<protocol>>
SearchResultViewModelState" style="swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;strokeColor=#6c8ebf;fillColor=#dae8fc;swimlaneHead=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="840" y="2310" width="400" height="102" as="geometry">
<mxRectangle x="500" y="40" width="120" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-299" value="+ updatedSearchResult: PublishRelay<[SearchResultCellViewModel]>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-298">
<mxGeometry y="50" width="400" height="26" as="geometry" />
</mxCell>
<mxCell id="Ax1DXbij-rGARmu-P0IM-300" value="+ selectedAddress: PublishRelay<String>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Ax1DXbij-rGARmu-P0IM-298">
<mxGeometry y="76" width="400" height="26" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>