exchange: add the pullmarker wireproto command to simple4server
This will allow simple server side support.
(yes, code duplication is bad I already told you I won't do it too much mom)
<?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="773.15637"
height="740.48505"
id="svg3404"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="edit-is-rewrite-step1.svg">
<defs
id="defs3406">
<marker
inkscape:stockid="DotM"
orient="auto"
refY="0"
refX="0"
id="DotM"
style="overflow:visible">
<path
id="path6393"
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
transform="matrix(0.4,0,0,0.4,2.96,0.4)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="DotL"
orient="auto"
refY="0"
refX="0"
id="DotL"
style="overflow:visible">
<path
id="path6390"
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
transform="matrix(0.8,0,0,0.8,5.92,0.8)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart"
style="overflow:visible">
<path
id="path6334"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mstart"
style="overflow:visible">
<path
id="path6352"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
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)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible">
<path
id="path6331"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3411" />
<inkscape:perspective
id="perspective5699"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5753"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5784"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.57"
inkscape:cx="215.04832"
inkscape:cy="422.53048"
inkscape:document-units="px"
showgrid="false"
inkscape:snap-global="true"
inkscape:window-width="1280"
inkscape:window-height="776"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="g6029"
fit-margin-top="5"
fit-margin-right="5"
fit-margin-bottom="5"
fit-margin-left="5">
<inkscape:grid
type="xygrid"
id="grid6315"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
originx="5.0135572px"
originy="4.9994442px" />
</sodipodi:namedview>
<metadata
id="metadata3409">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="babar"
transform="translate(12.275017,-145.05915)">
<flowRoot
xml:space="preserve"
id="flowRoot5626"
style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"><flowRegion
id="flowRegion5628"><rect
id="rect5630"
width="120.20815"
height="52.527931"
x="153.54318"
y="706.89001"
style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" /></flowRegion><flowPara
id="flowPara5636" /></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot5653"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
id="flowRegion5655"><rect
id="rect5657"
width="145"
height="49.285713"
x="565.71429"
y="683.07648" /></flowRegion><flowPara
id="flowPara5659" /></flowRoot> <g
id="g10759"
transform="translate(582.45614,-14.035088)">
<g
transform="translate(-422.06809,-8.1395349)"
id="g6029">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:4.09652519;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3414"
width="291.61774"
height="107.33205"
x="68.11969"
y="793.33905" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="75.714279"
y="835.2193"
id="text5643"><tspan
sodipodi:role="line"
id="tspan5645"
x="75.714279"
y="835.2193"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">";<tspan
style="fill:#008000;stroke:#008000"
id="tspan5889">Alice</tspan>;Babar"</tspan><tspan
sodipodi:role="line"
x="75.714279"
y="885.2193"
id="tspan5649"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">⟶ <tspan
id="tspan6297"
style="fill:#c8ab37;stroke:#c8ab37">19b08111</tspan></tspan></text>
</g>
<g
transform="translate(-602.95683,-59.767404)"
id="g6023">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:6.09169483;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3414-7"
width="657.06445"
height="105.33688"
x="66.285065"
y="639.61066" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="72.882072"
y="680.49335"
id="text5643-6"><tspan
sodipodi:role="line"
id="tspan5645-5"
x="72.882072"
y="680.49335"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">"<tspan
id="tspan6203"
style="fill:#c8c4b7;stroke:#c8c4b7;stroke-opacity:1">19b08111</tspan>;<tspan
style="fill:#008000;stroke:#008000"
id="tspan5885">Alice</tspan>;Babar<tspan
id="tspan6287"
style="fill:#ff0000;stroke:#ff0000">,Celeste</tspan>"</tspan><tspan
sodipodi:role="line"
x="72.882072"
y="730.49335"
id="tspan5649-6"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">⟶ <tspan
id="tspan6035"
style="stroke:#009400;stroke-opacity:1"><tspan
id="tspan6039"
style="stroke:#00b500;stroke-opacity:1"><tspan
id="tspan6043"
style="stroke:#00ae00;stroke-opacity:1"><tspan
id="tspan6045"
style="stroke:#00ad00;stroke-opacity:1"><tspan
id="tspan6047"
style="stroke:#00ac00;stroke-opacity:1"><tspan
id="tspan6051"
style="stroke:#00aa00;stroke-opacity:1"><tspan
id="tspan6053"
style="stroke:#00a800;stroke-opacity:1"><tspan
id="tspan6055"
style="stroke:#00a600;stroke-opacity:1"><tspan
id="tspan6057"
style="stroke:#00a400;stroke-opacity:1"><tspan
id="tspan6059"
style="stroke:#00a100;stroke-opacity:1"><tspan
id="tspan6061"
style="stroke:#009f00;stroke-opacity:1"><tspan
id="tspan6063"
style="stroke:#009d00;stroke-opacity:1"><tspan
id="tspan6065"
style="stroke:#009900;stroke-opacity:1"><tspan
id="tspan6067"
style="stroke:#009800;stroke-opacity:1"><tspan
id="tspan6069"
style="stroke:#009700;stroke-opacity:1"><tspan
id="tspan6071"
style="stroke:#009800;stroke-opacity:1"><tspan
id="tspan6073"
style="stroke:#009900;stroke-opacity:1"><tspan
id="tspan6077"
style="stroke:#009c00;stroke-opacity:1"><tspan
id="tspan6079"
style="stroke:#009d00;stroke-opacity:1"><tspan
id="tspan6081"
style="stroke:#009e00;stroke-opacity:1"><tspan
id="tspan6083"
style="stroke:#009f00;stroke-opacity:1"><tspan
id="tspan6085"
style="stroke:#00a100;stroke-opacity:1"><tspan
id="tspan6087"
style="stroke:#00a200;stroke-opacity:1"><tspan
id="tspan6089"
style="stroke:#00a500;stroke-opacity:1"><tspan
id="tspan6091"
style="stroke:#00a600;stroke-opacity:1"><tspan
id="tspan6093"
style="stroke:#00a500;stroke-opacity:1"><tspan
id="tspan6095"
style="stroke:#00a200;stroke-opacity:1"><tspan
id="tspan6097"
style="stroke:#00a100;stroke-opacity:1"><tspan
id="tspan6099"
style="stroke:#009f00;stroke-opacity:1"><tspan
id="tspan6101"
style="stroke:#009c00;stroke-opacity:1"><tspan
id="tspan6103"
style="stroke:#009700;stroke-opacity:1"><tspan
id="tspan6105"
style="stroke:#009200;stroke-opacity:1"><tspan
id="tspan6107"
style="stroke:#008b00;stroke-opacity:1"><tspan
id="tspan6109"
style="stroke:#008500;stroke-opacity:1"><tspan
id="tspan6111"
style="stroke:#007c00;stroke-opacity:1"><tspan
id="tspan6113"
style="stroke:#007500;stroke-opacity:1"><tspan
id="tspan6115"
style="stroke:#006b00;stroke-opacity:1"><tspan
id="tspan6117"
style="stroke:#006100;stroke-opacity:1"><tspan
id="tspan6119"
style="stroke:#005800;stroke-opacity:1"><tspan
id="tspan6121"
style="stroke:#004d00;stroke-opacity:1"><tspan
id="tspan6123"
style="stroke:#004500;stroke-opacity:1"><tspan
id="tspan6125"
style="stroke:#003b00;stroke-opacity:1"><tspan
id="tspan6127"
style="stroke:#003300;stroke-opacity:1"><tspan
id="tspan6129"
style="stroke:#002900;stroke-opacity:1"><tspan
id="tspan6131"
style="stroke:#002200;stroke-opacity:1"><tspan
id="tspan6133"
style="stroke:#001900;stroke-opacity:1"><tspan
id="tspan6135"
style="stroke:#001300;stroke-opacity:1"><tspan
id="tspan6137"
style="stroke:#000b00;stroke-opacity:1"><tspan
id="tspan6139"
style="stroke:#000700;stroke-opacity:1"><tspan
id="tspan6141"
style="stroke:#000000;stroke-opacity:1"><tspan
id="tspan6145"
style="stroke:#d00000;stroke-opacity:1"><tspan
id="tspan6147"
style="stroke:#d10000;stroke-opacity:1"><tspan
id="tspan6149"
style="stroke:#d30000;stroke-opacity:1"><tspan
id="tspan6151"
style="stroke:#d80000;stroke-opacity:1"><tspan
id="tspan6153"
style="stroke:#db0000;stroke-opacity:1"><tspan
id="tspan6155"
style="stroke:#e10000;stroke-opacity:1"><tspan
id="tspan6157"
style="stroke:#e40000;stroke-opacity:1"><tspan
id="tspan6159"
style="stroke:#eb0000;stroke-opacity:1"><tspan
id="tspan6161"
style="stroke:#ef0000;stroke-opacity:1"><tspan
id="tspan6163"
style="stroke:#f50000;stroke-opacity:1"><tspan
id="tspan6165"
style="stroke:#f90000;stroke-opacity:1"><tspan
id="tspan6167"
style="stroke:#fd0000;stroke-opacity:1"><tspan
id="tspan6169"
style="stroke:#ff0000;stroke-opacity:1"><tspan
id="tspan6185"
style="fill:#010000;fill-opacity:1"><tspan
id="tspan6187"
style="fill:#4c0000;fill-opacity:1"><tspan
id="tspan6189"
style="fill:#810000;fill-opacity:1"><tspan
id="tspan6191"
style="fill:#c70000;fill-opacity:1"><tspan
id="tspan6193"
style="fill:#ee0000;fill-opacity:1"><tspan
id="tspan6195"
style="fill:#ff0000;fill-opacity:1"><tspan
id="tspan6279"
style="fill:#c8ab37"><tspan
id="tspan6281"
style="stroke:#c8ab37">925d8319 </tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></text>
</g>
<g
transform="translate(-582.55815,-32.55814)"
id="g6009">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:5.109797;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3414-7-0"
width="458.04636"
height="106.31878"
x="145.39543"
y="199.2028" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="152.48338"
y="240.57646"
id="text5643-6-0"><tspan
sodipodi:role="line"
x="152.48338"
y="240.57646"
id="tspan5649-6-7"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">"<tspan
id="tspan6305"
style="fill:#c8c4b7;stroke:#c8c4b7">6fcdd7fe</tspan>;<tspan
style="fill:#008000;stroke:#008000"
id="tspan5877">Bob</tspan>;Babar"</tspan><tspan
sodipodi:role="line"
x="152.48338"
y="290.57648"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="tspan5823"><tspan
id="tspan6309"
style="fill:#c8ab37;stroke:#c8ab37">⟶ebc2b5a1 </tspan></tspan><tspan
sodipodi:role="line"
x="152.48338"
y="340.57648"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="tspan5825" /></text>
</g>
<g
transform="translate(-574.4186,-84.34382)"
id="g6016">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:6.52355862;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3414-7-0-7"
width="756.63257"
height="104.90502"
x="-12.03722"
y="458.04919" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="-5.6561542"
y="498.71597"
id="text5643-6-0-7"><tspan
sodipodi:role="line"
x="-5.6561542"
y="498.71597"
id="tspan5649-6-7-5"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">"<tspan
id="tspan6289"
style="fill:#c8c4b7;stroke:#c8c4b7">925d8319</tspan>;<tspan
style="fill:#008000;stroke:#008000"
id="tspan5881">Alice</tspan>;Babar,Celeste<tspan
id="tspan6303"
style="fill:#ff0000;stroke:#ff0000">,flore</tspan>"</tspan><tspan
sodipodi:role="line"
x="-5.6561542"
y="548.71594"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="tspan5809">⟶ <tspan
id="tspan6299"
style="fill:#c8ab37;stroke:#c8ab37">6fcdd7fe </tspan></tspan><tspan
sodipodi:role="line"
x="-5.6561542"
y="598.71594"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="tspan5811" /></text>
</g>
<path
inkscape:connection-start="#g6016"
inkscape:connection-end="#g6009"
inkscape:connector-type="polyline"
id="path6317"
d="m -208.13954,373.70537 0,-100.74193"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DotM);marker-end:none"
inkscape:connection-start-point="d4"
inkscape:connection-end-point="d4"
inkscape:connector-curvature="0" />
<path
inkscape:connection-end="#g6023"
inkscape:connection-start="#g6029"
inkscape:connector-type="polyline"
id="path6321"
d="m -208.13953,785.19952 -1e-5,-100.01938"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.79999995;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DotM);marker-end:none"
inkscape:connection-start-point="d4"
inkscape:connection-end-point="d4"
inkscape:connector-curvature="0" />
<path
inkscape:connection-end="#g6023"
inkscape:connection-start="#g6016"
inkscape:connector-type="polyline"
id="path6323"
d="m -208.13954,478.6104 0,101.23285"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none;marker-end:url(#DotM)"
inkscape:connection-start-point="d4"
inkscape:connection-end-point="d4"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>