1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<!-- Generated by graphviz version 2.43.0 (0)
5 -->
6<!-- Title: %3 Pages: 1 -->
7<svg width="1089pt" height="772pt"
8 viewBox="0.00 0.00 1088.50 772.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 768)">
10<title>%3</title>
11<polygon fill="white" stroke="transparent" points="-4,4 -4,-768 1084.5,-768 1084.5,4 -4,4"/>
12<g id="clust1" class="cluster">
13<title>cluster_host</title>
14<polygon fill="none" stroke="black" points="887.5,-436 887.5,-598 1072.5,-598 1072.5,-436 887.5,-436"/>
15<text text-anchor="middle" x="980" y="-443.8" font-family="Times,serif" font-size="14.00">cuttlefish&#45;user Debian package</text>
16</g>
17<g id="clust2" class="cluster">
18<title>cluster_android</title>
19<polygon fill="none" stroke="black" points="410.5,-8 410.5,-156 856.5,-156 856.5,-8 410.5,-8"/>
20<text text-anchor="middle" x="633.5" y="-15.8" font-family="Times,serif" font-size="14.00">Cuttlefish VM</text>
21</g>
22<!-- audio_server -->
23<g id="node1" class="node">
24<title>audio_server</title>
25<polygon fill="none" stroke="black" points="985,-308 826,-308 826,-272 985,-272 985,-308"/>
26<text text-anchor="middle" x="905.5" y="-286.3" font-family="Times,serif" font-size="14.00">internal/audio_server.sock</text>
27</g>
28<!-- webrtc -->
29<g id="node16" class="node">
30<title>webrtc</title>
31<ellipse fill="none" stroke="black" stroke-width="2" cx="592.5" cy="-377" rx="41.69" ry="18"/>
32<text text-anchor="start" x="568.5" y="-374.3" font-family="Times,serif" font-size="14.00"> </text>
33<text text-anchor="start" x="572.5" y="-374.3" font-family="Times,serif" font-weight="bold" font-size="14.00">webrtc</text>
34<text text-anchor="start" x="612.5" y="-374.3" font-family="Times,serif" font-size="14.00"> </text>
35</g>
36<!-- audio_server&#45;&gt;webrtc -->
37<g id="edge15" class="edge">
38<title>audio_server&#45;&gt;webrtc</title>
39<path fill="none" stroke="black" d="M840.59,-311.02C809.24,-320.48 771.02,-331.7 736.5,-341 703.86,-349.79 666.8,-358.77 638.45,-365.44"/>
40<polygon fill="black" stroke="black" points="841.96,-314.26 850.51,-308.01 839.93,-307.56 841.96,-314.26"/>
41<polygon fill="black" stroke="black" points="637.37,-362.1 628.43,-367.79 638.96,-368.91 637.37,-362.1"/>
42</g>
43<!-- browser -->
44<g id="node2" class="node">
45<title>browser</title>
46<ellipse fill="none" stroke="black" cx="865.5" cy="-746" rx="40.09" ry="18"/>
47<text text-anchor="middle" x="865.5" y="-742.3" font-family="Times,serif" font-size="14.00">Browser</text>
48</g>
49<!-- confirmationui_sign -->
50<g id="node3" class="node">
51<title>confirmationui_sign</title>
52<polygon fill="none" stroke="black" points="351.5,-503 197.5,-503 197.5,-467 351.5,-467 351.5,-503"/>
53<text text-anchor="middle" x="274.5" y="-481.3" font-family="Times,serif" font-size="14.00">internal/confui_sign.sock</text>
54</g>
55<!-- secure_env -->
56<g id="node13" class="node">
57<title>secure_env</title>
58<ellipse fill="none" stroke="black" cx="293.5" cy="-572" rx="50.09" ry="18"/>
59<text text-anchor="middle" x="293.5" y="-568.3" font-family="Times,serif" font-size="14.00">secure_env</text>
60</g>
61<!-- confirmationui_sign&#45;&gt;secure_env -->
62<g id="edge10" class="edge">
63<title>confirmationui_sign&#45;&gt;secure_env</title>
64<path fill="none" stroke="black" d="M280.59,-513.27C282.78,-523.04 285.24,-534.06 287.43,-543.83"/>
65<polygon fill="black" stroke="black" points="283.94,-512.2 278.34,-503.2 277.11,-513.72 283.94,-512.2"/>
66<polygon fill="black" stroke="black" points="284.06,-544.83 289.66,-553.82 290.89,-543.3 284.06,-544.83"/>
67</g>
68<!-- gnss_grpc_proxy -->
69<g id="node4" class="node">
70<title>gnss_grpc_proxy</title>
71<ellipse fill="none" stroke="black" cx="433.5" cy="-572" rx="71.49" ry="18"/>
72<text text-anchor="middle" x="433.5" y="-568.3" font-family="Times,serif" font-size="14.00">gnss_grpc_proxy</text>
73</g>
74<!-- gnss_grpc_server -->
75<g id="node5" class="node">
76<title>gnss_grpc_server</title>
77<polygon fill="none" stroke="black" points="493.5,-503 369.5,-503 369.5,-467 493.5,-467 493.5,-503"/>
78<text text-anchor="middle" x="431.5" y="-481.3" font-family="Times,serif" font-size="14.00">GNSS gRPC server</text>
79</g>
80<!-- gnss_grpc_server&#45;&gt;gnss_grpc_proxy -->
81<g id="edge12" class="edge">
82<title>gnss_grpc_server&#45;&gt;gnss_grpc_proxy</title>
83<path fill="none" stroke="black" d="M432.14,-513.27C432.37,-522.94 432.63,-533.83 432.85,-543.52"/>
84<polygon fill="black" stroke="black" points="435.64,-513.12 431.9,-503.2 428.64,-513.28 435.64,-513.12"/>
85<polygon fill="black" stroke="black" points="429.36,-543.91 433.1,-553.82 436.36,-543.74 429.36,-543.91"/>
86<text text-anchor="middle" x="445" y="-524.8" font-family="Times,serif" font-size="14.00">TCP</text>
87</g>
88<!-- host_bluetooth -->
89<g id="node6" class="node">
90<title>host_bluetooth</title>
91<ellipse fill="none" stroke="black" cx="646.5" cy="-485" rx="135.38" ry="18"/>
92<text text-anchor="middle" x="646.5" y="-481.3" font-family="Times,serif" font-size="14.00">Host bluetooth (netsim / rootcanal)</text>
93</g>
94<!-- host_confirmationui_in -->
95<g id="node7" class="node">
96<title>host_confirmationui_in</title>
97<polygon fill="none" stroke="black" points="161,-308 0,-308 0,-272 161,-272 161,-308"/>
98<text text-anchor="middle" x="80.5" y="-286.3" font-family="Times,serif" font-size="14.00">internal/confui_fifo_vm.in</text>
99</g>
100<!-- host_confirmationui_in&#45;&gt;webrtc -->
101<g id="edge26" class="edge">
102<title>host_confirmationui_in&#45;&gt;webrtc</title>
103<path fill="none" stroke="black" d="M171.57,-308.16C318.89,-333.82 481.03,-358.99 553.75,-370.11"/>
104<polygon fill="black" stroke="black" points="171.89,-304.67 161.43,-306.39 170.68,-311.56 171.89,-304.67"/>
105</g>
106<!-- host_confirmationui_out -->
107<g id="node8" class="node">
108<title>host_confirmationui_out</title>
109<polygon fill="none" stroke="black" points="347.5,-308 179.5,-308 179.5,-272 347.5,-272 347.5,-308"/>
110<text text-anchor="middle" x="263.5" y="-286.3" font-family="Times,serif" font-size="14.00">internal/confui_fifo_vm.out</text>
111</g>
112<!-- host_confirmationui_out&#45;&gt;webrtc -->
113<g id="edge24" class="edge">
114<title>host_confirmationui_out&#45;&gt;webrtc</title>
115<path fill="none" stroke="black" d="M329.68,-308.1C394.51,-324.85 491.52,-349.91 547.76,-364.44"/>
116<polygon fill="black" stroke="black" points="547.21,-367.91 557.77,-367.03 548.97,-361.14 547.21,-367.91"/>
117</g>
118<!-- keyboard_server -->
119<g id="node9" class="node">
120<title>keyboard_server</title>
121<polygon fill="none" stroke="black" points="505.5,-308 365.5,-308 365.5,-272 505.5,-272 505.5,-308"/>
122<text text-anchor="middle" x="435.5" y="-286.3" font-family="Times,serif" font-size="14.00">internal/keyboard.sock</text>
123</g>
124<!-- keyboard_server&#45;&gt;webrtc -->
125<g id="edge20" class="edge">
126<title>keyboard_server&#45;&gt;webrtc</title>
127<path fill="none" stroke="black" d="M476.3,-313.09C505.18,-328.72 542.97,-349.18 567.49,-362.46"/>
128<polygon fill="black" stroke="black" points="477.73,-309.88 467.27,-308.2 474.4,-316.04 477.73,-309.88"/>
129</g>
130<!-- touch_server -->
131<g id="node10" class="node">
132<title>touch_server</title>
133<polygon fill="none" stroke="black" points="661,-308 524,-308 524,-272 661,-272 661,-308"/>
134<text text-anchor="middle" x="592.5" y="-286.3" font-family="Times,serif" font-size="14.00">internal/touch_N.sock</text>
135</g>
136<!-- touch_server&#45;&gt;webrtc -->
137<g id="edge22" class="edge">
138<title>touch_server&#45;&gt;webrtc</title>
139<path fill="none" stroke="black" d="M592.5,-318.27C592.5,-331.58 592.5,-347.19 592.5,-358.82"/>
140<polygon fill="black" stroke="black" points="596,-318.2 592.5,-308.2 589,-318.2 596,-318.2"/>
141</g>
142<!-- run_cvd -->
143<g id="node11" class="node">
144<title>run_cvd</title>
145<ellipse fill="none" stroke="black" cx="839.5" cy="-485" rx="39.79" ry="18"/>
146<text text-anchor="middle" x="839.5" y="-481.3" font-family="Times,serif" font-size="14.00">run_cvd</text>
147</g>
148<!-- operator_proxy -->
149<g id="node12" class="node">
150<title>operator_proxy</title>
151<ellipse fill="none" stroke="black" cx="866.5" cy="-659" rx="64.99" ry="18"/>
152<text text-anchor="middle" x="866.5" y="-655.3" font-family="Times,serif" font-size="14.00">operator_proxy</text>
153</g>
154<!-- operator_proxy&#45;&gt;browser -->
155<g id="edge3" class="edge">
156<title>operator_proxy&#45;&gt;browser</title>
157<path fill="none" stroke="black" d="M866.18,-687.27C866.07,-696.94 865.94,-707.83 865.82,-717.52"/>
158<polygon fill="black" stroke="black" points="869.68,-687.24 866.3,-677.2 862.68,-687.16 869.68,-687.24"/>
159<polygon fill="black" stroke="black" points="862.32,-717.78 865.7,-727.82 869.32,-717.87 862.32,-717.78"/>
160<text text-anchor="start" x="865.5" y="-699.8" font-family="Times,serif" font-size="14.00"> </text>
161<text text-anchor="start" x="869.5" y="-699.8" font-family="Times,serif" font-style="italic" font-size="14.00">HTTPS</text>
162<text text-anchor="start" x="909.5" y="-699.8" font-family="Times,serif" font-size="14.00"> (8443) </text>
163</g>
164<!-- socket_vsock_proxy -->
165<g id="node14" class="node">
166<title>socket_vsock_proxy</title>
167<ellipse fill="none" stroke="black" cx="991.5" cy="-130" rx="83.39" ry="18"/>
168<text text-anchor="middle" x="991.5" y="-126.3" font-family="Times,serif" font-size="14.00">socket_vsock_proxy</text>
169</g>
170<!-- socket_vsock_proxy&#45;&gt;webrtc -->
171<g id="edge14" class="edge">
172<title>socket_vsock_proxy&#45;&gt;webrtc</title>
173<path fill="none" stroke="black" d="M1001.76,-157.9C1014.37,-196.06 1030.04,-265.94 994.5,-308 950.21,-360.41 742.41,-372.44 644.19,-375.19"/>
174<polygon fill="black" stroke="black" points="1004.91,-156.33 998.32,-148.03 998.3,-158.62 1004.91,-156.33"/>
175<polygon fill="black" stroke="black" points="644.09,-371.69 634.18,-375.45 644.27,-378.69 644.09,-371.69"/>
176</g>
177<!-- wayland_socket -->
178<g id="node15" class="node">
179<title>wayland_socket</title>
180<polygon fill="none" stroke="black" points="807.5,-308 679.5,-308 679.5,-272 807.5,-272 807.5,-308"/>
181<text text-anchor="middle" x="743.5" y="-286.3" font-family="Times,serif" font-size="14.00">internal/frames.sock</text>
182</g>
183<!-- wayland_socket&#45;&gt;webrtc -->
184<g id="edge18" class="edge">
185<title>wayland_socket&#45;&gt;webrtc</title>
186<path fill="none" stroke="black" d="M703.95,-313.26C679.64,-326.95 648.83,-344.29 625.77,-357.27"/>
187<polygon fill="black" stroke="black" points="705.95,-316.16 712.94,-308.2 702.51,-310.06 705.95,-316.16"/>
188<polygon fill="black" stroke="black" points="624.03,-354.23 617.03,-362.19 627.46,-360.33 624.03,-354.23"/>
189<text text-anchor="start" x="676.5" y="-330.8" font-family="Times,serif" font-size="14.00"> </text>
190<text text-anchor="start" x="680.5" y="-330.8" font-family="Times,serif" font-style="italic" font-size="14.00">Wayland</text>
191<text text-anchor="start" x="728.5" y="-330.8" font-family="Times,serif" font-size="14.00"> </text>
192</g>
193<!-- webrtc&#45;&gt;browser -->
194<g id="edge2" class="edge">
195<title>webrtc&#45;&gt;browser</title>
196<path fill="none" stroke="black" d="M540.91,-379.2C444.66,-382.42 242.54,-394.12 188.5,-436 170.23,-450.16 168.5,-460.89 168.5,-484 168.5,-484 168.5,-484 168.5,-660 168.5,-725.2 655.23,-740.79 815.21,-744.15"/>
197<polygon fill="black" stroke="black" points="541.12,-382.7 551,-378.88 540.9,-375.7 541.12,-382.7"/>
198<polygon fill="black" stroke="black" points="815.2,-747.65 825.27,-744.35 815.34,-740.65 815.2,-747.65"/>
199<text text-anchor="start" x="168.5" y="-569.3" font-family="Times,serif" font-size="14.00"> </text>
200<text text-anchor="start" x="172.5" y="-569.3" font-family="Times,serif" font-style="italic" font-size="14.00">WebRTC</text>
201<text text-anchor="start" x="221.5" y="-569.3" font-family="Times,serif" font-size="14.00"> </text>
202</g>
203<!-- webrtc&#45;&gt;confirmationui_sign -->
204<g id="edge9" class="edge">
205<title>webrtc&#45;&gt;confirmationui_sign</title>
206<path fill="none" stroke="black" d="M544.11,-386.23C496.36,-395.24 421.82,-411.72 360.5,-436 342.96,-442.95 324.56,-452.82 309.3,-461.81"/>
207<polygon fill="black" stroke="black" points="544.98,-389.63 554.17,-384.37 543.7,-382.75 544.98,-389.63"/>
208<polygon fill="black" stroke="black" points="307.48,-458.82 300.71,-466.97 311.09,-464.82 307.48,-458.82"/>
209</g>
210<!-- webrtc&#45;&gt;gnss_grpc_server -->
211<g id="edge11" class="edge">
212<title>webrtc&#45;&gt;gnss_grpc_server</title>
213<path fill="none" stroke="black" d="M561.23,-397.92C543.87,-409.03 521.92,-423.18 502.5,-436 490.11,-444.18 476.59,-453.27 464.71,-461.33"/>
214<polygon fill="black" stroke="black" points="563.31,-400.74 569.85,-392.4 559.54,-394.84 563.31,-400.74"/>
215<polygon fill="black" stroke="black" points="462.69,-458.47 456.38,-466.98 466.62,-464.26 462.69,-458.47"/>
216<text text-anchor="middle" x="549" y="-416.8" font-family="Times,serif" font-size="14.00">TCP</text>
217</g>
218<!-- webrtc&#45;&gt;host_bluetooth -->
219<g id="edge8" class="edge">
220<title>webrtc&#45;&gt;host_bluetooth</title>
221<path fill="none" stroke="black" d="M601.18,-395.03C609.84,-412.03 623.26,-438.38 633.25,-457.99"/>
222<polygon fill="black" stroke="black" points="630.19,-459.69 637.85,-467.01 636.42,-456.51 630.19,-459.69"/>
223</g>
224<!-- webrtc&#45;&gt;run_cvd -->
225<g id="edge7" class="edge">
226<title>webrtc&#45;&gt;run_cvd</title>
227<path fill="none" stroke="black" d="M641.51,-385.46C683.29,-393.38 743.82,-408.65 790.5,-436 804.47,-444.19 817.43,-457.22 826.5,-467.64"/>
228<polygon fill="black" stroke="black" points="642.05,-382 631.58,-383.65 640.79,-388.89 642.05,-382"/>
229</g>
230<!-- operator_socket -->
231<g id="node19" class="node">
232<title>operator_socket</title>
233<polygon fill="none" stroke="black" points="1038,-503 897,-503 897,-467 1038,-467 1038,-503"/>
234<text text-anchor="middle" x="967.5" y="-481.3" font-family="Times,serif" font-size="14.00">/run/cuttlefish/operator</text>
235</g>
236<!-- webrtc&#45;&gt;operator_socket -->
237<g id="edge6" class="edge">
238<title>webrtc&#45;&gt;operator_socket</title>
239<path fill="none" stroke="black" d="M643.01,-382.43C703.17,-388.93 805.89,-403.95 888.5,-436 904.95,-442.38 921.83,-452.13 935.75,-461.18"/>
240<polygon fill="black" stroke="black" points="643.32,-378.94 633.01,-381.38 642.59,-385.9 643.32,-378.94"/>
241<polygon fill="black" stroke="black" points="934.18,-464.34 944.44,-466.99 938.07,-458.52 934.18,-464.34"/>
242<text text-anchor="start" x="865.5" y="-417.8" font-family="Times,serif" font-size="14.00"> </text>
243<text text-anchor="start" x="869.5" y="-417.8" font-family="Times,serif" font-style="italic" font-size="14.00">JSON</text>
244<text text-anchor="start" x="901.5" y="-417.8" font-family="Times,serif" font-size="14.00"> </text>
245</g>
246<!-- vmm -->
247<g id="node17" class="node">
248<title>vmm</title>
249<ellipse fill="none" stroke="black" cx="592.5" cy="-203" rx="37.09" ry="18"/>
250<text text-anchor="middle" x="592.5" y="-199.3" font-family="Times,serif" font-size="14.00">crosvm</text>
251</g>
252<!-- vmm&#45;&gt;audio_server -->
253<g id="edge16" class="edge">
254<title>vmm&#45;&gt;audio_server</title>
255<path fill="none" stroke="black" d="M635.32,-213.82C664.03,-220.56 702.65,-229.88 736.5,-239 771.02,-248.3 809.24,-259.52 840.59,-268.98"/>
256<polygon fill="black" stroke="black" points="635.75,-210.33 625.22,-211.47 634.16,-217.15 635.75,-210.33"/>
257<polygon fill="black" stroke="black" points="839.93,-272.44 850.51,-271.99 841.96,-265.74 839.93,-272.44"/>
258</g>
259<!-- vmm&#45;&gt;host_confirmationui_in -->
260<g id="edge25" class="edge">
261<title>vmm&#45;&gt;host_confirmationui_in</title>
262<path fill="none" stroke="black" d="M547.38,-210.86C470.11,-222.71 307.51,-248.03 170.5,-272 167.52,-272.52 164.49,-273.06 161.43,-273.61"/>
263<polygon fill="black" stroke="black" points="548.35,-214.25 557.71,-209.28 547.3,-207.33 548.35,-214.25"/>
264</g>
265<!-- vmm&#45;&gt;host_confirmationui_out -->
266<g id="edge23" class="edge">
267<title>vmm&#45;&gt;host_confirmationui_out</title>
268<path fill="none" stroke="black" d="M560.66,-212.23C510.01,-225.31 409.69,-251.23 339.69,-269.31"/>
269<polygon fill="black" stroke="black" points="338.4,-266.03 329.6,-271.92 340.15,-272.81 338.4,-266.03"/>
270</g>
271<!-- vmm&#45;&gt;keyboard_server -->
272<g id="edge19" class="edge">
273<title>vmm&#45;&gt;keyboard_server</title>
274<path fill="none" stroke="black" d="M559.54,-221.84C532.35,-236.57 494.02,-257.32 467.18,-271.85"/>
275<polygon fill="black" stroke="black" points="561.53,-224.75 568.66,-216.91 558.19,-218.59 561.53,-224.75"/>
276</g>
277<!-- vmm&#45;&gt;touch_server -->
278<g id="edge21" class="edge">
279<title>vmm&#45;&gt;touch_server</title>
280<path fill="none" stroke="black" d="M592.5,-231.27C592.5,-244.58 592.5,-260.19 592.5,-271.82"/>
281<polygon fill="black" stroke="black" points="596,-231.2 592.5,-221.2 589,-231.2 596,-231.2"/>
282</g>
283<!-- vmm&#45;&gt;wayland_socket -->
284<g id="edge17" class="edge">
285<title>vmm&#45;&gt;wayland_socket</title>
286<path fill="none" stroke="black" d="M624.55,-222.04C647.86,-235.16 679.55,-253 704.37,-266.97"/>
287<polygon fill="black" stroke="black" points="626.19,-218.95 615.76,-217.09 622.76,-225.05 626.19,-218.95"/>
288<polygon fill="black" stroke="black" points="702.74,-270.07 713.17,-271.93 706.17,-263.97 702.74,-270.07"/>
289<text text-anchor="start" x="676.5" y="-243.8" font-family="Times,serif" font-size="14.00"> </text>
290<text text-anchor="start" x="680.5" y="-243.8" font-family="Times,serif" font-style="italic" font-size="14.00">Wayland</text>
291<text text-anchor="start" x="728.5" y="-243.8" font-family="Times,serif" font-size="14.00"> </text>
292</g>
293<!-- operator -->
294<g id="node18" class="node">
295<title>operator</title>
296<ellipse fill="none" stroke="black" cx="968.5" cy="-572" rx="73.39" ry="18"/>
297<text text-anchor="middle" x="968.5" y="-568.3" font-family="Times,serif" font-size="14.00">Host Orchestrator</text>
298</g>
299<!-- operator&#45;&gt;browser -->
300<g id="edge1" class="edge">
301<title>operator&#45;&gt;browser</title>
302<path fill="none" stroke="black" d="M973.44,-600.35C977.26,-630.36 978.44,-678.45 954.5,-710 944.54,-723.13 928.92,-731.34 913.54,-736.47"/>
303<polygon fill="black" stroke="black" points="976.87,-599.57 971.96,-590.18 969.94,-600.58 976.87,-599.57"/>
304<polygon fill="black" stroke="black" points="912.12,-733.24 903.52,-739.42 914.1,-739.95 912.12,-733.24"/>
305<text text-anchor="start" x="974.5" y="-656.3" font-family="Times,serif" font-size="14.00"> </text>
306<text text-anchor="start" x="978.5" y="-656.3" font-family="Times,serif" font-style="italic" font-size="14.00">HTTPS</text>
307<text text-anchor="start" x="1018.5" y="-656.3" font-family="Times,serif" font-size="14.00"> (1443) </text>
308</g>
309<!-- operator&#45;&gt;operator_proxy -->
310<g id="edge4" class="edge">
311<title>operator&#45;&gt;operator_proxy</title>
312<path fill="none" stroke="black" d="M900.95,-586.79C890.03,-591.81 879.9,-598.66 872.5,-608 867.52,-614.29 865.33,-622.49 864.59,-630.43"/>
313<polygon fill="black" stroke="black" points="902.33,-590.01 910.26,-582.99 899.68,-583.53 902.33,-590.01"/>
314<polygon fill="black" stroke="black" points="861.08,-630.45 864.31,-640.54 868.08,-630.63 861.08,-630.45"/>
315<text text-anchor="start" x="872.5" y="-612.8" font-family="Times,serif" font-size="14.00"> </text>
316<text text-anchor="start" x="876.5" y="-612.8" font-family="Times,serif" font-style="italic" font-size="14.00">HTTP</text>
317<text text-anchor="start" x="910.5" y="-612.8" font-family="Times,serif" font-size="14.00"> (1080) </text>
318</g>
319<!-- operator_socket&#45;&gt;operator -->
320<g id="edge5" class="edge">
321<title>operator_socket&#45;&gt;operator</title>
322<path fill="none" stroke="black" d="M967.82,-513.27C967.93,-522.94 968.06,-533.83 968.18,-543.52"/>
323<polygon fill="black" stroke="black" points="971.32,-513.16 967.7,-503.2 964.32,-513.24 971.32,-513.16"/>
324<polygon fill="black" stroke="black" points="964.68,-543.87 968.3,-553.82 971.68,-543.78 964.68,-543.87"/>
325<text text-anchor="start" x="967.5" y="-525.8" font-family="Times,serif" font-size="14.00"> </text>
326<text text-anchor="start" x="971.5" y="-525.8" font-family="Times,serif" font-style="italic" font-size="14.00">JSON</text>
327<text text-anchor="start" x="1003.5" y="-525.8" font-family="Times,serif" font-size="14.00"> </text>
328</g>
329<!-- confirmationui_console -->
330<g id="node20" class="node">
331<title>confirmationui_console</title>
332<polygon fill="none" stroke="black" points="848.5,-148 778.5,-148 778.5,-112 848.5,-112 848.5,-148"/>
333<text text-anchor="middle" x="813.5" y="-126.3" font-family="Times,serif" font-size="14.00">/dev/hvc8</text>
334</g>
335<!-- confirmationui_console&#45;&gt;vmm -->
336<g id="edge28" class="edge">
337<title>confirmationui_console&#45;&gt;vmm</title>
338<path fill="none" stroke="black" d="M777.08,-152.64C774.55,-153.85 772.01,-154.98 769.5,-156 725.67,-173.79 672.9,-186.45 636.45,-193.93"/>
339<polygon fill="black" stroke="black" points="778.81,-155.68 786.12,-148.01 775.62,-149.45 778.81,-155.68"/>
340<polygon fill="black" stroke="black" points="635.74,-190.5 626.62,-195.9 637.11,-197.37 635.74,-190.5"/>
341</g>
342<!-- keyboard_input -->
343<g id="node21" class="node">
344<title>keyboard_input</title>
345<polygon fill="none" stroke="black" points="590.5,-148 418.5,-148 418.5,-112 590.5,-112 590.5,-148"/>
346<text text-anchor="middle" x="504.5" y="-126.3" font-family="Times,serif" font-size="14.00">/dev/input/event3 | keyboard</text>
347</g>
348<!-- keyboard_input&#45;&gt;vmm -->
349<g id="edge29" class="edge">
350<title>keyboard_input&#45;&gt;vmm</title>
351<path fill="none" stroke="black" d="M525.8,-148.19C537.9,-157.95 553.16,-170.26 566.02,-180.64"/>
352<polygon fill="black" stroke="black" points="564.1,-183.58 574.08,-187.13 568.49,-178.13 564.1,-183.58"/>
353</g>
354<!-- touch_input -->
355<g id="node22" class="node">
356<title>touch_input</title>
357<polygon fill="none" stroke="black" points="760.5,-148 608.5,-148 608.5,-112 760.5,-112 760.5,-148"/>
358<text text-anchor="middle" x="684.5" y="-126.3" font-family="Times,serif" font-size="14.00">/dev/input/event2 | touch</text>
359</g>
360<!-- touch_input&#45;&gt;vmm -->
361<g id="edge30" class="edge">
362<title>touch_input&#45;&gt;vmm</title>
363<path fill="none" stroke="black" d="M662.23,-148.19C649.37,-158.11 633.1,-170.66 619.52,-181.15"/>
364<polygon fill="black" stroke="black" points="617.24,-178.49 611.46,-187.37 621.51,-184.03 617.24,-178.49"/>
365</g>
366<!-- adb_daemon -->
367<g id="node23" class="node">
368<title>adb_daemon</title>
369<ellipse fill="none" stroke="black" cx="786.5" cy="-57" rx="61.99" ry="18"/>
370<text text-anchor="middle" x="786.5" y="-53.3" font-family="Times,serif" font-size="14.00">ADB Daemon</text>
371</g>
372<!-- adb_daemon&#45;&gt;socket_vsock_proxy -->
373<g id="edge13" class="edge">
374<title>adb_daemon&#45;&gt;socket_vsock_proxy</title>
375<path fill="none" stroke="black" d="M834.07,-74.48C865.68,-85.42 907.17,-99.79 939.63,-111.03"/>
376<polygon fill="black" stroke="black" points="835.17,-71.15 824.58,-71.19 832.88,-77.77 835.17,-71.15"/>
377<polygon fill="black" stroke="black" points="938.79,-114.45 949.39,-114.41 941.08,-107.83 938.79,-114.45"/>
378</g>
379<!-- confirmationui -->
380<g id="node24" class="node">
381<title>confirmationui</title>
382<ellipse fill="none" stroke="black" cx="618.5" cy="-57" rx="88.28" ry="18"/>
383<text text-anchor="middle" x="618.5" y="-53.3" font-family="Times,serif" font-size="14.00">ConfirmationUI HAL</text>
384</g>
385<!-- confirmationui&#45;&gt;confirmationui_console -->
386<g id="edge27" class="edge">
387<title>confirmationui&#45;&gt;confirmationui_console</title>
388<path fill="none" stroke="black" d="M670.49,-76.23C697.38,-85.74 730.94,-97.74 768.76,-111.76"/>
389<polygon fill="black" stroke="black" points="671.51,-72.87 660.91,-72.84 669.17,-79.48 671.51,-72.87"/>
390<polygon fill="black" stroke="black" points="767.87,-115.17 778.47,-115.37 770.31,-108.61 767.87,-115.17"/>
391</g>
392</g>
393</svg>
394