blob: 091c5b066a5174ff6b4281adf10f3af0e4d35a4f [file] [log] [blame]
Willy Tarreau61d095e2021-02-24 09:07:52 +01001<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Creator: fig2dev Version 3.2.7b -->
3<!-- CreationDate: 2021-02-24 09:03:04 -->
4<!-- Magnification: 1 -->
5<svg xmlns="http://www.w3.org/2000/svg"
6 xmlns:xlink="http://www.w3.org/1999/xlink"
7 width="954pt" height="764pt"
8 viewBox="254 -90 15885 12723">
9<g fill="none">
10<!-- Line -->
11<rect x="12000" y="10800" width="1800" height="600" rx="105" fill="#458dba"
12 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
13<!-- Line -->
14<polygon points=" 900,3300 900,9900 8100,9900 8100,3300" fill="#bbf2e2"
15 stroke="#a7ceb3" stroke-width="45px"/>
16<!-- Line -->
17<polygon points=" 8700,3300 8700,9900 15900,9900 15900,3300" fill="#bbf2e2"
18 stroke="#a7ceb3" stroke-width="45px"/>
19<!-- Line -->
20<rect x="3600" y="10800" width="1800" height="600" rx="105" fill="#458dba"
21 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
22<!-- Line -->
23<rect x="1575" y="12300" width="525" height="300" rx="105" fill="#458dba"
24 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
25<!-- Line -->
26<rect x="6375" y="12300" width="525" height="300" rx="105" fill="#bbf2e2"
27 stroke="#a7ceb3" stroke-width="30px" stroke-linejoin="round"/>
28<!-- Line -->
29<polygon points=" 4761,9751 4761,8751 4261,8751 4261,9751" fill="#dae8fc"/>
30<!-- Line -->
31<polygon points=" 1986,4576 1986,3576 1486,3576 1486,4576" fill="#dae8fc"/>
32<!-- Line -->
33<polygon points=" 3786,4576 3786,3576 3286,3576 3286,4576" fill="#dae8fc"/>
34<!-- Line -->
35<polygon points=" 5586,4576 5586,3576 5086,3576 5086,4576" fill="#dae8fc"/>
36<!-- Line -->
37<polygon points=" 7461,4576 7461,3576 6961,3576 6961,4576" fill="#dae8fc"/>
38<!-- Text -->
39<text xml:space="preserve" x="12900" y="11175" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">Transport</text>
40<!-- Line -->
41<polygon points=" 6692,1761 9959,1761 9959,1261 6692,1261" fill="#dae8fc"/>
42<!-- Line -->
43<polygon points=" 12425,8661 12825,8661 12825,8161 12425,8161" fill="#dae8fc"/>
44<!-- Line -->
45<polygon points=" 11750,8661 12150,8661 12150,8161 11750,8161" fill="#dae8fc"/>
46<!-- Line -->
47<polygon points=" 11075,8661 11475,8661 11475,8161 11075,8161" fill="#dae8fc"/>
48<!-- Line -->
49<polygon points=" 10400,8661 10800,8661 10800,8161 10400,8161" fill="#dae8fc"/>
50<!-- Line -->
51<polygon points=" 13100,8661 13500,8661 13500,8161 13100,8161" fill="#dae8fc"/>
52<!-- Line -->
53<polygon points=" 13775,8661 14175,8661 14175,8161 13775,8161" fill="#dae8fc"/>
54<!-- Ellipse -->
55<ellipse cx="11400" cy="11925" rx="225" ry="150" fill="#ffc1e7"
56 stroke="#d10000" stroke-width="45px"/>
57<!-- Text -->
58<text xml:space="preserve" x="11850" y="12000" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">I/O tasklet</text>
59<!-- Line -->
60<polygon points=" 11157,12581 11614,12581 11614,12331 11157,12331" fill="#dae8fc"/>
61<!-- Circle -->
62<circle cx="10725" cy="5700" r="75" fill="#000000"
63 stroke="#000000" stroke-width="30px"/>
64<!-- Circle -->
65<circle cx="12750" cy="5700" r="75" fill="#000000"
66 stroke="#000000" stroke-width="30px"/>
67<!-- Circle -->
68<circle cx="13875" cy="5700" r="75" fill="#000000"
69 stroke="#000000" stroke-width="30px"/>
70<!-- Circle -->
71<circle cx="11700" cy="5700" r="75" fill="#000000"
72 stroke="#000000" stroke-width="30px"/>
73<!-- Circle -->
74<circle cx="2925" cy="6750" r="75" fill="#000000"
75 stroke="#000000" stroke-width="30px"/>
76<!-- Circle -->
77<circle cx="4950" cy="6750" r="75" fill="#000000"
78 stroke="#000000" stroke-width="30px"/>
79<!-- Circle -->
80<circle cx="6075" cy="6750" r="75" fill="#000000"
81 stroke="#000000" stroke-width="30px"/>
82<!-- Circle -->
83<circle cx="3900" cy="6750" r="75" fill="#000000"
84 stroke="#000000" stroke-width="30px"/>
85<!-- Ellipse -->
86<ellipse cx="9525" cy="4140" rx="583" ry="250" fill="#ffe6cc"
87 stroke="#e9b000" stroke-width="45px"/>
88<!-- Ellipse -->
89<ellipse cx="11341" cy="4140" rx="583" ry="250" fill="#ffe6cc"
90 stroke="#e9b000" stroke-width="45px"/>
91<!-- Ellipse -->
92<ellipse cx="13154" cy="4140" rx="583" ry="250" fill="#ffe6cc"
93 stroke="#e9b000" stroke-width="45px"/>
94<!-- Ellipse -->
95<ellipse cx="15033" cy="4140" rx="583" ry="250" fill="#ffe6cc"
96 stroke="#e9b000" stroke-width="45px"/>
97<!-- Ellipse -->
98<ellipse cx="7182" cy="5173" rx="583" ry="250" fill="#ffe6cc"
99 stroke="#e9b000" stroke-width="45px"/>
100<!-- Ellipse -->
101<ellipse cx="3507" cy="5173" rx="583" ry="250" fill="#ffe6cc"
102 stroke="#e9b000" stroke-width="45px"/>
103<!-- Ellipse -->
104<ellipse cx="1719" cy="5173" rx="583" ry="250" fill="#ffe6cc"
105 stroke="#e9b000" stroke-width="45px"/>
106<!-- Ellipse -->
107<ellipse cx="5325" cy="5175" rx="583" ry="250" fill="#ffe6cc"
108 stroke="#e9b000" stroke-width="45px"/>
109<!-- Ellipse -->
110<ellipse cx="8400" cy="600" rx="900" ry="210" fill="#ffc1e7"
111 stroke="#d10000" stroke-width="45px"/>
112<!-- Ellipse -->
113<ellipse cx="12333" cy="7025" rx="417" ry="250" fill="#87cfff"
114 stroke="#0000d1" stroke-width="45px"/>
115<!-- Ellipse -->
116<ellipse cx="12392" cy="9240" rx="808" ry="210" fill="#ffc1e7"
117 stroke="#d10000" stroke-width="45px"/>
118<!-- Ellipse -->
119<ellipse cx="3167" cy="9240" rx="808" ry="210" fill="#ffc1e7"
120 stroke="#d10000" stroke-width="45px"/>
121<!-- Ellipse -->
122<ellipse cx="1800" cy="11925" rx="225" ry="150" fill="#ffe6cc"
123 stroke="#e9b000" stroke-width="45px"/>
124<!-- Line -->
125<polyline points=" 2550,3300 2550,6150"
126 stroke="#000000" stroke-width="8px" stroke-linejoin="round" stroke-dasharray="40 40"/>
127<!-- Line -->
128<polyline points=" 4500,3300 4500,6150"
129 stroke="#000000" stroke-width="8px" stroke-linejoin="round" stroke-dasharray="40 40"/>
130<!-- Line -->
131<polyline points=" 6300,3300 6300,6150"
132 stroke="#000000" stroke-width="8px" stroke-linejoin="round" stroke-dasharray="40 40"/>
133<!-- Line -->
134<defs>
135<clipPath id="cp0">
136 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
137 M 645,11504 555,11504 582,11718 618,11718z"/>
138</clipPath>
139</defs>
140<polyline points=" 600,8025 600,11700" clip-path="url(#cp0)"
141 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
142<!-- Forward arrow to point 600,11700 -->
143<polygon points=" 555,11504 600,11684 645,11504 555,11504"
144 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
145<!-- Line -->
146<defs>
147<clipPath id="cp1">
148 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
149 M 555,1996 645,1996 618,1782 582,1782z"/>
150</clipPath>
151</defs>
152<polyline points=" 600,3150 600,1800" clip-path="url(#cp1)"
153 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
154<!-- Forward arrow to point 600,1800 -->
155<polygon points=" 645,1996 600,1816 555,1996 645,1996"
156 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
157<!-- Line -->
158<defs>
159<clipPath id="cp2">
160 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
161 M 555,346 645,346 618,132 582,132z"/>
162</clipPath>
163</defs>
164<polyline points=" 600,1500 600,150" clip-path="url(#cp2)"
165 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
166<!-- Forward arrow to point 600,150 -->
167<polygon points=" 645,346 600,166 555,346 645,346"
168 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
169<!-- Line -->
170<defs>
171<clipPath id="cp3">
172 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
173 M 7304,555 7304,645 7518,618 7518,582z
174 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
175</clipPath>
176</defs>
177<polyline points=" 3000,3300 3000,1425 3675,600 7500,600" clip-path="url(#cp3)"
178 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
179<!-- Forward arrow to point 7500,600 -->
180<polygon points=" 7304,645 7484,600 7304,555 7304,645"
181 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
182<!-- Backward arrow to point 3000,3300 -->
183<polygon points=" 2955,3104 3000,3284 3045,3104 2955,3104"
184 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
185<!-- Line -->
186<defs>
187<clipPath id="cp4">
188 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
189 M 6554,1455 6554,1545 6768,1518 6768,1482z
190 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
191</clipPath>
192</defs>
193<polyline points=" 3525,3525 3525,2625 4500,1500 6750,1500" clip-path="url(#cp4)"
194 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
195<!-- Forward arrow to point 6750,1500 -->
196<polygon points=" 6554,1545 6734,1500 6554,1455 6554,1545"
197 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
198<!-- Line -->
199<defs>
200<clipPath id="cp5">
201 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
202 M 11661,5428 11578,5465 11691,5649 11724,5634z
203 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
204</clipPath>
205</defs>
206<polyline points=" 11295,4425 11295,4725 11700,5625" clip-path="url(#cp5)"
207 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
208<!-- Forward arrow to point 11700,5625 -->
209<polygon points=" 11578,5465 11693,5610 11661,5428 11578,5465"
210 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
211<!-- Line -->
212<defs>
213<clipPath id="cp6">
214 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
215 M 10571,5541 10514,5611 10698,5725 10720,5697z
216 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
217</clipPath>
218</defs>
219<polyline points=" 9495,4425 9495,4725 10695,5700" clip-path="url(#cp6)"
220 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
221<!-- Forward arrow to point 10695,5700 -->
222<polygon points=" 10514,5611 10682,5690 10571,5541 10514,5611"
223 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
224<!-- Line -->
225<defs>
226<clipPath id="cp7">
227 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
228 M 12905,5461 12822,5427 12764,5635 12798,5649z
229 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
230</clipPath>
231</defs>
232<polyline points=" 13163,4425 13163,4725 12788,5625" clip-path="url(#cp7)"
233 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
234<!-- Forward arrow to point 12788,5625 -->
235<polygon points=" 12822,5427 12794,5610 12905,5461 12822,5427"
236 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
237<!-- Line -->
238<defs>
239<clipPath id="cp8">
240 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
241 M 14066,5607 14007,5539 13863,5700 13886,5727z
242 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
243</clipPath>
244</defs>
245<polyline points=" 15013,4427 15013,4725 13888,5702" clip-path="url(#cp8)"
246 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
247<!-- Forward arrow to point 13888,5702 -->
248<polygon points=" 14007,5539 13900,5691 14066,5607 14007,5539"
249 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
250<!-- Line -->
251<defs>
252<clipPath id="cp9">
253 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
254 M 9555,3689 9495,3689 9507,3843 9543,3843z
255 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
256</clipPath>
257</defs>
258<polyline points=" 9525,3525 9525,3825" clip-path="url(#cp9)"
259 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
260<!-- Forward arrow to point 9525,3825 -->
261<polygon points=" 9495,3689 9525,3809 9555,3689 9495,3689"
262 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
263<!-- Line -->
264<defs>
265<clipPath id="cp10">
266 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
267 M 13155,3689 13095,3689 13107,3843 13143,3843z
268 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
269</clipPath>
270</defs>
271<polyline points=" 13125,3525 13125,3825" clip-path="url(#cp10)"
272 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
273<!-- Forward arrow to point 13125,3825 -->
274<polygon points=" 13095,3689 13125,3809 13155,3689 13095,3689"
275 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
276<!-- Line -->
277<defs>
278<clipPath id="cp11">
279 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
280 M 15030,3689 14970,3689 14982,3843 15018,3843z
281 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
282</clipPath>
283</defs>
284<polyline points=" 15000,3525 15000,3825" clip-path="url(#cp11)"
285 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
286<!-- Forward arrow to point 15000,3825 -->
287<polygon points=" 14970,3689 15000,3809 15030,3689 14970,3689"
288 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
289<!-- Line -->
290<defs>
291<clipPath id="cp12">
292 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
293 M 10229,8355 10229,8445 10443,8418 10443,8382z
294 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
295</clipPath>
296</defs>
297<polyline points=" 12300,7275 12300,7725 9975,7725 9975,8400 10425,8400" clip-path="url(#cp12)"
298 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
299<!-- Forward arrow to point 10425,8400 -->
300<polygon points=" 10229,8445 10409,8400 10229,8355 10229,8445"
301 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
302<!-- Line -->
303<defs>
304<clipPath id="cp13">
305 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
306 M 12345,6629 12255,6629 12282,6843 12318,6843z
307 M 3045,3104 2955,3104 2982,3318 3018,3318z"/>
308</clipPath>
309</defs>
310<polyline points=" 11775,5850 12300,6450 12300,6825" clip-path="url(#cp13)"
311 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
312<!-- Forward arrow to point 12300,6825 -->
313<polygon points=" 12255,6629 12300,6809 12345,6629 12255,6629"
314 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
315<!-- Line -->
316<polyline points=" 11475,6150 13200,6150 13200,6825"
317 stroke="#000000" stroke-width="30px" stroke-linejoin="round" stroke-dasharray="80 80"/>
318<!-- Line -->
319<defs>
320<clipPath id="cp14">
321 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
322 M 12345,6629 12255,6629 12282,6843 12318,6843z
323 M 4051,7087 4124,7035 3979,6875 3950,6896z"/>
324</clipPath>
325</defs>
326<polyline points=" 3975,6900 4500,7650 4500,7875" clip-path="url(#cp14)"
327 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
328<!-- Backward arrow to point 3975,6900 -->
329<polygon points=" 4124,7035 3984,6913 4051,7087 4124,7035"
330 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
331<!-- Line -->
332<defs>
333<clipPath id="cp15">
334 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
335 M 12345,6629 12255,6629 12282,6843 12318,6843z
336 M 3450,5671 3540,5671 3513,5457 3477,5457z"/>
337</clipPath>
338</defs>
339<polyline points=" 3495,5475 3495,5775 3900,6675" clip-path="url(#cp15)"
340 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
341<!-- Backward arrow to point 3495,5475 -->
342<polygon points=" 3540,5671 3495,5491 3450,5671 3540,5671"
343 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
344<!-- Line -->
345<defs>
346<clipPath id="cp16">
347 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
348 M 12345,6629 12255,6629 12282,6843 12318,6843z
349 M 1650,5671 1740,5671 1713,5457 1677,5457z"/>
350</clipPath>
351</defs>
352<polyline points=" 1695,5475 1695,5775 2895,6750" clip-path="url(#cp16)"
353 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
354<!-- Backward arrow to point 1695,5475 -->
355<polygon points=" 1740,5671 1695,5491 1650,5671 1740,5671"
356 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
357<!-- Line -->
358<defs>
359<clipPath id="cp17">
360 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
361 M 12345,6629 12255,6629 12282,6843 12318,6843z
362 M 7168,5673 7258,5673 7231,5459 7195,5459z"/>
363</clipPath>
364</defs>
365<polyline points=" 7213,5477 7213,5775 6088,6752" clip-path="url(#cp17)"
366 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
367<!-- Backward arrow to point 7213,5477 -->
368<polygon points=" 7258,5673 7213,5493 7168,5673 7258,5673"
369 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
370<!-- Line -->
371<defs>
372<clipPath id="cp18">
373 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
374 M 1695,4711 1755,4711 1743,4557 1707,4557z
375 M 7168,5673 7258,5673 7231,5459 7195,5459z"/>
376</clipPath>
377</defs>
378<polyline points=" 1725,4875 1725,4575" clip-path="url(#cp18)"
379 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
380<!-- Forward arrow to point 1725,4575 -->
381<polygon points=" 1755,4711 1725,4591 1695,4711 1755,4711"
382 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
383<!-- Line -->
384<defs>
385<clipPath id="cp19">
386 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
387 M 3495,4711 3555,4711 3543,4557 3507,4557z
388 M 7168,5673 7258,5673 7231,5459 7195,5459z"/>
389</clipPath>
390</defs>
391<polyline points=" 3525,4875 3525,4575" clip-path="url(#cp19)"
392 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
393<!-- Forward arrow to point 3525,4575 -->
394<polygon points=" 3555,4711 3525,4591 3495,4711 3555,4711"
395 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
396<!-- Line -->
397<defs>
398<clipPath id="cp20">
399 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
400 M 5295,4711 5355,4711 5343,4557 5307,4557z
401 M 7168,5673 7258,5673 7231,5459 7195,5459z"/>
402</clipPath>
403</defs>
404<polyline points=" 5325,4875 5325,4575" clip-path="url(#cp20)"
405 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
406<!-- Forward arrow to point 5325,4575 -->
407<polygon points=" 5355,4711 5325,4591 5295,4711 5355,4711"
408 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
409<!-- Line -->
410<defs>
411<clipPath id="cp21">
412 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
413 M 7170,4711 7230,4711 7218,4557 7182,4557z
414 M 7168,5673 7258,5673 7231,5459 7195,5459z"/>
415</clipPath>
416</defs>
417<polyline points=" 7200,4875 7200,4575" clip-path="url(#cp21)"
418 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
419<!-- Forward arrow to point 7200,4575 -->
420<polygon points=" 7230,4711 7200,4591 7170,4711 7230,4711"
421 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
422<!-- Line -->
423<defs>
424<clipPath id="cp22">
425 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
426 M 7170,4711 7230,4711 7218,4557 7182,4557z
427 M 4455,8521 4545,8521 4518,8307 4482,8307z"/>
428</clipPath>
429</defs>
430<polyline points=" 4500,8325 4500,8721" clip-path="url(#cp22)"
431 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
432<!-- Backward arrow to point 4500,8325 -->
433<polygon points=" 4545,8521 4500,8341 4455,8521 4545,8521"
434 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
435<!-- Line -->
436<polyline points=" 3225,7875 3225,7350 4725,7350"
437 stroke="#000000" stroke-width="30px" stroke-linejoin="round" stroke-dasharray="80 80"/>
438<!-- Line -->
439<defs>
440<clipPath id="cp23">
441 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
442 M 3272,9646 3353,9605 3233,9426 3201,9442z
443 M 3853,10604 3772,10645 3892,10824 3924,10808z"/>
444</clipPath>
445</defs>
446<polyline points=" 3900,10800 3225,9450" clip-path="url(#cp23)"
447 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
448<!-- Forward arrow to point 3225,9450 -->
449<polygon points=" 3353,9605 3232,9464 3272,9646 3353,9605"
450 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
451<!-- Backward arrow to point 3900,10800 -->
452<polygon points=" 3772,10645 3893,10786 3853,10604 3772,10645"
453 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
454<!-- Line -->
455<defs>
456<clipPath id="cp24">
457 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
458 M 4455,9946 4545,9946 4518,9732 4482,9732z
459 M 3853,10604 3772,10645 3892,10824 3924,10808z"/>
460</clipPath>
461</defs>
462<polyline points=" 4500,10800 4500,9750" clip-path="url(#cp24)"
463 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
464<!-- Forward arrow to point 4500,9750 -->
465<polygon points=" 4545,9946 4500,9766 4455,9946 4545,9946"
466 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
467<!-- Line -->
468<defs>
469<clipPath id="cp25">
470 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
471 M 12330,9646 12420,9646 12393,9432 12357,9432z
472 M 12420,10604 12330,10604 12357,10818 12393,10818z"/>
473</clipPath>
474</defs>
475<polyline points=" 12375,10800 12375,9750 12375,9450" clip-path="url(#cp25)"
476 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
477<!-- Forward arrow to point 12375,9450 -->
478<polygon points=" 12420,9646 12375,9466 12330,9646 12420,9646"
479 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
480<!-- Backward arrow to point 12375,10800 -->
481<polygon points=" 12330,10604 12375,10784 12420,10604 12330,10604"
482 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
483<!-- Line -->
484<polyline points=" 12225,3300 12225,5025"
485 stroke="#000000" stroke-width="8px" stroke-linejoin="round" stroke-dasharray="40 40"/>
486<!-- Line -->
487<polyline points=" 10425,3300 10425,5025"
488 stroke="#000000" stroke-width="8px" stroke-linejoin="round" stroke-dasharray="40 40"/>
489<!-- Line -->
490<polyline points=" 14025,3300 14025,5025"
491 stroke="#000000" stroke-width="8px" stroke-linejoin="round" stroke-dasharray="40 40"/>
492<!-- Line -->
493<defs>
494<clipPath id="cp26">
495 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
496 M 11370,3629 11280,3629 11307,3843 11343,3843z
497 M 12420,10604 12330,10604 12357,10818 12393,10818z"/>
498</clipPath>
499</defs>
500<polyline points=" 9975,1500 10800,1500 11325,2100 11325,3825" clip-path="url(#cp26)"
501 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
502<!-- Forward arrow to point 11325,3825 -->
503<polygon points=" 11280,3629 11325,3809 11370,3629 11280,3629"
504 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
505<!-- Line -->
506<defs>
507<clipPath id="cp27">
508 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
509 M 11820,3104 11730,3104 11757,3318 11793,3318z
510 M 9496,645 9496,555 9282,582 9282,618z"/>
511</clipPath>
512</defs>
513<polyline points=" 9300,600 11175,600 11775,1275 11775,3300" clip-path="url(#cp27)"
514 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
515<!-- Forward arrow to point 11775,3300 -->
516<polygon points=" 11730,3104 11775,3284 11820,3104 11730,3104"
517 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
518<!-- Backward arrow to point 9300,600 -->
519<polygon points=" 9496,555 9316,600 9496,645 9496,555"
520 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
521<!-- Line -->
522<defs>
523<clipPath id="cp28">
524 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
525 M 11820,3104 11730,3104 11757,3318 11793,3318z
526 M 13245,10604 13155,10604 13182,10818 13218,10818z"/>
527</clipPath>
528</defs>
529<polyline points=" 13200,10800 13200,10200 14625,9750 14625,8400 14175,8400" clip-path="url(#cp28)"
530 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
531<!-- Backward arrow to point 13200,10800 -->
532<polygon points=" 13155,10604 13200,10784 13245,10604 13155,10604"
533 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
534<!-- Line -->
535<defs>
536<clipPath id="cp29">
537 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
538 M 11820,3104 11730,3104 11757,3318 11793,3318z
539 M 5280,5671 5370,5671 5343,5457 5307,5457z"/>
540</clipPath>
541</defs>
542<polyline points=" 5325,5475 5325,5775 4950,6675" clip-path="url(#cp29)"
543 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
544<!-- Backward arrow to point 5325,5475 -->
545<polygon points=" 5370,5671 5325,5491 5280,5671 5370,5671"
546 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
547<!-- Line -->
548<defs>
549<clipPath id="cp30">
550 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
551 M 555,3496 645,3496 618,3282 582,3282z
552 M 5280,5671 5370,5671 5343,5457 5307,5457z"/>
553</clipPath>
554</defs>
555<polyline points=" 600,5400 600,3300" clip-path="url(#cp30)"
556 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
557<!-- Forward arrow to point 600,3300 -->
558<polygon points=" 645,3496 600,3316 555,3496 645,3496"
559 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
560<!-- Line -->
561<polyline points=" 600,7800 600,5700"
562 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
563<!-- Line -->
564<defs>
565<clipPath id="cp31">
566 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
567 M 12314,8370 12314,8430 12468,8418 12468,8382z
568 M 5280,5671 5370,5671 5343,5457 5307,5457z"/>
569</clipPath>
570</defs>
571<polyline points=" 12150,8400 12450,8400" clip-path="url(#cp31)"
572 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
573<!-- Forward arrow to point 12450,8400 -->
574<polygon points=" 12314,8430 12434,8400 12314,8370 12314,8430"
575 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
576<!-- Line -->
577<defs>
578<clipPath id="cp32">
579 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
580 M 11639,8370 11639,8430 11793,8418 11793,8382z
581 M 5280,5671 5370,5671 5343,5457 5307,5457z"/>
582</clipPath>
583</defs>
584<polyline points=" 11475,8400 11775,8400" clip-path="url(#cp32)"
585 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
586<!-- Forward arrow to point 11775,8400 -->
587<polygon points=" 11639,8430 11759,8400 11639,8370 11639,8430"
588 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
589<!-- Line -->
590<defs>
591<clipPath id="cp33">
592 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
593 M 10964,8370 10964,8430 11118,8418 11118,8382z
594 M 5280,5671 5370,5671 5343,5457 5307,5457z"/>
595</clipPath>
596</defs>
597<polyline points=" 10800,8400 11100,8400" clip-path="url(#cp33)"
598 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
599<!-- Forward arrow to point 11100,8400 -->
600<polygon points=" 10964,8430 11084,8400 10964,8370 10964,8430"
601 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
602<!-- Line -->
603<defs>
604<clipPath id="cp34">
605 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
606 M 12989,8370 12989,8430 13143,8418 13143,8382z
607 M 5280,5671 5370,5671 5343,5457 5307,5457z"/>
608</clipPath>
609</defs>
610<polyline points=" 12825,8400 13125,8400" clip-path="url(#cp34)"
611 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
612<!-- Forward arrow to point 13125,8400 -->
613<polygon points=" 12989,8430 13109,8400 12989,8370 12989,8430"
614 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
615<!-- Line -->
616<defs>
617<clipPath id="cp35">
618 <path clip-rule="evenodd" d="M 254,-90 H 16139 V 12633 H 254 z
619 M 13664,8370 13664,8430 13818,8418 13818,8382z
620 M 5280,5671 5370,5671 5343,5457 5307,5457z"/>
621</clipPath>
622</defs>
623<polyline points=" 13500,8400 13800,8400" clip-path="url(#cp35)"
624 stroke="#000000" stroke-width="30px" stroke-linejoin="round"/>
625<!-- Forward arrow to point 13800,8400 -->
626<polygon points=" 13664,8430 13784,8400 13664,8370 13664,8430"
627 stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
628<!-- Text -->
629<g transform="translate(450,825) rotate(-90)" >
630<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="168" text-anchor="middle">application</text>
631</g><!-- Text -->
632<g transform="translate(450,9450) rotate(-90)" >
633<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="168" text-anchor="middle">connection = cs-&gt;conn</text>
634</g><!-- Text -->
635<g transform="translate(2850,3225) rotate(-90)" >
636<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">mux-&gt;subscribe(SUB_RECV)</text>
637</g><!-- Text -->
638<g transform="translate(900,825) rotate(-90)" >
639<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">(eg: checks,</text>
640</g><!-- Text -->
641<g transform="translate(1125,750) rotate(-90)" >
642<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">stream-int)</text>
643</g><!-- Text -->
644<text xml:space="preserve" x="12300" y="7125" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="192" text-anchor="middle">MUX</text>
645<!-- Text -->
646<text xml:space="preserve" x="3600" y="8100" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="end">Stream ID</text>
647<!-- Text -->
648<text xml:space="preserve" x="12825" y="7125" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Stream ID</text>
649<!-- Text -->
650<text xml:space="preserve" x="3300" y="10125" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="end">tasklet_wakeup()</text>
651<!-- Text -->
652<text xml:space="preserve" x="12150" y="10125" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="end">tasklet_wakeup()</text>
653<!-- Text -->
654<text xml:space="preserve" x="11175" y="3150" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="end">mux-&gt;snd_buf()</text>
655<!-- Text -->
656<text xml:space="preserve" x="3675" y="3225" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">mux-&gt;rcv_buf()</text>
657<!-- Text -->
658<text xml:space="preserve" x="13425" y="10575" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">xprt-&gt;snd_buf(mbuf)</text>
659<!-- Text -->
660<text xml:space="preserve" x="4725" y="10500" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">xprt-&gt;rcv_buf(dbuf)</text>
661<!-- Text -->
662<text xml:space="preserve" x="8400" y="2100" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">HTX contents when mode==HTTP</text>
663<!-- Text -->
664<text xml:space="preserve" x="13125" y="675" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">snd_buf() will move the</text>
665<!-- Text -->
666<text xml:space="preserve" x="13125" y="975" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">buffer (zero-copy) when</text>
667<!-- Text -->
668<text xml:space="preserve" x="13125" y="1275" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">the destination is empty.</text>
669<!-- Text -->
670<text xml:space="preserve" x="7500" y="450" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="end">tasklet_wakeup()</text>
671<!-- Text -->
672<text xml:space="preserve" x="9300" y="450" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">tasklet_wakeup()</text>
673<!-- Text -->
674<g transform="translate(12075,3225) rotate(-90)" >
675<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">mux-&gt;subscribe(SUB_SEND)</text>
676</g><!-- Text -->
677<g transform="translate(450,4500) rotate(-90)" >
678<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="168" text-anchor="middle">mux streams</text>
679</g><!-- Text -->
680<g transform="translate(450,6750) rotate(-90)" >
681<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="168" text-anchor="middle">mux=conn-&gt;mux</text>
682</g><!-- Text -->
683<g transform="translate(450,2550) rotate(-90)" >
684<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="168" text-anchor="middle">conn_stream</text>
685</g><!-- Text -->
686<text xml:space="preserve" x="12900" y="75" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Notes:</text>
687<!-- Text -->
688<text xml:space="preserve" x="12975" y="375" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">- mux-&gt;rcv_buf() and</text>
689<!-- Text -->
690<text xml:space="preserve" x="12975" y="1650" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">- the application is also</text>
691<!-- Text -->
692<text xml:space="preserve" x="13125" y="1950" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">called the data layer and</text>
693<!-- Text -->
694<text xml:space="preserve" x="13125" y="2250" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">is cs-&gt;data and cs-&gt;data_cb</text>
695<!-- Text -->
696<text xml:space="preserve" x="12975" y="2550" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">- transport layers (xprt) are</text>
697<!-- Text -->
698<text xml:space="preserve" x="13125" y="2775" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">stackable. conn-&gt;xprt is</text>
699<!-- Text -->
700<text xml:space="preserve" x="13125" y="3000" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">the topmost one.</text>
701<!-- Text -->
702<text xml:space="preserve" x="4500" y="11175" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">Transport</text>
703<!-- Text -->
704<text xml:space="preserve" x="2250" y="12000" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">encoding/decoding function</text>
705<!-- Text -->
706<text xml:space="preserve" x="2250" y="12525" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">transport layer</text>
707<!-- Text -->
708<text xml:space="preserve" x="7050" y="12525" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">multiplexer (MUX/DEMUX)</text>
709<!-- Text -->
710<text xml:space="preserve" x="7050" y="12000" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">general processing function</text>
711<!-- Text -->
712<text xml:space="preserve" x="11775" y="12525" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">stream buffer (byte-level FIFO)</text>
713<!-- Text -->
714<text xml:space="preserve" x="3675" y="10725" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="end">xprt-&gt;subscribe(SUB_RECV)</text>
715<!-- Text -->
716<text xml:space="preserve" x="12225" y="10725" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="end">xprt-&gt;subscribe(SUB_SEND)</text>
717<!-- Line -->
718<polyline points=" 4261,9751 4261,8751 4761,8751 4761,9751"
719 stroke="#458dba" stroke-width="45px"/>
720<!-- Line -->
721<polyline points=" 1486,4576 1486,3576 1986,3576 1986,4576"
722 stroke="#458dba" stroke-width="45px"/>
723<!-- Line -->
724<polyline points=" 3286,4576 3286,3576 3786,3576 3786,4576"
725 stroke="#458dba" stroke-width="45px"/>
726<!-- Line -->
727<polyline points=" 5086,4576 5086,3576 5586,3576 5586,4576"
728 stroke="#458dba" stroke-width="45px"/>
729<!-- Line -->
730<polyline points=" 6961,4576 6961,3576 7461,3576 7461,4576"
731 stroke="#458dba" stroke-width="45px"/>
732<!-- Line -->
733<polyline points=" 6692,1261 9959,1261 9959,1761 6692,1761"
734 stroke="#458dba" stroke-width="45px"/>
735<!-- Line -->
736<polyline points=" 12425,8161 12825,8161 12825,8661 12425,8661"
737 stroke="#458dba" stroke-width="45px"/>
738<!-- Line -->
739<polyline points=" 11750,8161 12150,8161 12150,8661 11750,8661"
740 stroke="#458dba" stroke-width="45px"/>
741<!-- Line -->
742<polyline points=" 11075,8161 11475,8161 11475,8661 11075,8661"
743 stroke="#458dba" stroke-width="45px"/>
744<!-- Line -->
745<polyline points=" 10400,8161 10800,8161 10800,8661 10400,8661"
746 stroke="#458dba" stroke-width="45px"/>
747<!-- Line -->
748<polyline points=" 13100,8161 13500,8161 13500,8661 13100,8661"
749 stroke="#458dba" stroke-width="45px"/>
750<!-- Line -->
751<polyline points=" 13775,8161 14175,8161 14175,8661 13775,8661"
752 stroke="#458dba" stroke-width="45px"/>
753<!-- Line -->
754<polyline points=" 11157,12331 11614,12331 11614,12581 11157,12581"
755 stroke="#458dba" stroke-width="45px"/>
756<!-- Text -->
757<text xml:space="preserve" x="8409" y="657" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">si_cs_io_cb</text>
758<!-- Text -->
759<text xml:space="preserve" x="9534" y="4200" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">encode</text>
760<!-- Text -->
761<text xml:space="preserve" x="11325" y="4200" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">encode</text>
762<!-- Text -->
763<text xml:space="preserve" x="13134" y="4200" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">encode</text>
764<!-- Text -->
765<text xml:space="preserve" x="15009" y="4200" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">encode</text>
766<!-- Text -->
767<text xml:space="preserve" x="1725" y="5250" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">decode</text>
768<!-- Text -->
769<text xml:space="preserve" x="3525" y="5250" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">decode</text>
770<!-- Text -->
771<text xml:space="preserve" x="5325" y="5250" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">decode</text>
772<!-- Text -->
773<text xml:space="preserve" x="7200" y="5250" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">decode</text>
774<!-- Text -->
775<text xml:space="preserve" x="12375" y="9300" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">mux_io_cb</text>
776<!-- Text -->
777<text xml:space="preserve" x="3159" y="9300" fill="#1a1a1a" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">mux_io_cb</text>
778<!-- Line -->
779<polyline points=" 4261,8850 4761,8850"
780 stroke="#458dba" stroke-width="15px"/>
781<!-- Line -->
782<polyline points=" 4261,8925 4761,8925"
783 stroke="#458dba" stroke-width="15px"/>
784<!-- Line -->
785<polyline points=" 4261,9000 4761,9000"
786 stroke="#458dba" stroke-width="15px"/>
787<!-- Line -->
788<polyline points=" 1486,3675 1986,3675"
789 stroke="#458dba" stroke-width="15px"/>
790<!-- Line -->
791<polyline points=" 1486,3750 1986,3750"
792 stroke="#458dba" stroke-width="15px"/>
793<!-- Line -->
794<polyline points=" 1486,3825 1986,3825"
795 stroke="#458dba" stroke-width="15px"/>
796<!-- Line -->
797<polyline points=" 3286,3675 3786,3675"
798 stroke="#458dba" stroke-width="15px"/>
799<!-- Line -->
800<polyline points=" 3286,3750 3786,3750"
801 stroke="#458dba" stroke-width="15px"/>
802<!-- Line -->
803<polyline points=" 3286,3825 3786,3825"
804 stroke="#458dba" stroke-width="15px"/>
805<!-- Line -->
806<polyline points=" 5086,3675 5586,3675"
807 stroke="#458dba" stroke-width="15px"/>
808<!-- Line -->
809<polyline points=" 5086,3750 5586,3750"
810 stroke="#458dba" stroke-width="15px"/>
811<!-- Line -->
812<polyline points=" 5086,3825 5586,3825"
813 stroke="#458dba" stroke-width="15px"/>
814<!-- Line -->
815<polyline points=" 6961,3675 7461,3675"
816 stroke="#458dba" stroke-width="15px"/>
817<!-- Line -->
818<polyline points=" 6961,3750 7461,3750"
819 stroke="#458dba" stroke-width="15px"/>
820<!-- Line -->
821<polyline points=" 6961,3825 7461,3825"
822 stroke="#458dba" stroke-width="15px"/>
823<!-- Line -->
824<polyline points=" 9750,1261 9750,1761"
825 stroke="#458dba" stroke-width="15px"/>
826<!-- Line -->
827<polyline points=" 9525,1261 9525,1761"
828 stroke="#458dba" stroke-width="15px"/>
829<!-- Line -->
830<polyline points=" 9300,1261 9300,1761"
831 stroke="#458dba" stroke-width="15px"/>
832<!-- Line -->
833<polyline points=" 12600,8161 12600,8661"
834 stroke="#458dba" stroke-width="15px"/>
835<!-- Line -->
836<polyline points=" 12675,8161 12675,8661"
837 stroke="#458dba" stroke-width="15px"/>
838<!-- Line -->
839<polyline points=" 12750,8161 12750,8661"
840 stroke="#458dba" stroke-width="15px"/>
841<!-- Line -->
842<polyline points=" 11925,8161 11925,8661"
843 stroke="#458dba" stroke-width="15px"/>
844<!-- Line -->
845<polyline points=" 12000,8161 12000,8661"
846 stroke="#458dba" stroke-width="15px"/>
847<!-- Line -->
848<polyline points=" 12075,8161 12075,8661"
849 stroke="#458dba" stroke-width="15px"/>
850<!-- Line -->
851<polyline points=" 11250,8161 11250,8661"
852 stroke="#458dba" stroke-width="15px"/>
853<!-- Line -->
854<polyline points=" 11325,8161 11325,8661"
855 stroke="#458dba" stroke-width="15px"/>
856<!-- Line -->
857<polyline points=" 11400,8161 11400,8661"
858 stroke="#458dba" stroke-width="15px"/>
859<!-- Line -->
860<polyline points=" 10575,8161 10575,8661"
861 stroke="#458dba" stroke-width="15px"/>
862<!-- Line -->
863<polyline points=" 10650,8161 10650,8661"
864 stroke="#458dba" stroke-width="15px"/>
865<!-- Line -->
866<polyline points=" 10725,8161 10725,8661"
867 stroke="#458dba" stroke-width="15px"/>
868<!-- Line -->
869<polyline points=" 13275,8161 13275,8661"
870 stroke="#458dba" stroke-width="15px"/>
871<!-- Line -->
872<polyline points=" 13350,8161 13350,8661"
873 stroke="#458dba" stroke-width="15px"/>
874<!-- Line -->
875<polyline points=" 13425,8161 13425,8661"
876 stroke="#458dba" stroke-width="15px"/>
877<!-- Line -->
878<polyline points=" 13950,8161 13950,8661"
879 stroke="#458dba" stroke-width="15px"/>
880<!-- Line -->
881<polyline points=" 14025,8161 14025,8661"
882 stroke="#458dba" stroke-width="15px"/>
883<!-- Line -->
884<polyline points=" 14100,8161 14100,8661"
885 stroke="#458dba" stroke-width="15px"/>
886<!-- Line -->
887<polyline points=" 11357,12331 11357,12581"
888 stroke="#458dba" stroke-width="15px"/>
889<!-- Line -->
890<polyline points=" 11443,12331 11443,12581"
891 stroke="#458dba" stroke-width="15px"/>
892<!-- Line -->
893<polyline points=" 11529,12331 11529,12581"
894 stroke="#458dba" stroke-width="15px"/>
895<!-- Text -->
896<text xml:space="preserve" x="8025" y="1575" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="192" text-anchor="middle">channel buf</text>
897<!-- Text -->
898<g transform="translate(3600,4200) rotate(-90)" >
899<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="192" text-anchor="middle">rxbuf</text>
900</g><!-- Text -->
901<g transform="translate(4575,9375) rotate(-90)" >
902<text xml:space="preserve" x="0" y="0" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="192" text-anchor="middle">dbuf</text>
903</g><!-- Text -->
904<text xml:space="preserve" x="14625" y="8175" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="192" text-anchor="middle">mbuf</text>
905<!-- Ellipse -->
906<ellipse cx="4488" cy="8082" rx="612" ry="250" fill="#87cfff"
907 stroke="#0000d1" stroke-width="45px"/>
908<!-- Ellipse -->
909<ellipse cx="6600" cy="11925" rx="225" ry="150" fill="#87cfff"
910 stroke="#0000d1" stroke-width="45px"/>
911<!-- Text -->
912<text xml:space="preserve" x="4500" y="8175" fill="#000000" font-family="AvantGarde" font-style="normal" font-weight="normal" font-size="192" text-anchor="middle">DEMUX</text>
913</g>
914</svg>