summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2017-05-06 00:04:26 +0300
committerdefanor <defanor@uberspace.net>2017-05-06 00:04:26 +0300
commit1f683c7da231011df12f2271f4e5509efd3e6376 (patch)
treeb8e6d86ddbe65a48e345b55ad83720777c869bbe
parenta79bc3ecfdd28ad12b9e5363a83b3ff5014872ac (diff)
downloadtlsd-1f683c7da231011df12f2271f4e5509efd3e6376.zip
tlsd-1f683c7da231011df12f2271f4e5509efd3e6376.tar.gz
tlsd-1f683c7da231011df12f2271f4e5509efd3e6376.tar.bz2
Add an illustration for the P2P IM example
An SVG diagram, illustrating data flow.
-rw-r--r--configure.ac2
-rw-r--r--examples/p2p-im/diagram.svg535
2 files changed, 536 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 23544c5..0a07b8f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
-AC_INIT(TLSd, 0.0.6, defanor@uberspace.net, tlsd,
+AC_INIT(TLSd, 0.0.7, defanor@uberspace.net, tlsd,
https://defanor.uberspace.net/projects/tlsd/)
AM_INIT_AUTOMAKE([-Wall])
AC_CONFIG_SRCDIR([tlsd.c])
diff --git a/examples/p2p-im/diagram.svg b/examples/p2p-im/diagram.svg
new file mode 100644
index 0000000..5258867
--- /dev/null
+++ b/examples/p2p-im/diagram.svg
@@ -0,0 +1,535 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="500"
+ height="450"
+ viewBox="0 0 500 450.00001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="diagram.svg">
+ <title
+ id="title14172">P2P IM example diagram</title>
+ <defs
+ id="defs4">
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker8913"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path8915"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5819"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path5821"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#e29898;fill-opacity:1;fill-rule:evenodd;stroke:#e29898;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5743"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5745"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5667"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path5669"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#e29898;fill-opacity:1;fill-rule:evenodd;stroke:#e29898;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5627"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path5629"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5547"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#e29898;fill-opacity:1;fill-rule:evenodd;stroke:#e29898;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5549"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5495"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#e29898;fill-opacity:1;fill-rule:evenodd;stroke:#e29898;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5497"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path5163"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path5166"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.98994949"
+ inkscape:cx="-20.159661"
+ inkscape:cy="438.06161"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1099"
+ inkscape:window-x="0"
+ inkscape:window-y="28"
+ inkscape:window-maximized="1"
+ units="px" />
+ <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>P2P IM example diagram</dc:title>
+ <cc:license
+ rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>defanor</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="bg"
+ sodipodi:insensitive="true">
+ <path
+ style="fill:#3d413c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 12.142857,8.5714281 C 176.46627,29.051078 328.86606,10.778986 486.42857,9.2857138 494.79231,82.473527 488.13658,154.97588 453.03274,213.40907 414.74165,277.14771 352.71521,253.02479 311.42857,286.42856 266.15838,323.05531 257.82647,421.28047 200.71493,421.5606 140.23547,421.85724 95.957595,413.48092 22.958668,431.96954 63.269205,115.02677 17.543741,142.10964 12.142857,8.5714281 Z"
+ id="path14177"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsascc" />
+ </g>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-602.36213)">
+ <path
+ style="fill:#f6d5ff;fill-rule:evenodd;stroke:#672178;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 208.93256,999.23138 c 22.65532,-8.34014 25.84559,-45.97677 11.06647,-71.57461 C 206.66527,904.56232 130.32991,889.52625 92.468901,909.75621 5.8334948,956.04739 122.50464,1031.0482 208.93256,999.23138 Z"
+ id="path4138-9-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssss" />
+ <path
+ style="fill:#293234;fill-rule:evenodd;stroke:#2d3428;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 42.857142,647.3622 c 7.577616,65.55906 30.550569,66.75601 42.857139,156.42858 43.398229,5.19514 82.592189,0.45304 127.857149,-9.28571 1.62876,-51.55394 11.82334,-93.10882 2.85714,-146.42858 -57.85714,-7.11648 -115.71429,-8.80676 -173.571428,-0.71429 z"
+ id="path5619"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#beb7c7;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="58.076153"
+ y="670.13794"
+ id="text4140"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4142"
+ x="58.076153"
+ y="670.13794">/var/lib/tlsd-im/</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#a9a9a9;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="79.855362"
+ y="694.41754"
+ id="text4144"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4146"
+ x="79.855362"
+ y="694.41754">&lt;sha256 hash&gt;</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#e29898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="126.27161"
+ y="731.08502"
+ id="text4148"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4150"
+ x="126.27161"
+ y="731.08502">in</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="118.60809"
+ y="712.33417"
+ id="text4152"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4154"
+ x="118.60809"
+ y="712.33417">out</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5495)"
+ d="m 156.42857,723.79077 c 79.69851,-0.26633 80.77355,-14.71351 125.70685,-28.85987"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart)"
+ d="m 156.42857,705.21935 c 85.94476,9.9806 92.34989,-20.16373 125.23458,-20.83683"
+ id="path4158"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#bac5b3;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="443.34372"
+ y="716.33209"
+ id="text4168"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4170"
+ x="443.34372"
+ y="716.33209">TLS</tspan></text>
+ <path
+ style="fill:#eeaaff;fill-rule:evenodd;stroke:#672178;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 71.576161,934.40795 c -2.75452,38.30892 48.838249,44.80379 93.971819,40.26373 35.44228,-3.5652 52.26131,-7.72616 50.87844,-33.12089 C 214.42147,904.7323 74.703481,890.91437 71.576161,934.40795 Z"
+ id="path4138-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssss" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="118.28571"
+ y="965.64783"
+ id="text4189"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4191"
+ x="118.28571"
+ y="965.64783">libpurple</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="M 114.28571,709.50506 C -14.263886,701.32595 74.716431,849.33809 95.000001,902.36221"
+ id="path4193"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5547)"
+ d="M 122.56127,723.94922 C 12.908193,702.01172 74.166781,826.88143 105.71428,903.79077"
+ id="path4195"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="116.14286"
+ y="994.2193"
+ id="text4227"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4229"
+ x="116.14286"
+ y="994.2193">an IM client</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text5129"
+ y="750.41748"
+ x="79.855362"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#a9a9a9;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ xml:space="preserve"><tspan
+ y="750.41748"
+ x="79.855362"
+ id="tspan5131"
+ sodipodi:role="line">&lt;sha256 hash&gt;</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text5133"
+ y="787.08502"
+ x="126.27161"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#e29898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ xml:space="preserve"><tspan
+ y="787.08502"
+ x="126.27161"
+ id="tspan5135"
+ sodipodi:role="line">in</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text5137"
+ y="768.33411"
+ x="118.60809"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ xml:space="preserve"><tspan
+ y="768.33411"
+ x="118.60809"
+ id="tspan5139"
+ sodipodi:role="line">out</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker8913)"
+ d="m 152.94274,763.95961 c 48.93905,8.20416 99.03484,-14.72616 130.13531,-12.08742"
+ id="path5147"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5667)"
+ d="m 149.02468,781.42807 c 31.97492,-5.61852 68.25609,-6.63802 132.40942,-15.6886"
+ id="path5149"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5743)"
+ d="M 112.14286,766.29077 C 39.008441,755.5811 107.05526,848.10628 122.5,898.79078"
+ id="path5151"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5819)"
+ d="m 120.35714,783.07649 c -71.386875,-14.45986 2.18452,74.07758 13.92857,117.5"
+ id="path5153"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#e580ff;fill-rule:evenodd;stroke:#672178;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 78.999991,933.50505 c -1.18222,-20.00191 36.392029,-20.60948 56.428569,-20.71428 19.20297,-0.10044 54.67819,0.0865 54.28572,19.28571 -0.3617,17.69401 -33.02644,15.12388 -50.71429,15.71429 -20.54764,0.68587 -58.786969,6.23754 -59.999999,-14.28572 z"
+ id="path9025"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="aaaaa" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="87.285721"
+ y="937.07648"
+ id="text9027"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan9029"
+ x="87.285721"
+ y="937.07648">FIFO plugin</tspan></text>
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0"
+ id="path9169"
+ d="m 311.42768,625.65895 c 31.08157,-1.63804 61.65553,-6.41236 93.94788,-0.5696 -7.52192,44.2439 -4.20481,53.87861 -6.79774,184.51546 -28.64631,5.33365 -57.22685,0.64016 -85.8336,-2.4635 -1.92983,-10.40627 -3.08546,-16.33947 0.99709,-23.47731 84.83651,27.94081 68.32679,-81.86707 -2.66915,-50.0552 -1.4616,-11.24392 -1.10294,-11.476 -0.19536,-19.9469 80.85413,25.75459 78.76874,-77.55437 -0.62299,-50.12312 0,0 -5.34523,-23.20627 1.17387,-37.87983 z"
+ style="fill:#686f51;fill-rule:evenodd;stroke:#525b2e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+ <path
+ sodipodi:nodetypes="sss"
+ inkscape:connector-curvature="0"
+ id="path9171"
+ d="m 287.20943,759.47424 c 0.49122,21.62796 76.22284,25.31623 70.56455,-3.57143 -4.33509,-22.13223 -71.15342,-22.3558 -70.56455,3.57143 z"
+ style="fill:#dde9af;fill-rule:evenodd;stroke:#225500;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text9173"
+ y="764.21936"
+ x="293.14279"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#112b00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="764.21936"
+ x="293.14279"
+ id="tspan9175"
+ sodipodi:role="line">std2fifo</tspan></text>
+ <path
+ style="fill:#dde9af;fill-rule:evenodd;stroke:#225500;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 286.75407,689.30093 c 0.49122,21.62796 77.36004,24.24699 70.56455,-3.57143 -5.35183,-21.9086 -71.15342,-22.3558 -70.56455,3.57143 z"
+ id="path9177"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sss" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#112b00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="292.68747"
+ y="694.04602"
+ id="text9179"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan9181"
+ x="292.68747"
+ y="694.04602">std2fifo</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#b0bf79;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="340.54709"
+ y="645.83209"
+ id="text4164"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4166"
+ x="340.54709"
+ y="645.83209">tlsd</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 342.14286,673.07649 13.57142,-8.57142"
+ id="path14133"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 345.71428,701.64792 15.71429,7.14286"
+ id="path14135"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 348.57143,745.21935 10,-7.85714"
+ id="path14137"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 348.57143,771.64792 11.97697,9.07651"
+ id="path14139"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path9021"
+ d="m 398.89049,755.06621 c -25.67753,7.29451 -14.93765,33.80517 -38.22737,26.2228"
+ style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path9019"
+ d="M 398.01414,750.74461 C 376.97896,753.18547 377.2177,720.064 358.92457,736.55696"
+ style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ id="g14145"
+ transform="translate(-47.561277,122.47823)">
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path14141"
+ d="m 447.46192,559.35192 c -25.67753,7.29451 -14.93765,33.80517 -38.22737,26.2228"
+ style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path14143"
+ d="m 446.58557,555.03032 c -21.03518,2.44086 -24.83705,-29.16538 -43.13018,-12.67242"
+ style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path9023"
+ d="m 399.6007,679.51458 c 15.17949,7.13996 74.60249,8.01665 74.60249,8.01665"
+ style="fill:none;fill-rule:evenodd;stroke:#9dac93;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#9dac93;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 399.06499,752.84717 c 0,0 43.48911,-17.70787 77.45963,-14.7052"
+ id="path14149"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>