--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ id="svg10842"
+ viewBox="0 0 779.07203 267.13385"
+ height="267.13385"
+ width="779.07202">
+ <defs
+ id="defs10844">
+ <marker
+ style="overflow:visible"
+ id="marker17537"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path17539" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker17305"
+ style="overflow:visible">
+ <path
+ id="path17307"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker16583"
+ style="overflow:visible">
+ <path
+ id="path16585"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker16471"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path16473" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker16099"
+ style="overflow:visible">
+ <path
+ id="path16101"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker15593"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path15595" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker15499"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path15501" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker14791"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path14793" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker14709"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path14711" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker13263"
+ style="overflow:visible">
+ <path
+ id="path13265"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker13193"
+ style="overflow:visible">
+ <path
+ id="path13195"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker12365"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path12367" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker12193"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path12195" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker11788"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path11790" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8890"
+ style="overflow:visible">
+ <path
+ id="path8892"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker8978"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path8980" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Send"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path4205" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8275-6"
+ style="overflow:visible">
+ <path
+ id="path8277-4"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+ </marker>
+ </defs>
+ <metadata
+ id="metadata10847">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(6.6527165,-185.7422)"
+ id="layer1">
+ <rect
+ ry="6.0704842"
+ y="253.05574"
+ x="20.634903"
+ height="105.18321"
+ width="91.154922"
+ id="rect4136-8"
+ style="fill:#78ff8e;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ id="text4138-4"
+ y="309.60471"
+ x="26.47863"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="309.60471"
+ x="26.47863"
+ id="tspan4140-9">Application</tspan></text>
+ <path
+ id="path4150"
+ d="m 146.32801,205.7422 0,198.21424"
+ style="fill:none;fill-rule:evenodd;stroke:#999999;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:4px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ x="12.243362"
+ y="228.748"
+ id="text4152-0"><tspan
+ id="tspan4154-2"
+ x="12.243362"
+ y="228.748"
+ style="letter-spacing:4px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Userspace</tspan></text>
+ <rect
+ style="fill:#f1ff78;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4158"
+ width="91.154922"
+ height="105.18321"
+ x="340.63489"
+ y="253.05574"
+ ry="6.0704842" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ x="363.31839"
+ y="311.03952"
+ id="text4160"><tspan
+ id="tspan4162"
+ x="363.31839"
+ y="311.03952"
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">ff-core</tspan></text>
+ <path
+ id="path4166-5"
+ d="m 113.90948,305.64741 64.63524,0"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker8890);marker-end:url(#marker8275-6)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.48874569px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19731037;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ x="144.41269"
+ y="288.54184"
+ id="text4544-4"><tspan
+ id="tspan4548-2"
+ x="144.41269"
+ y="288.54184"
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.19731037;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Linux</tspan><tspan
+ id="tspan4552-0"
+ x="144.41269"
+ y="300.40277"
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.19731037;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">input API</tspan></text>
+ <text
+ id="text5891"
+ y="228.748"
+ x="378.99341"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:4px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="letter-spacing:4px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="228.748"
+ x="378.99341"
+ id="tspan5893">Kernel space</tspan></text>
+ <text
+ id="text5897"
+ y="288.34076"
+ x="306.80484"
+ style="font-style:normal;font-weight:normal;font-size:9.48874569px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19731037;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.19731037;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="288.34076"
+ x="306.80484"
+ id="tspan5901">Kernel</tspan><tspan
+ id="tspan11873"
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.19731037;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="300.20169"
+ x="306.80484">ff-core API</tspan></text>
+ <rect
+ ry="6.0704842"
+ y="253.05574"
+ x="180.63492"
+ height="105.18321"
+ width="91.154922"
+ id="rect8868"
+ style="fill:#b4ff78;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ id="text8870"
+ y="300.46811"
+ x="226.6181"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="300.46811"
+ x="226.6181"
+ id="tspan8872">input</tspan><tspan
+ id="tspan8874"
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="318.50204"
+ x="226.6181">system</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker11788);marker-end:url(#marker8978)"
+ d="m 275.02265,305.64741 62.20137,0"
+ id="path8888" />
+ <rect
+ ry="6.0704842"
+ y="253.05574"
+ x="500.63489"
+ height="105.18321"
+ width="91.154922"
+ id="rect11750"
+ style="fill:#ffc178;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ id="text11875"
+ y="310.81628"
+ x="526.08643"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="310.81628"
+ x="526.08643"
+ id="tspan11877">KLGD</tspan></text>
+ <rect
+ style="fill:#78c3ff;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect12149"
+ width="29.734678"
+ height="34.310696"
+ x="531.2522"
+ y="379.75211"
+ ry="1.980188" />
+ <rect
+ ry="1.980188"
+ y="379.75211"
+ x="485.2522"
+ height="34.310696"
+ width="29.734678"
+ id="rect12153"
+ style="fill:#ffc178;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ ry="1.980188"
+ y="379.75211"
+ x="577.2522"
+ height="34.310696"
+ width="29.734678"
+ id="rect12155"
+ style="fill:#78c4ff;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.12424469px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.18973088;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ x="620.63538"
+ y="-69.994308"
+ id="text12157"><tspan
+ id="tspan12159"
+ x="620.63538"
+ y="-69.994308"
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.18973088;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Plugin</tspan></text>
+ <text
+ id="text12165"
+ y="-102.52122"
+ x="653.16223"
+ style="font-style:normal;font-weight:normal;font-size:9.12424469px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.18973088;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"><tspan
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.18973088;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="-102.52122"
+ x="653.16223"
+ id="tspan12167">Plugin</tspan></text>
+ <text
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.12424469px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.18973088;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ x="685.68909"
+ y="-135.04814"
+ id="text12169"><tspan
+ id="tspan12171"
+ x="685.68909"
+ y="-135.04814"
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.18973088;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Plugin</tspan></text>
+ <path
+ id="path12173"
+ d="m 546.25001,361.63139 0,14.70754"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.93674505;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker12365);marker-end:url(#marker12193)" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker13193);marker-end:url(#marker13263)"
+ d="m 511.54749,361.29905 -9.70718,15.27209"
+ id="path13191" />
+ <path
+ id="path14707"
+ d="m 580.7985,361.29905 9.70718,15.27209"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker14709);marker-end:url(#marker14791)" />
+ <rect
+ style="fill:#ff8b78;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect15483"
+ width="91.154922"
+ height="105.18321"
+ x="660.63489"
+ y="253.05574"
+ ry="6.0704842" />
+ <text
+ id="text7453"
+ y="310.94476"
+ x="669.43323"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="310.94476"
+ x="669.43323"
+ id="tspan7455">HW driver</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15593)"
+ d="m 592.11846,305.64741 64.97654,0"
+ id="path15497" />
+ <path
+ id="path16089"
+ d="m 431.64449,305.53919 c 23.85737,0 23.7319,91.39654 50.0586,91.39654"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.97153854;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker16099)" />
+ <path
+ id="path16459"
+ d="m 500.11161,417.5631 0,8.66071 c 0,5.6522 0,5.6522 5.3125,5.6522 l 195.11668,0 c 5.70921,0 5.70921,0 5.70921,-5.71368 l 0,-64.46354"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker16583);marker-end:url(#marker16471)" />
+ <path
+ id="path17295"
+ d="m 546.25001,431.87601 0,-14.37988"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17537)" />
+ <path
+ id="path17297"
+ d="m 592.14286,431.87601 0,-14.31292"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17305)" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 779.07209 238.21423"
+ height="238.21423"
+ width="779.07208">
+ <defs
+ id="defs4">
+ <marker
+ style="overflow:visible"
+ id="marker8978"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path8980" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8890"
+ style="overflow:visible">
+ <path
+ id="path8892"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Sstart"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path4202" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker8567"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.2,0,0,0.2,1.2,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8569" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker8485"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.2,0,0,0.2,1.2,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8487" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Sstart"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.2,0,0,0.2,1.2,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4184" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker8275"
+ style="overflow:visible">
+ <path
+ id="path8277"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Send"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4187" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker8065"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path8067" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Send"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path4205" />
+ </marker>
+ <linearGradient
+ id="linearGradient7445">
+ <stop
+ id="stop7449"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:0.36464089" />
+ <stop
+ id="stop7447"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:1;" />
+ </linearGradient>
+ <marker
+ style="overflow:visible"
+ id="marker7079"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(-0.6,-0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path7081" />
+ </marker>
+ <linearGradient
+ id="linearGradient6295">
+ <stop
+ id="stop6297"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop6299"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.36464089" />
+ </linearGradient>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker4963"
+ style="overflow:visible">
+ <path
+ id="path4965"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="scale(-0.6,-0.6)" />
+ </marker>
+ <marker
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker4929"
+ style="overflow:visible">
+ <path
+ id="path4931"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="scale(0.6,0.6)" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mstart"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.4,0,0,0.4,4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4178" />
+ </marker>
+ <linearGradient
+ gradientTransform="matrix(0.98294906,0,0,1.0008141,152.9219,839.90246)"
+ gradientUnits="userSpaceOnUse"
+ y2="138.43364"
+ x2="340.60168"
+ y1="96.597527"
+ x1="287.71048"
+ id="linearGradient6301"
+ xlink:href="#linearGradient6295" />
+ <linearGradient
+ gradientTransform="matrix(1,0,0,-1,292.54572,1075.4605)"
+ y2="138.43364"
+ x2="340.60168"
+ y1="96.597527"
+ x1="287.71048"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7137"
+ xlink:href="#linearGradient7445" />
+ </defs>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(18.195014,-832.00506)"
+ id="layer1">
+ <rect
+ ry="6.0704842"
+ y="899.3186"
+ x="9.0926065"
+ height="105.18321"
+ width="91.154922"
+ id="rect4136"
+ style="fill:#78ff8e;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ id="text4138"
+ y="955.86755"
+ x="14.936335"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="955.86755"
+ x="14.936335"
+ id="tspan4140">Application</tspan></text>
+ <path
+ id="path4150"
+ d="m 134.78572,852.00506 0,198.21424"
+ style="fill:none;fill-rule:evenodd;stroke:#999999;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:4px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ x="0.70106506"
+ y="875.01086"
+ id="text4152"><tspan
+ id="tspan4154"
+ x="0.70106506"
+ y="875.01086"
+ style="letter-spacing:4px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Userspace</tspan></text>
+ <rect
+ style="fill:#f1ff78;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4158"
+ width="91.154922"
+ height="105.18321"
+ x="329.09262"
+ y="899.3186"
+ ry="6.0704842" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ x="351.77609"
+ y="957.30237"
+ id="text4160"><tspan
+ id="tspan4162"
+ x="351.77609"
+ y="957.30237"
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">ff-core</tspan></text>
+ <path
+ id="path4166"
+ d="m 102.36719,951.91027 64.63524,0"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Sstart);marker-end:url(#marker8275)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.48874569px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19731037;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ x="132.87041"
+ y="934.80469"
+ id="text4544"><tspan
+ id="tspan4548"
+ x="132.87041"
+ y="934.80469"
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.19731037;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Linux</tspan><tspan
+ id="tspan4552"
+ x="132.87041"
+ y="946.66565"
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.19731037;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">input API</tspan></text>
+ <rect
+ ry="3.0206075"
+ y="952.34833"
+ x="488.90808"
+ height="52.338032"
+ width="91.524025"
+ id="rect4903"
+ style="fill:#ffc178;fill-opacity:1;stroke:#000000;stroke-width:0.88989484;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ id="text4905"
+ y="983.89258"
+ x="494.7514"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="983.89258"
+ x="494.7514"
+ id="tspan4907">ff-memless</tspan></text>
+ <rect
+ ry="6.0704842"
+ y="899.3186"
+ x="649.09265"
+ height="105.18321"
+ width="91.154922"
+ id="rect4913"
+ style="fill:#ff8a78;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker8065)"
+ d="m 420.59941,937.01043 226.30255,0"
+ id="path4927" />
+ <text
+ id="text5891"
+ y="875.01086"
+ x="367.45111"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:4px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="letter-spacing:4px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="875.01086"
+ x="367.45111"
+ id="tspan5893">Kernel space</tspan></text>
+ <text
+ id="text5897"
+ y="931.71539"
+ x="534.65613"
+ style="font-style:normal;font-weight:normal;font-size:9.48874569px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19731037;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.19731037;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="931.71539"
+ x="534.65613"
+ id="tspan5901">Kernel ff-core API</tspan></text>
+ <path
+ id="path5905"
+ d="m 435.55131,936.97453 c 24.6361,-0.009 24.60784,41.48994 50.71431,41.48994"
+ style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient6301);stroke-width:1.98368275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Send)" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient7137);stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 580.07782,978.46735 c 25.06346,0.009 25.03471,-41.45617 51.59404,-41.45617"
+ id="path7077" />
+ <text
+ id="text7453"
+ y="957.30237"
+ x="657.68677"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="letter-spacing:0px;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="957.30237"
+ x="657.68677"
+ id="tspan7455">HW driver</tspan></text>
+ <rect
+ ry="6.0704842"
+ y="899.3186"
+ x="169.09262"
+ height="105.18321"
+ width="91.154922"
+ id="rect8868"
+ style="fill:#b4ff78;fill-opacity:1;stroke:#000000;stroke-width:1.25899994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ id="text8870"
+ y="946.73096"
+ x="215.07582"
+ style="font-style:normal;font-weight:normal;font-size:14.42713737px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="946.73096"
+ x="215.07582"
+ id="tspan8872">input</tspan><tspan
+ id="tspan8874"
+ style="text-align:center;letter-spacing:0px;text-anchor:middle;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="964.76489"
+ x="215.07582">system</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker8890);marker-end:url(#marker8978)"
+ d="m 263.48036,951.91027 62.20137,0"
+ id="path8888" />
+ </g>
+</svg>