photobooth/presentation/building_a_photobooth.svg
2017-04-13 23:43:37 +02:00

12629 lines
485 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:ns1="http://sozi.baierouge.fr"
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"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="7680"
height="4320"
viewBox="0 0 2031.9999 1143"
version="1.1"
id="svg8511"
sodipodi:docname="building_a_photobooth.svg"
inkscape:version="0.92.1 r"
style="enable-background:new"
enable-background="new">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.0000002"
inkscape:cx="1714.2525"
inkscape:cy="3140.3925"
inkscape:document-units="mm"
inkscape:current-layer="group_software_screen"
showgrid="false"
showguides="true"
inkscape:window-width="1920"
inkscape:window-height="1051"
inkscape:window-x="1280"
inkscape:window-y="0"
inkscape:window-maximized="1"
units="px"
inkscape:guide-bbox="true">
<sodipodi:guide
inkscape:locked="false"
id="guide29137"
orientation="0,1"
position="845.5212,473.20867" />
<inkscape:grid
id="grid35183"
type="xygrid" />
</sodipodi:namedview>
<title
id="title18435">Building a Photobooth</title>
<defs
id="defs8505">
<filter
style="color-interpolation-filters:sRGB"
id="filter_blur_large"
inkscape:collect="always"
inkscape:label="filter_blur_large">
<feGaussianBlur
id="feGaussianBlur05"
stdDeviation="0.5"
inkscape:collect="always" />
</filter>
<filter
style="color-interpolation-filters:sRGB"
id="filter_blur_mid"
inkscape:label="filter_blur_mid">
<feGaussianBlur
id="feGaussianBlur02"
stdDeviation="0.2"
inkscape:collect="always" />
</filter>
<filter
style="color-interpolation-filters:sRGB"
id="filter_blur_small"
inkscape:label="filter_blur_small">
<feGaussianBlur
id="feGaussianBlur005"
stdDeviation="0.05"
inkscape:collect="always" />
</filter>
<pattern
patternTransform="matrix(0.0477833,0.0128035,0.0128035,-0.0477833,-7.6,5.06328)"
id="pattern4748"
xlink:href="#pattern124-0"
inkscape:collect="always" />
<pattern
id="pattern124-0"
height="141.538"
width="157.385"
y="0"
x="0"
patternUnits="userSpaceOnUse"
patternTransform="matrix(0.477833,0.128035,0.128035,-0.477833,-76,50.6328)">
<g
id="g122-6"
transform="scale(0.1)">
<g
id="g120-8">
<g
id="g118-9"
clip-path="url(#clipPath40-6)">
<g
id="g116-2"
clip-path="url(#clipPath44-3)">
<path
id="path46-6"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 257.141,1414.09 c -1.5,43.87 -21.141,150.72 -89.352,131.67 -50.031,-13.96 -66.242,-89.98 -66.23,-133.64 0.007,-47.5 16.019,-124.6 72.211,-130.2 63.246,-6.29 81.757,85 83.371,132.17 0.531,15.61 29.875,11.54 29.418,-1.97 -2.102,-61.5 -27.942,-157.25 -106.032,-156.12 -76.687,1.1 -108.2575,95.27 -108.3864,158.09 -0.1328,61.51 28.6794,154.92 104.1604,156.07 79.109,1.2 108.117,-95.23 110.258,-158.04 0.531,-15.54 -28.954,-11.67 -29.418,1.97" />
<path
id="path48-6"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 412.359,1270.89 0,292.19 c 0,5.41 28.981,1.09 28.981,-7.76 l 0,-292.19 c 0,-5.41 -28.981,-1.09 -28.981,7.76" />
<path
id="path50-4"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 730.984,1414.09 c -1.492,43.87 -21.14,150.72 -89.343,131.67 -50.036,-13.96 -66.243,-89.98 -66.231,-133.64 0.012,-47.5 16.016,-124.6 72.207,-130.2 63.25,-6.29 81.758,85 83.367,132.17 0.532,15.61 29.883,11.54 29.426,-1.97 -2.097,-61.5 -27.937,-157.25 -106.035,-156.12 -76.687,1.1 -108.258,95.27 -108.391,158.09 -0.125,61.51 28.684,154.92 104.161,156.07 79.113,1.2 108.125,-95.23 110.265,-158.04 0.528,-15.54 -28.957,-11.67 -29.426,1.97" />
<path
id="path52-9"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1391.07,1414.09 c -1.5,43.87 -21.14,150.72 -89.35,131.67 -50.03,-13.96 -66.24,-89.98 -66.23,-133.64 0.01,-47.5 16.02,-124.6 72.22,-130.2 63.24,-6.29 81.75,85 83.36,132.17 0.53,15.61 29.88,11.54 29.42,-1.97 -2.1,-61.5 -27.94,-157.25 -106.03,-156.12 -76.69,1.1 -108.26,95.27 -108.39,158.09 -0.13,61.51 28.68,154.92 104.16,156.07 79.12,1.2 108.12,-95.23 110.26,-158.04 0.54,-15.54 -28.95,-11.67 -29.42,1.97" />
<path
id="path54-5"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 886.211,1270.89 0,292.19 c 0,5.41 28.977,1.09 28.977,-7.76 l 0,-292.19 c 0,-5.41 -28.977,-1.09 -28.977,7.76" />
<path
id="path56-0"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1064.67,1270.89 0,292.19 c 0,5.41 28.98,1.09 28.98,-7.76 l 0,-292.19 c 0,-5.41 -28.98,-1.09 -28.98,7.76" />
<path
id="path58-4"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1518.88,1270.89 0,292.19 c 0,5.41 28.98,1.09 28.98,-7.76 l 0,-292.19 c 0,-5.41 -28.98,-1.09 -28.98,7.76" />
<path
id="path60-8"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1044.06,1060.24 c -1.5,43.87 -21.14,150.73 -89.353,131.67 -50.027,-13.96 -66.23,-89.97 -66.223,-133.64 0.012,-47.5 16.02,-124.598 72.207,-130.196 63.259,-6.289 81.759,85.006 83.369,132.166 0.53,15.61 29.89,11.55 29.43,-1.97 -2.1,-61.5 -27.95,-157.247 -106.041,-156.122 -76.687,1.106 -108.261,95.274 -108.386,158.092 -0.125,61.51 28.679,154.93 104.16,156.07 79.107,1.2 108.117,-95.22 110.267,-158.04 0.52,-15.54 -28.96,-11.67 -29.43,1.97" />
<path
id="path62-7"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1199.28,917.043 0,292.197 c 0,5.41 28.98,1.08 28.98,-7.77 l 0,-292.185 c 0,-5.406 -28.98,-1.094 -28.98,7.758" />
<path
id="path64-1"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1517.91,1060.24 c -1.5,43.87 -21.14,150.73 -89.35,131.67 -50.02,-13.96 -66.24,-89.97 -66.23,-133.64 0.01,-47.5 16.02,-124.598 72.21,-130.196 63.25,-6.289 81.76,85.006 83.37,132.166 0.53,15.61 29.88,11.55 29.42,-1.97 -2.1,-61.5 -27.94,-157.247 -106.03,-156.122 -76.69,1.106 -108.26,95.274 -108.39,158.092 -0.13,61.51 28.68,154.93 104.16,156.07 79.11,1.2 108.13,-95.22 110.26,-158.04 0.53,-15.54 -28.95,-11.67 -29.42,1.97" />
<path
id="path66-7"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 604.145,1060.24 c -1.5,43.87 -21.137,150.73 -89.348,131.67 -50.031,-13.96 -66.242,-89.97 -66.227,-133.64 0.008,-47.5 16.016,-124.598 72.207,-130.196 63.25,-6.289 81.762,85.006 83.368,132.166 0.535,15.61 29.878,11.55 29.418,-1.97 -2.098,-61.5 -27.938,-157.247 -106.024,-156.122 -76.695,1.106 -108.262,95.274 -108.394,158.092 -0.125,61.51 28.683,154.93 104.16,156.07 79.113,1.2 108.121,-95.22 110.258,-158.04 0.539,-15.54 -28.946,-11.67 -29.418,1.97" />
<path
id="path68-2"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 99.2852,917.043 0,292.197 c 0,5.41 28.9808,1.08 28.9808,-7.77 l 0,-292.185 c 0,-5.406 -28.9808,-1.094 -28.9808,7.758" />
<path
id="path70-7"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 277.742,917.043 0,292.197 c 0,5.41 28.981,1.08 28.981,-7.77 l 0,-292.185 c 0,-5.406 -28.981,-1.094 -28.981,7.758" />
<path
id="path72-2"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 731.953,917.043 0,292.197 c 0,5.41 28.985,1.08 28.985,-7.77 l 0,-292.185 c 0,-5.406 -28.985,-1.094 -28.985,7.758" />
<path
id="path74-2"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 257.141,706.406 c -1.5,43.86 -21.141,150.711 -89.352,131.668 -50.031,-13.972 -66.242,-89.976 -66.23,-133.648 0.007,-47.5 16.019,-124.602 72.211,-130.192 63.246,-6.296 81.757,84.996 83.371,132.172 0.531,15.598 29.875,11.532 29.418,-1.98 -2.102,-61.504 -27.942,-157.242 -106.032,-156.125 -76.687,1.101 -108.2575,95.273 -108.3864,158.105 -0.1328,61.492 28.6794,154.91 104.1604,156.055 79.109,1.199 108.117,-95.215 110.258,-158.035 0.531,-15.531 -28.954,-11.672 -29.418,1.98" />
<path
id="path76-6"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 412.359,563.199 0,292.192 c 0,5.41 28.981,1.086 28.981,-7.762 l 0,-292.191 c 0,-5.411 -28.981,-1.09 -28.981,7.761" />
<path
id="path78-1"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 730.984,706.406 c -1.492,43.86 -21.14,150.711 -89.343,131.668 -50.036,-13.972 -66.243,-89.976 -66.231,-133.648 0.012,-47.5 16.016,-124.602 72.207,-130.192 63.25,-6.296 81.758,84.996 83.367,132.172 0.532,15.598 29.883,11.532 29.426,-1.98 -2.097,-61.504 -27.937,-157.242 -106.035,-156.125 -76.687,1.101 -108.258,95.273 -108.391,158.105 -0.125,61.492 28.684,154.91 104.161,156.055 79.113,1.199 108.125,-95.215 110.265,-158.035 0.528,-15.531 -28.957,-11.672 -29.426,1.98" />
<path
id="path80-0"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1391.07,706.406 c -1.5,43.86 -21.14,150.711 -89.35,131.668 -50.03,-13.972 -66.24,-89.976 -66.23,-133.648 0.01,-47.5 16.02,-124.602 72.22,-130.192 63.24,-6.296 81.75,84.996 83.36,132.172 0.53,15.598 29.88,11.532 29.42,-1.98 -2.1,-61.504 -27.94,-157.242 -106.03,-156.125 -76.69,1.101 -108.26,95.273 -108.39,158.105 -0.13,61.492 28.68,154.91 104.16,156.055 79.12,1.199 108.12,-95.215 110.26,-158.035 0.54,-15.531 -28.95,-11.672 -29.42,1.98" />
<path
id="path82-6"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 886.211,563.199 0,292.192 c 0,5.41 28.977,1.086 28.977,-7.762 l 0,-292.191 c 0,-5.411 -28.977,-1.09 -28.977,7.761" />
<path
id="path84-1"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1064.67,563.199 0,292.192 c 0,5.41 28.98,1.086 28.98,-7.762 l 0,-292.191 c 0,-5.411 -28.98,-1.09 -28.98,7.761" />
<path
id="path86-5"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1518.88,563.199 0,292.192 c 0,5.41 28.98,1.086 28.98,-7.762 l 0,-292.191 c 0,-5.411 -28.98,-1.09 -28.98,7.761" />
<path
id="path88-9"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1044.06,352.555 c -1.5,43.863 -21.14,150.722 -89.353,131.668 -50.027,-13.969 -66.23,-89.977 -66.223,-133.649 0.012,-47.5 16.02,-124.597 72.207,-130.187 63.259,-6.289 81.759,85 83.369,132.168 0.53,15.597 29.89,11.543 29.43,-1.981 -2.1,-61.496 -27.95,-157.238 -106.041,-156.117 -76.687,1.102 -108.261,95.27 -108.386,158.098 -0.125,61.504 28.679,154.922 104.16,156.062 79.107,1.196 108.117,-95.222 110.267,-158.043 0.52,-15.531 -28.96,-11.668 -29.43,1.981" />
<path
id="path90-4"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1199.28,209.352 0,292.191 c 0,5.41 28.98,1.09 28.98,-7.758 l 0,-292.191 c 0,-5.41 -28.98,-1.09 -28.98,7.758" />
<path
id="path92-9"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1517.91,352.555 c -1.5,43.863 -21.14,150.722 -89.35,131.668 -50.02,-13.969 -66.24,-89.977 -66.23,-133.649 0.01,-47.5 16.02,-124.597 72.21,-130.187 63.25,-6.289 81.76,85 83.37,132.168 0.53,15.597 29.88,11.543 29.42,-1.981 -2.1,-61.496 -27.94,-157.238 -106.03,-156.117 -76.69,1.102 -108.26,95.27 -108.39,158.098 -0.13,61.504 28.68,154.922 104.16,156.062 79.11,1.196 108.13,-95.222 110.26,-158.043 0.53,-15.531 -28.95,-11.668 -29.42,1.981" />
<path
id="path94-0"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 604.145,352.555 c -1.5,43.863 -21.137,150.722 -89.348,131.668 -50.031,-13.969 -66.242,-89.977 -66.227,-133.649 0.008,-47.5 16.016,-124.597 72.207,-130.187 63.25,-6.289 81.762,85 83.368,132.168 0.535,15.597 29.878,11.543 29.418,-1.981 -2.098,-61.496 -27.938,-157.238 -106.024,-156.117 -76.695,1.102 -108.262,95.27 -108.394,158.098 -0.125,61.504 28.683,154.922 104.16,156.062 79.113,1.196 108.121,-95.222 110.258,-158.043 0.539,-15.531 -28.946,-11.668 -29.418,1.981" />
<path
id="path96-9"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 99.2852,209.352 0,292.191 c 0,5.41 28.9808,1.09 28.9808,-7.758 l 0,-292.191 c 0,-5.41 -28.9808,-1.09 -28.9808,7.758" />
<path
id="path98-1"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 277.742,209.352 0,292.191 c 0,5.41 28.981,1.09 28.981,-7.758 l 0,-292.191 c 0,-5.41 -28.981,-1.09 -28.981,7.758" />
<path
id="path100-7"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 731.953,209.352 0,292.191 c 0,5.41 28.985,1.09 28.985,-7.758 l 0,-292.191 c 0,-5.41 -28.985,-1.09 -28.985,7.758" />
<path
id="path102-7"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="M 257.141,-1.28906 C 255.641,42.5703 236,149.43 167.789,130.383 117.758,116.41 101.547,40.4023 101.559,-3.26953 101.566,-50.7734 117.578,-127.871 173.77,-133.461 237.016,-139.75 255.527,-48.4609 257.141,-1.28906 257.672,14.3125 287.016,10.25 286.559,-3.26953 284.457,-64.7695 258.617,-160.508 180.527,-159.391 103.84,-158.289 72.2695,-64.1211 72.1406,-1.28906 72.0078,60.2109 100.82,153.629 176.301,154.77 255.41,155.973 284.418,59.5508 286.559,-3.26953 287.09,-18.7969 257.605,-14.9414 257.141,-1.28906" />
<path
id="path104-1"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 412.359,-144.492 0,292.187 c 0,5.41 28.981,1.09 28.981,-7.757 l 0,-292.196 c 0,-5.406 -28.981,-1.086 -28.981,7.766" />
<path
id="path106-1"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="M 730.984,-1.28906 C 729.492,42.5703 709.844,149.43 641.641,130.383 591.605,116.41 575.398,40.4023 575.41,-3.26953 575.422,-50.7734 591.426,-127.871 647.617,-133.461 c 63.25,-6.289 81.758,85.0001 83.367,132.17194 C 731.516,14.3125 760.867,10.25 760.41,-3.26953 758.313,-64.7695 732.473,-160.508 654.375,-159.391 577.688,-158.289 546.117,-64.1211 545.984,-1.28906 545.859,60.2109 574.668,153.629 650.145,154.77 729.258,155.973 758.27,59.5508 760.41,-3.26953 760.938,-18.7969 731.453,-14.9414 730.984,-1.28906" />
<path
id="path108-5"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1391.07,-1.28906 c -1.5,43.85936 -21.14,150.71906 -89.35,131.67206 -50.03,-13.973 -66.24,-89.9807 -66.23,-133.65253 0.01,-47.50387 16.02,-124.60147 72.22,-130.19147 63.24,-6.289 81.75,85.0001 83.36,132.17194 0.53,15.60156 29.88,11.53906 29.42,-1.98047 -2.1,-61.49997 -27.94,-157.23847 -106.03,-156.12147 -76.69,1.102 -108.26,95.2699 -108.39,158.10194 -0.13,61.49996 28.68,154.91806 104.16,156.05906 79.12,1.203 108.12,-95.2192 110.26,-158.03953 0.54,-15.52737 -28.95,-11.67187 -29.42,1.98047" />
<path
id="path110-9"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 886.211,-144.492 0,292.187 c 0,5.41 28.977,1.09 28.977,-7.757 l 0,-292.196 c 0,-5.406 -28.977,-1.086 -28.977,7.766" />
<path
id="path112-7"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1064.67,-144.492 0,292.187 c 0,5.41 28.98,1.09 28.98,-7.757 l 0,-292.196 c 0,-5.406 -28.98,-1.086 -28.98,7.766" />
<path
id="path114-7"
style="fill:#171717;fill-opacity:1;fill-rule:nonzero"
d="m 1518.88,-144.492 0,292.187 c 0,5.41 28.98,1.09 28.98,-7.757 l 0,-292.196 c 0,-5.406 -28.98,-1.086 -28.98,7.766" />
</g>
</g>
</g>
</g>
</pattern>
<clipPath
id="clipPath40-6"
clipPathUnits="userSpaceOnUse">
<path
inkscape:connector-curvature="0"
id="path38-7"
d="M 0,0 H 1574 V 1416 H 0 Z" />
</clipPath>
<clipPath
id="clipPath44-3"
clipPathUnits="userSpaceOnUse">
<path
inkscape:connector-curvature="0"
id="path42-6"
d="M 0,1415.38 H 1573.85 V 0 H 0 Z" />
</clipPath>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter10955">
<feBlend
inkscape:collect="always"
mode="darken"
in2="BackgroundImage"
id="feBlend10957" />
</filter>
<filter
style="color-interpolation-filters:sRGB"
id="filter_blur_mid-4"
inkscape:label="filter_blur_mid">
<feGaussianBlur
id="feGaussianBlur02-2"
stdDeviation="0.2"
inkscape:collect="always" />
</filter>
</defs>
<metadata
id="metadata8508">
<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>Building a Photobooth</dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-nc-sa/4.0/" />
<dc:date>April 2017</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>Andreas Frisch &lt;photobooth@schaffenburg.org&gt;</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>CC</dc:title>
</cc:Agent>
</dc:rights>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-nc-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:prohibits
rdf:resource="http://creativecommons.org/ns#CommercialUse" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
style="display:inline;filter:url(#filter10955)"
inkscape:groupmode="layer"
id="layer_title"
inkscape:label="Title"
transform="translate(0,59.266667)">
<text
text-anchor="middle"
font-family="Sans"
font-size="42.333"
font-weight="400"
id="text_subtitle"
y="289.518"
x="1016"
style="line-height:125%;-inkscape-font-specification:'Sans, Normal';;text-align:center;font-family:Sans;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:35.27777778px;text-anchor:middle;writing-mode:lr;">
<tspan
sodipodi:role="line"
style="-inkscape-font-specification:'Sans, Normal';;text-align:center;font-family:Sans;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:35.27777778px;text-anchor:middle;writing-mode:lr;"
y="289.518"
x="1016"
id="tspan18439">Andreas Frisch</tspan>
<tspan
sodipodi:role="line"
id="tspan18445"
style="-inkscape-font-specification:'Sans, Normal';;text-align:center;font-family:Sans;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:35.27777778px;text-anchor:middle;writing-mode:lr;"
y="342.435"
x="1016">&lt;fraxinas@schaffenburg.org&gt;</tspan>
<tspan
sodipodi:role="line"
id="tspan18443"
style="-inkscape-font-specification:'Sans, Normal';;text-align:center;font-family:Sans;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:35.27777778px;text-anchor:middle;writing-mode:lr;"
y="395.352"
x="1016">Easterhegg 2017-04-15</tspan>
</text>
<path
d="M1.462-57.805h2029.076v1140.076H1.462z"
enable-background="new"
stroke-dashoffset="23"
stroke-width="2.924"
stroke="#000"
fill="none"
id="rect_title" />
<path
d="M 0.13335117,-59.133376 H 2031.8666 V 1083.5999 H 0.13335117 Z"
visibility="hidden"
id="rect_final_overview"
style="visibility:hidden;fill:none;stroke:#e6e6e6;stroke-width:0.26670232;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:23;enable-background:new"
inkscape:connector-curvature="0" />
<g
enable-background="new"
transform="matrix(3.58332 0 0 -3.58332 816.699 1266.618)"
id="g_schaffenburg_logo">
<g
id="g5536">
<path
fill="#171717"
id="path14"
d="M55.157 84.607c11.042 3.367 22.33 9.387 25.585 21.129 3.445 12.422 4.71 25.702 5.606 38.535.025.378-.362.774-.742.742-7.238-.597-14.694.668-21.68 2.418-2.638.661-5.024 1.559-7.536 2.537-.52.203-.783.687-1.376.69-.584.003-.715-.408-1.221-.584-2.364-.817-4.555-1.818-7.016-2.455-7.19-1.858-14.892-3.199-22.353-2.585-.381.032-.768-.366-.742-.741.895-12.834 2.16-26.113 5.605-38.537 3.248-11.71 14.461-17.76 25.475-21.149.915-.28 1.307 1.151.395 1.431-5.612 1.727-11.214 4.328-15.97 7.785-7.668 5.575-9.183 13.931-10.73 22.763-1.423 8.131-2.351 16.355-3.045 24.58-.069.822-.133 1.647-.197 2.469-.096 1.209-.652-.153-.434-.111 3.872.741 8.321.065 12.307.629 4.748.672 9.656 1.646 14.193 3.249 1.213.428 2.768 1.633 3.967 1.871-.652-.128-.467.03.547-.669 2.302-1.591 5.78-2.135 8.41-2.77 5.312-1.287 10.727-2.182 16.195-2.37 1.463-.05 2.955-.107 4.415.016 1.232.102.083 1.199 0 .134-.514-6.54-1.18-13.069-2.08-19.569-1.22-8.799-1.907-20.918-8.596-27.475-5.166-5.06-12.512-8.439-19.377-10.532-.91-.278-.522-1.711.395-1.43" />
<path
stroke-miterlimit="10"
stroke-width=".75"
stroke="#171717"
fill="none"
id="path16"
d="M27.049 126.421c2.127.299 11.827 1.656 15.512 2.019 4.118.406 10.136.46 12.552.462h.072c2.416-.002 8.434-.056 12.553-.462 3.684-.363 13.384-1.72 15.51-2.019h.701c1.233 9.588 1.79 17.7 1.79 17.7s-6.865-.627-16.285 1.215c-12.479 2.441-14.158 4.42-14.158 4.42l-.294.021s-1.68-1.979-14.158-4.42c-9.42-1.842-16.285-1.215-16.285-1.215s.558-8.124 1.793-17.721z" />
<path
fill="#171717"
id="path18"
d="M54.422 107.904a2.139 2.139 0 1 0-4.264-.34 2.139 2.139 0 0 0 4.264.34m2.847.444c-.037.301-.1.598-.19.886l1.08 1.395a6.408 6.408 0 0 1-.627 1.025l-1.637-.449a4.838 4.838 0 0 1-.87.698l-.07 1.793c-.33.145-.666.261-1.008.349l-.98-1.418c-.454.05-.91.037-1.351-.039l-1.226 1.351a6.525 6.525 0 0 1-.867-.346l.166-1.773a4.813 4.813 0 0 1-1.103-1.027l-1.82.248a6.507 6.507 0 0 1-.385-.774l1.309-1.294a4.824 4.824 0 0 1-.14-1.501l-1.544-.972c.058-.295.138-.586.238-.871l1.872-.152c.21-.395.476-.764.794-1.094l-.548-1.709a6.56 6.56 0 0 1 .706-.481c.048-.029.096-.055.145-.082l1.525 1.082c.356-.13.72-.217 1.083-.263l.667-1.631a6.49 6.49 0 0 1 1.156.129l.46 1.766c.285.104.558.235.82.39l1.542-.813c.321.266.62.563.89.893l-.754 1.593a5.237 5.237 0 0 1 .364.741l1.705.369c.093.421.143.844.153 1.268l-1.555.713" />
<path
stroke-miterlimit="10"
stroke-width=".792"
stroke="#171717"
fill="none"
id="path20"
d="M54.422 107.904a2.139 2.139 0 1 0-4.264-.34 2.139 2.139 0 0 0 4.264.34zm2.847.444c-.037.301-.1.598-.19.886l1.08 1.395a6.408 6.408 0 0 1-.627 1.025l-1.637-.449a4.838 4.838 0 0 1-.87.698l-.07 1.793c-.33.145-.666.261-1.008.349l-.98-1.418c-.454.05-.91.037-1.351-.039l-1.226 1.351a6.525 6.525 0 0 1-.867-.346l.166-1.773a4.813 4.813 0 0 1-1.104-1.027l-1.818.248a6.507 6.507 0 0 1-.387-.774l1.31-1.294a4.824 4.824 0 0 1-.14-1.501l-1.544-.972c.058-.295.138-.586.238-.871l1.872-.152c.21-.395.476-.764.794-1.094l-.548-1.709a6.56 6.56 0 0 1 .706-.481c.048-.029.096-.055.145-.082l1.525 1.082c.356-.13.72-.217 1.083-.263l.667-1.631a6.49 6.49 0 0 1 1.156.129l.46 1.766c.285.104.558.235.82.39l1.542-.813c.321.266.62.563.89.893l-.754 1.593a5.237 5.237 0 0 1 .364.741l1.705.369c.093.421.143.844.153 1.268z" />
<path
stroke-miterlimit="10"
stroke-width="1.385"
stroke="#171717"
fill="none"
id="path22"
d="M36.587 110.742l-.202.15 6.926 9.297.202-.15z" />
<path
stroke-miterlimit="10"
stroke-width="1.385"
stroke="#171717"
fill="none"
id="path24"
d="M44.39 111.925l.156.197-9.08 7.206-.156-.196z" />
<path
fill="#fff"
id="path26"
d="M42.05 115.904a2.138 2.138 0 1 0-4.243-.554 2.139 2.139 0 1 0 4.242.554" />
<path
stroke-miterlimit="10"
stroke-width="1.187"
stroke="#171717"
fill="none"
id="path28"
d="M42.05 115.904a2.138 2.138 0 1 0-4.243-.554 2.139 2.139 0 1 0 4.242.554z" />
<path
fill="#171717"
id="path30"
d="M40.669 109.952a5.724 5.724 0 1 0-1.48 11.352 5.724 5.724 0 0 0 1.48-11.352m8.746 6.171a9.392 9.392 0 0 1-.19 1.461l-2.07.24a7.478 7.478 0 0 1-.556 1.347l1.298 1.631c-.27.414-.57.803-.897 1.168l-1.912-.827c-.355.333-.742.63-1.155.888l.308 2.061c-.436.222-.89.412-1.359.566l-1.243-1.673a7.504 7.504 0 0 1-1.444.19l-.763 1.94a9.62 9.62 0 0 1-1.46-.191l-.241-2.07a7.564 7.564 0 0 1-1.347-.555l-1.631 1.298a9.495 9.495 0 0 1-1.168-.897l.827-1.912a7.607 7.607 0 0 1-.888-1.155l-2.06.308a9.5 9.5 0 0 1-.567-1.359l1.673-1.243a7.455 7.455 0 0 1-.19-1.444l-1.94-.764a9.956 9.956 0 0 1 .19-1.46l2.072-.24c.142-.472.33-.923.554-1.347l-1.297-1.632c.27-.413.57-.803.896-1.168l1.912.828a7.65 7.65 0 0 1 1.155-.889l-.308-2.06c.436-.224.89-.413 1.359-.566l1.243 1.673a7.504 7.504 0 0 1 1.444-.191l.764-1.94a10.014 10.014 0 0 1 1.46.191l.24 2.071c.472.142.923.329 1.348.554l1.631-1.297c.413.269.804.569 1.168.897l-.827 1.912c.332.355.629.742.888 1.154l2.06-.308c.223.435.413.89.567 1.359l-1.673 1.244c.109.468.173.951.19 1.444l1.939.763" />
<path
fill="#171717"
id="path32"
d="M43.063 99.565c-.536.732-.361 1.773.393 2.324.753.552 1.798.407 2.335-.325.536-.732.36-1.771-.393-2.323-.755-.552-1.8-.407-2.336.324m1.415-2.367l1.118-1.173c.231.06.458.137.68.232l.168 1.612a3.37 3.37 0 0 1 .925 1.057l1.575.381c.064.232.11.468.138.706l-1.31.95a3.351 3.351 0 0 1-.453 1.33l.455 1.553a3.913 3.913 0 0 1-.542.472l-1.477-.657a3.36 3.36 0 0 1-1.377.271l-1.119 1.173a4.63 4.63 0 0 1-.68-.232l-.169-1.61a3.366 3.366 0 0 1-.924-1.058l-1.575-.382a4.695 4.695 0 0 1-.137-.705l1.31-.952c.055-.464.208-.918.452-1.328l-.455-1.553a4.5 4.5 0 0 1 .541-.474l1.478.659c.44-.19.91-.28 1.378-.272" />
<path
stroke-miterlimit="10"
stroke-width=".89"
stroke="#171717"
fill="none"
id="path34"
d="M43.063 99.565c-.536.732-.361 1.773.393 2.324.753.552 1.798.407 2.335-.325.536-.732.36-1.771-.393-2.323-.755-.552-1.8-.407-2.336.324zm1.414-2.367l1.118-1.173c.231.06.458.137.68.232l.168 1.612a3.37 3.37 0 0 1 .925 1.057l1.575.381c.064.232.11.468.138.706l-1.31.95a3.351 3.351 0 0 1-.453 1.33l.455 1.553a3.913 3.913 0 0 1-.542.472l-1.477-.657a3.36 3.36 0 0 1-1.377.271l-1.119 1.173a4.63 4.63 0 0 1-.68-.232l-.169-1.61a3.366 3.366 0 0 1-.924-1.058l-1.575-.382a4.695 4.695 0 0 1-.137-.705l1.31-.952c.055-.464.208-.918.452-1.328l-.455-1.553a4.5 4.5 0 0 1 .541-.474l1.478.659c.44-.19.91-.28 1.378-.272z" />
<path
stroke-miterlimit="10"
stroke-width=".099"
stroke="#fff"
fill="none"
id="path36"
d="M42.792 102.796a2.765 2.765 0 1 0 3.269-4.462 2.765 2.765 0 0 0-3.269 4.462z" />
<path
fill="url(#pattern4748)"
id="path126"
d="M55.057 85.758c.525-.604 17.294 5.343 21.273 12.335 3.806 6.686 5.64 18.43 7.167 28.276l.101-.015s-11.779 1.669-15.928 2.078c-4.158.409-10.256.461-12.624.461.142-13.721-.131-29.413.01-43.135" />
<path
fill="#fff"
id="path128"
d="M55.148 98.843l24.484 6.501c1.854 5.292 2.937 11.482 3.997 17.459l-28.653-7.613.172-16.347" />
<path
stroke-miterlimit="10"
stroke-width=".198"
stroke="#171717"
fill="none"
id="path130"
d="M83.6 126.332s-11.78 1.67-15.93 2.078c-4.16.41-10.257.461-12.624.461.141-13.719-.131-29.412.011-43.134" />
<path
fill="#171717"
id="path132"
d="M56.601 111.103c.514-1.591 2.048-2.779 3.775-2.314 1.66.447 2.546 2.281 2.104 3.896-.428 1.564-2.002 2.703-3.636 2.343-1.807-.399-2.607-2.23-2.243-3.925.12-.56.98-.323.86.237-.25 1.16.24 2.47 1.48 2.799 1.198.32 2.375-.544 2.681-1.691.287-1.077-.206-2.309-1.275-2.72-1.293-.497-2.493.39-2.887 1.612-.176.543-1.036.311-.859-.237" />
<path
fill="#171717"
id="path134"
d="M72.422 107.921c.514-1.591 2.049-2.778 3.775-2.314 1.66.448 2.546 2.282 2.105 3.897-.429 1.564-2.003 2.703-3.637 2.343-1.806-.399-2.606-2.23-2.243-3.926.12-.559.98-.323.86.238-.25 1.159.24 2.47 1.482 2.8 1.196.319 2.374-.545 2.68-1.692.286-1.078-.207-2.308-1.276-2.721-1.293-.496-2.492.39-2.887 1.613-.176.543-1.036.311-.86-.238" />
<path
fill="#171717"
id="path136"
d="M63.831 113.195c.513-1.59 2.048-2.779 3.775-2.314 1.66.448 2.546 2.282 2.104 3.896-.428 1.564-2.002 2.703-3.636 2.343-1.806-.398-2.607-2.229-2.243-3.925.12-.559.98-.322.86.237-.25 1.16.24 2.47 1.48 2.8 1.198.319 2.375-.544 2.681-1.691.288-1.078-.205-2.309-1.275-2.721-1.293-.496-2.493.391-2.887 1.612-.175.544-1.036.312-.859-.237" />
<path
fill="#171717"
id="path138"
d="M61.407 104.996c.514-1.59 2.048-2.778 3.775-2.314 1.661.448 2.546 2.282 2.104 3.897-.427 1.564-2.002 2.703-3.636 2.342-1.807-.398-2.607-2.229-2.243-3.925.12-.56.979-.322.86.238-.25 1.16.24 2.47 1.481 2.8 1.197.318 2.374-.545 2.68-1.692.287-1.078-.205-2.308-1.275-2.721-1.293-.496-2.493.391-2.886 1.613-.177.543-1.037.311-.86-.238" />
<path
fill="#171717"
id="path140"
d="M73.83 115.967c.514-1.59 2.048-2.778 3.776-2.314 1.659.447 2.546 2.281 2.103 3.896-.428 1.564-2.002 2.703-3.636 2.342-1.807-.398-2.607-2.229-2.243-3.924.12-.56.98-.322.86.237-.25 1.16.24 2.469 1.481 2.8 1.197.319 2.374-.545 2.68-1.691.287-1.077-.206-2.309-1.275-2.721-1.293-.497-2.493.39-2.887 1.612-.176.543-1.036.311-.859-.237" />
<path
fill="#171717"
id="path142"
d="M70.799 117.776l1.332-4.971c.147-.553 1.007-.317.86.237-.445 1.657-.89 3.314-1.333 4.971-.149.553-1.009.318-.86-.237" />
<path
fill="#171717"
id="path144"
d="M68.865 109.632l1.332-4.971c.147-.552 1.006-.318.859.237l-1.333 4.971c-.149.553-1.008.319-.859-.237" />
<path
fill="#171717"
id="path146"
d="M57.79 106.665l1.332-4.971c.148-.553 1.007-.318.859.237l-1.332 4.971c-.149.553-1.008.318-.86-.237" />
<path
fill="#171717"
id="path148"
d="M54.6 143.342c-.307 0-.555.201-.555.451 0 .248.248.451.555.451.307 0 .555-.203.555-.451 0-.25-.248-.451-.555-.451m.555 2.303c-1.688 0-3.057-1.164-3.057-2.599 0-1.273 1.079-2.333 2.502-2.553.18-.03.366-.044.555-.044.19 0 .376.014.557.044 1.422.221 2.5 1.28 2.5 2.553 0 1.435-1.369 2.599-3.057 2.599" />
<path
stroke-miterlimit="10"
stroke-width=".099"
stroke="#171717"
fill="none"
id="path150"
d="M54.6 143.342c-.307 0-.555.201-.555.451 0 .248.248.451.555.451.307 0 .555-.203.555-.451 0-.25-.248-.451-.555-.451zm.555 2.303c-1.688 0-3.057-1.164-3.057-2.599 0-1.273 1.079-2.333 2.502-2.553.18-.03.366-.044.555-.044.19 0 .376.014.557.044 1.422.221 2.5 1.28 2.5 2.553 0 1.435-1.369 2.599-3.057 2.599z" />
<path
fill="#171717"
id="path152"
d="M55.711 143.046v-12.625H54.6v12.393c.308 0 .556.104.556.232h.555" />
<path
stroke-miterlimit="10"
stroke-width=".099"
stroke="#171717"
fill="none"
id="path154"
d="M55.711 143.046v-12.625H54.6v12.393c.308 0 .556.104.556.232z" />
<path
stroke-miterlimit="10"
stroke-width=".693"
stroke="#171717"
fill="none"
id="path156"
d="M60.797 133.529c0-.392-2.466-.71-5.51-.71-3.042 0-5.508.318-5.508.71 0 .392 2.465.71 5.508.71 3.044 0 5.51-.318 5.51-.71z" />
<path
stroke-miterlimit="10"
stroke-width=".693"
stroke="#171717"
fill="none"
id="path158"
d="M59.323 136.105c0-.392-1.866-.71-4.168-.71-2.301 0-4.167.318-4.167.71 0 .391 1.866.709 4.168.709 2.301 0 4.167-.318 4.167-.709z" />
<path
stroke-miterlimit="10"
stroke-width=".693"
stroke="#171717"
fill="none"
id="path160"
d="M58.212 138.588c0-.325-1.368-.588-3.056-.588s-3.058.263-3.058.588c0 .325 1.37.589 3.058.589 1.688 0 3.056-.264 3.056-.589z" />
<path
fill="#fff"
id="path162"
d="M53.78 143.793c0 .412.366.746.82.746.453 0 .82-.334.82-.746 0-.413-.367-.747-.82-.747-.453 0-.82.334-.82.747" />
<path
fill="#171717"
id="path164"
d="M55.304 85.022c11.042 3.367 22.329 9.387 25.585 21.128 3.445 12.423 4.71 25.702 5.605 38.536.026.378-.362.774-.742.742-7.237-.597-14.692.668-21.679 2.418-2.637.661-5.025 1.559-7.536 2.537-.52.203-.783.687-1.376.69-.584.003-.714-.409-1.221-.584-2.364-.817-4.555-1.818-7.016-2.455-7.19-1.858-14.892-3.2-22.352-2.585-.382.032-.769-.366-.743-.742.895-12.834 2.16-26.112 5.605-38.536 3.248-11.71 14.46-17.76 25.475-21.15.915-.28 1.307 1.152.395 1.432-5.613 1.727-11.215 4.328-15.97 7.785-7.668 5.574-9.184 13.931-10.73 22.762-1.423 8.132-2.351 16.357-3.045 24.58-.069.823-.133 1.647-.198 2.47-.095 1.209-.65-.153-.434-.111 3.873.741 8.322.065 12.308.629 4.748.672 9.656 1.646 14.193 3.249 1.213.428 2.768 1.633 3.967 1.871-.652-.129-.467.03.547-.67 2.302-1.59 5.78-2.134 8.41-2.77 5.311-1.286 10.727-2.182 16.195-2.369 1.463-.05 2.955-.107 4.415.015 1.232.103.083 1.2 0 .135-.514-6.54-1.179-13.07-2.08-19.569-1.221-8.799-1.907-20.919-8.597-27.475-5.165-5.061-12.51-8.439-19.376-10.532-.91-.278-.522-1.711.395-1.431" />
<path
fill="#171717"
id="path166"
d="M82.976 137.645c-.83.175-1.863-1.452-2.84-2.969-.938-1.428-1.887-2.85-2.585-2.468-.7.381-.537 2.032-.4 3.575.122 1.524.226 3.042-.602 3.217-.828.174-1.695-.991-2.515-2.061-.779-.992-1.565-1.962-2.265-1.58-.7.381-.7 1.581-.717 2.687-.04 1.078-.1 2.134-.929 2.308-.83.175-1.53-.528-2.188-1.152-.624-.555-1.249-1.074-1.948-.693-.7.381-.86 1.13-1.036 1.8-.198.631-.424 1.225-1.254 1.4-.829.174-1.364-.067-1.862-.244-.467-.119-.93-.187-1.628.194l-.006-.013c.744-.411 1.218-.339 1.698-.214.488.177 1.011.415 1.787.247.777-.168.999-.746 1.195-1.359.18-.683.345-1.447 1.09-1.858.744-.41 1.384.123 2.023.695.645.613 1.33 1.302 2.107 1.134.775-.168.835-1.197.875-2.247.019-1.129.019-2.355.763-2.765.745-.411 1.55.584 2.35 1.603.802 1.049 1.648 2.189 2.425 2.021.776-.168.675-1.648.556-3.134-.14-1.576-.304-3.264.44-3.674.743-.411 1.716 1.046 2.675 2.511.958 1.486 1.967 3.077 2.744 2.909l.047.13" />
<path
stroke-miterlimit="10"
stroke-width=".495"
stroke="#171717"
fill="none"
id="path168"
d="M82.976 137.645c-.83.175-1.863-1.452-2.84-2.969-.938-1.428-1.887-2.85-2.585-2.468-.7.381-.537 2.032-.4 3.575.122 1.524.226 3.042-.602 3.217-.828.174-1.695-.991-2.515-2.061-.779-.992-1.565-1.962-2.265-1.58-.7.381-.7 1.581-.717 2.687-.04 1.078-.1 2.134-.929 2.308-.83.175-1.53-.528-2.188-1.152-.624-.555-1.249-1.074-1.948-.693-.7.381-.86 1.13-1.036 1.8-.198.631-.424 1.225-1.254 1.4-.829.174-1.364-.067-1.862-.244-.467-.119-.93-.187-1.628.194l-.006-.013c.744-.411 1.218-.339 1.698-.214.488.177 1.011.415 1.787.247.777-.168.999-.746 1.195-1.359.18-.683.345-1.447 1.09-1.858.744-.41 1.384.123 2.023.695.645.613 1.33 1.302 2.107 1.134.775-.168.835-1.197.875-2.247.019-1.129.019-2.355.763-2.765.745-.411 1.55.584 2.35 1.603.802 1.049 1.648 2.189 2.425 2.021.776-.168.675-1.648.556-3.134-.14-1.576-.304-3.264.44-3.674.743-.411 1.716 1.046 2.675 2.511.958 1.486 1.967 3.077 2.744 2.909z" />
<path
fill="#171717"
id="path170"
d="M27.344 137.645c.829.175 1.862-1.452 2.84-2.969.937-1.428 1.886-2.85 2.585-2.468.7.381.537 2.032.399 3.575-.122 1.524-.226 3.042.602 3.217.828.174 1.696-.991 2.515-2.061.78-.992 1.566-1.962 2.266-1.58.7.381.699 1.581.717 2.687.039 1.078.099 2.134.928 2.308.829.175 1.53-.528 2.188-1.152.624-.555 1.249-1.074 1.948-.693.7.381.861 1.13 1.036 1.8.198.631.425 1.225 1.253 1.4.83.174 1.365-.067 1.863-.244.467-.119.93-.187 1.629.194l.005-.013c-.745-.411-1.218-.339-1.698-.214-.488.177-1.011.415-1.787.247-.776-.168-.998-.746-1.194-1.359-.18-.683-.345-1.447-1.09-1.858-.744-.41-1.384.123-2.024.695-.644.613-1.33 1.302-2.106 1.134-.776-.168-.836-1.197-.875-2.247-.02-1.129-.02-2.355-.764-2.765-.744-.411-1.55.584-2.35 1.603-.802 1.049-1.648 2.189-2.424 2.021-.777-.168-.675-1.648-.558-3.134.14-1.576.305-3.264-.438-3.674-.744-.411-1.716 1.046-2.676 2.511-.957 1.486-1.968 3.077-2.743 2.909l-.047.13" />
<path
stroke-miterlimit="10"
stroke-width=".495"
stroke="#171717"
fill="none"
id="path172"
d="M27.344 137.645c.829.175 1.862-1.452 2.84-2.969.937-1.428 1.886-2.85 2.585-2.468.7.381.537 2.032.399 3.575-.122 1.524-.226 3.042.602 3.217.828.174 1.696-.991 2.515-2.061.78-.992 1.566-1.962 2.266-1.58.7.381.699 1.581.717 2.687.039 1.078.099 2.134.928 2.308.829.175 1.53-.528 2.188-1.152.624-.555 1.249-1.074 1.948-.693.7.381.861 1.13 1.036 1.8.198.631.425 1.225 1.253 1.4.83.174 1.365-.067 1.863-.244.467-.119.93-.187 1.629.194l.005-.013c-.745-.411-1.218-.339-1.698-.214-.488.177-1.011.415-1.787.247-.776-.168-.998-.746-1.194-1.359-.18-.683-.345-1.447-1.09-1.858-.744-.41-1.384.123-2.024.695-.644.613-1.33 1.302-2.106 1.134-.776-.168-.836-1.197-.875-2.247-.02-1.129-.02-2.355-.764-2.765-.744-.411-1.55.584-2.35 1.603-.802 1.049-1.648 2.189-2.424 2.021-.777-.168-.675-1.648-.558-3.134.14-1.576.305-3.264-.438-3.674-.744-.411-1.716 1.046-2.676 2.511-.957 1.486-1.968 3.077-2.743 2.909z" />
<path
fill="#fff"
id="path174"
d="M46.559 100.736a2.14 2.14 0 1 0-4.267-.341 2.14 2.14 0 0 0 4.267.341" />
<path
stroke-miterlimit="10"
stroke-width="1.187"
stroke="#171717"
fill="none"
id="path176"
d="M46.559 100.736a2.14 2.14 0 1 0-4.267-.341 2.14 2.14 0 0 0 4.267.341z" />
<path
stroke-miterlimit="10"
stroke-width=".099"
stroke="#fff"
fill="none"
id="path178"
d="M55.895 108.413a3.668 3.668 0 1 0-7.21-1.357 3.668 3.668 0 0 0 7.21 1.357z" />
<path
stroke-miterlimit="10"
stroke-width=".5"
stroke="#171717"
fill="none"
id="path180"
d="M26.564 126.332s11.78 1.67 15.93 2.078c4.158.41 10.256.461 12.623.461-.14-13.719.131-29.412-.01-43.134" />
</g>
<g
fill="#171717"
id="g4778">
<path
id="path182"
d="M20.998 69.607c0-.559-.135-1.04-.405-1.442-.27-.402-.675-.756-1.215-1.061-.216-.126-.727-.387-1.533-.779-.904-.441-1.395-.663-1.474-.663-.01 0-.319.244-.928.733-.343.273-.665.468-.965.585-.3.118-.628.222-.987.315s-.7.14-1.024.14v.22c.412.305.786.615 1.12.929.393.373.657.56.795.56.432 0 .993-.153 1.68-.457.502-.216.865-.408 1.09-.575.226-.167.438-.373.634-.619.128-.157.241-.235.34-.235.137 0 .254.085.353.257.098.172.148.37.148.596 0 .57-.463 1.109-1.386 1.62l-2.593 1.353c-.943.609-1.414 1.305-1.414 2.09 0 .392.112.756.338 1.09.314.47.835.858 1.562 1.162 1.69.716 2.613 1.074 2.77 1.074.03 0 .265-.243.707-.73.236-.262.472-.477.708-.644a2.32 2.32 0 0 1 .5-.28c.58-.255.88-.388.9-.398-.089-.087-.393-.264-.914-.53a71.693 71.693 0 0 0-.781-.383l-.324.074c-.51.137-.938.294-1.282.471a2.455 2.455 0 0 0-.987 1.017c-.089.157-.187.235-.295.235-.138 0-.28-.083-.427-.25a1.072 1.072 0 0 1-.266-.72c0-.217.565-.6 1.695-1.15a24.334 24.334 0 0 0 1.562-.823c.855-.51 1.41-.898 1.665-1.163.422-.432.633-.97.633-1.619" />
<path
id="path184"
d="M25.729 72.783c-.325-.412-.604-.69-.84-.832-.236-.142-.55-.214-.943-.214-.197 0-.376.03-.538.088-.162.06-.351.162-.568.31a1.5 1.5 0 0 1-.14-.398 2.63 2.63 0 0 1-.051-.56c0-.679.207-1.38.619-2.109a5.317 5.317 0 0 1 1.945-1.99c-.04-.089-.263-.347-.67-.774-.408-.428-.652-.642-.73-.642a.765.765 0 0 0-.177.074c-.324.187-.683.51-1.076.972-.392.461-.672.905-.84 1.332-.167.427-.25.93-.25 1.509 0 .746.177 1.463.53 2.149.236.462.516.855.84 1.178.197.206.344.358.443.457.324.304.54.456.648.456.137-.253.295-.474.471-.663.177-.19.374-.284.59-.284.147 0 .304.05.471.147h.265v-.206" />
<path
id="path186"
d="M31.416 69.688c0-.844-.191-1.723-.574-2.636-.462-1.12-1.105-1.941-1.93-2.461l-.06.102c.226.334.425.806.597 1.415.172.61.258 1.34.258 2.196 0 .629-.08 1.282-.24 1.96-.221.943-.552 1.58-.994 1.915h-.195V65.71H26.23v9.962l1.697.663h.35v-3.552h.252c.287.197.504.344.652.443.454.294.715.441.784.441.09-.107.163-.201.222-.28.375-.51.672-1.085.89-1.724.127-.383.201-.618.221-.707.079-.344.118-.767.118-1.268" />
<path
id="path188"
d="M34.566 67.11l-.044 3.536c-.285-.097-.518-.335-.7-.714-.182-.378-.273-.685-.273-.921 0-.412.096-.842.288-1.29.191-.447.366-.669.523-.669.039.02.108.039.206.058zm2.166-.632c0-.07-.201-.242-.604-.517-.403-.275-.639-.413-.707-.413-.148 0-.31.142-.486.428-.06.097-.148.255-.266.47a3.467 3.467 0 0 1-.751-.367c-.511-.314-.791-.472-.84-.472-.08 0-.212.12-.398.354-.462.579-.693 1.302-.693 2.166 0 .393.037.717.111.973.073.254.292.62.655 1.09.305.393.718.698 1.238.914.413.177.62.328.62.457 0 .206-.153.415-.458.625-.305.212-.505.317-.604.317-.04 0-.152-.03-.339-.088a1.611 1.611 0 0 0-.457-.089.896.896 0 0 0-.42.104c-.132.068-.198.172-.198.31 0 .186.088.28.265.28.059 0 .182-.026.369-.075a.627.627 0 0 1 .162-.029c.156 0 .421.09.795.266.374.177.751.365 1.135.563.157 0 .451-.188.884-.56.49-.423.736-.796.736-1.12v-5.013c0-.049.04-.157.119-.324.02-.05.063-.133.132-.25" />
<path
id="path190"
d="M40.55 75.612c0-.078-.105-.209-.316-.39-.211-.182-.371-.273-.479-.273-.06 0-.221.104-.486.31-.138.108-.236.162-.296.162-.038 0-.08-.025-.125-.073a2.335 2.335 0 0 0-.095-.104c.262-.314.432-.566.51-.752.01-.03.053-.196.131-.501.049-.186.112-.309.19-.368a.424.424 0 0 1 .262-.088.666.666 0 0 0 .248-.03c.04-.02.059-.098.059-.236 0-.196-.101-.314-.302-.353-.202-.039-.303-.172-.303-.398v-6.911h-1.974v7.118c-.177.107-.3.191-.369.25-.127.098-.225.27-.295.515.151.08.3.126.445.14.146.015.219.121.219.317 0 .276-.084.477-.251.605a.307.307 0 0 0-.132.25c.03.049.063.089.103.118.236.225.62.486 1.15.781.402.226.77.397 1.104.516.05.02.113.039.192.058.177-.108.31-.191.398-.25.274-.197.412-.334.412-.413" />
<path
id="path192"
d="M44.617 75.612c0-.078-.105-.209-.316-.39-.212-.182-.371-.273-.48-.273-.058 0-.22.104-.486.31-.137.108-.235.162-.294.162-.04 0-.082-.025-.125-.073a2.974 2.974 0 0 0-.096-.104c.262-.314.432-.566.51-.752.01-.03.053-.196.131-.501.049-.186.112-.309.19-.368a.426.426 0 0 1 .262-.088.663.663 0 0 0 .248-.03c.04-.02.058-.098.058-.236 0-.196-.1-.314-.301-.353-.202-.039-.303-.172-.303-.398v-6.911h-1.974v7.118c-.177.107-.3.191-.368.25-.129.098-.227.27-.296.515.151.08.3.126.445.14.146.015.219.121.219.317 0 .276-.084.477-.25.605a.307.307 0 0 0-.133.25c.03.049.063.089.103.118.236.225.62.486 1.15.781.402.226.77.397 1.104.516.05.02.113.039.192.058.177-.108.309-.191.398-.25.275-.197.412-.334.412-.413" />
<path
id="path194"
d="M47.427 70.617c0 .06-.093.236-.28.53-.255.404-.477.728-.663.973h-.147a8.751 8.751 0 0 1-.25-.744 2.191 2.191 0 0 1-.104-.538c0-.315.037-.597.11-.847.075-.251.175-.376.302-.376.119 0 .32.148.605.443.285.294.427.48.427.56zm1.621.84c0-.306-.39-.792-1.171-1.46-.781-.669-1.172-1.052-1.172-1.15 0-.276.634-.9 1.9-1.872-.048-.09-.289-.32-.721-.694-.432-.373-.683-.56-.752-.56-.068 0-.218.084-.449.25a6.22 6.22 0 0 0-.744.65 4.318 4.318 0 0 0-1.002 1.577c-.187.5-.28.963-.28 1.386 0 .285.069.624.206 1.018.137.392.33.78.575 1.164.127.196.442.56.943 1.09.56.59.913.885 1.06.885.03 0 .148-.138.354-.413.167-.236.34-.472.516-.707.04-.04.162-.212.369-.516.245-.364.368-.58.368-.649" />
<path
id="path196"
d="M55.03 66.67c0-.118-.215-.344-.648-.679-.432-.335-.692-.502-.78-.502-.08 0-.232.157-.457.473-.256.345-.384.63-.384.856v4.68c0 .139-.05.313-.147.525-.098.213-.216.318-.354.318-.078 0-.152-.049-.22-.147-.07-.098-.104-.177-.104-.236V65.71h-2.048v6.322c0 .137-.062.287-.184.45a2.283 2.283 0 0 0-.184.257c0 .059.255.226.766.501.51.274.8.412.87.412.146 0 .31-.154.493-.463.182-.31.307-.464.375-.464.118 0 .462.154 1.032.464.57.309.864.463.884.463.118 0 .265-.128.442-.383.216-.305.324-.635.324-.99v-4.693c0-.118.035-.259.104-.421.068-.163.142-.327.22-.495" />
<path
id="path198"
d="M59.097 69.056c0 .834-.224 1.659-.67 2.475-.357.658-.64 1.026-.848 1.104 0-.864-.005-1.854-.015-2.968-.01-1.115-.014-1.74-.014-1.88 0-.117.103-.279.31-.485.205-.206.348-.31.427-.31.245 0 .442.237.59.707.146.472.22.924.22 1.357zm1.621 1.208c0-.59-.118-1.155-.354-1.695-.353-.815-.958-1.478-1.812-1.989a30.799 30.799 0 0 0-.678-.457c-.462-.305-.737-.457-.825-.457-.138 0-.426.194-.863.582-.436.388-.655.666-.655.833v7.824c0 .158.255.336.766.538.511.201.894.292 1.15.273v-2.328a.492.492 0 0 1 .22-.09c.08 0 .32.085.722.252.404.167.624.25.664.25.216 0 .525-.33.928-.987.491-.806.737-1.656.737-2.549" />
<path
id="path200"
d="M66.582 66.551c0-.099-.232-.27-.7-.517-.466-.245-.74-.368-.818-.368-.117 0-.255.094-.412.28-.158.187-.314.378-.472.575-.088 0-.397-.143-.928-.427-.53-.285-.83-.428-.899-.428-.126 0-.285.125-.471.376-.187.25-.28.51-.28.774v4.91c0 .077-.04.21-.118.397-.079.187-.158.383-.236.59.04.03.068.058.089.088.118.127.22.231.31.31.126.127.255.26.382.398.246.246.399.368.457.368.088 0 .26-.147.516-.442.314-.364.47-.717.47-1.061v-4.91c0-.128.063-.248.186-.36.121-.114.229-.17.317-.17.039 0 .078.01.117.037.039.024.068.041.088.05v6.646h2.02v-6.365c0-.187.064-.354.19-.5.128-.149.192-.232.192-.25" />
<path
id="path202"
d="M71.12 72.518c0-.088-.092-.24-.277-.457-.37-.422-.599-.633-.687-.633-.058 0-.146.068-.262.206a2.075 2.075 0 0 1-.468.427v-6.395h-2.048v6.396c0 .088-.052.211-.155.369a1.24 1.24 0 0 1-.302.338c.048.108.253.3.611.574.359.275.613.413.759.413.118 0 .266-.094.443-.28.176-.187.358-.374.544-.56.08 0 .258.14.538.42.28.28.43.42.45.42.196-.138.339-.25.427-.339.286-.295.427-.595.427-.9" />
<path
id="path204"
d="M74.08 67.229v4.405c-.128.176-.226.31-.295.398-.226.275-.383.412-.471.412-.197 0-.398-.353-.605-1.06-.098-.345-.148-.605-.148-.78 0-.65.143-1.279.428-1.887.383-.817.747-1.312 1.091-1.488zm2.549-1.831c0-.52-.318-1.022-.95-1.508-.634-.486-1.266-.73-1.894-.73-.344 0-.698.075-1.062.222-.363.147-.545.32-.545.516.11.167.197.29.266.37.226.244.456.367.693.367.157-.236.329-.448.515-.634a.938.938 0 0 1 .693-.28c.225 0 .452.096.678.288.225.191.338.415.338.67 0 .128-.181.452-.545.972-.363.52-.585.782-.663.782-.108 0-.31-.119-.604-.354-.294-.236-.52-.353-.678-.353-.206 0-.56.357-1.06 1.074-.6.852-.9 1.686-.9 2.501 0 .716.374 1.54 1.12 2.472.266.333.712.754 1.341 1.258.63.505.983.758 1.062.758.392-.344.682-.603.869-.78.589-.56.883-.923.883-1.09v-5.195c0-.099.075-.27.222-.516.147-.245.22-.515.22-.81" />
<path
id="path206"
d="M82.887 70.617c0 .06-.094.236-.28.53-.255.404-.477.728-.664.973h-.147a8.851 8.851 0 0 1-.25-.744c-.07-.24-.103-.42-.103-.538 0-.315.037-.597.11-.847.074-.251.174-.376.303-.376.117 0 .318.148.603.443.285.294.428.48.428.56zm1.62.84c0-.306-.39-.792-1.171-1.46-.781-.669-1.171-1.052-1.171-1.15 0-.276.633-.9 1.9-1.872-.048-.09-.29-.32-.721-.694-.433-.373-.684-.56-.752-.56-.069 0-.219.084-.45.25a6.22 6.22 0 0 0-.744.65 4.319 4.319 0 0 0-1.001 1.577c-.187.5-.281.963-.281 1.386 0 .285.07.624.206 1.018.138.392.33.78.576 1.164.127.196.442.56.943 1.09.56.59.913.885 1.06.885.03 0 .148-.138.354-.413.167-.236.339-.472.515-.707.04-.04.162-.212.37-.516.245-.364.368-.58.368-.649" />
<path
id="path208"
d="M87.16 67.316c0-.137-.147-.442-.442-.913-.324-.51-.57-.766-.738-.766-.126 0-.33.105-.61.316-.28.212-.42.361-.42.45.206.373.363.649.471.826.344.55.6.825.767.825.156 0 .377-.104.663-.31.206-.147.31-.29.31-.428" />
<path
id="path210"
d="M96.118 75.273c0-.422-.26-1.227-.78-2.416-.374-.805-.742-1.606-1.106-2.402l-1.046-2.401-.604-1.326c-.256-.532-.452-.885-.59-1.062-.117.118-.255.358-.412.723-.07.166-.285.721-.648 1.665-.393 1.021-.776 1.989-1.15 2.902a82.22 82.22 0 0 0-1.193 3.197c-.374 1.052-.673 1.774-.9 2.166v.193h2.904c.118-.157.3-.522.545-1.09.246-.571.546-1.308.9-2.211l.765-2.004c.265-.688.461-1.105.59-1.253.167.187.446.736.84 1.65.471 1.11.706 1.956.706 2.535 0 .56-.196.948-.588 1.164-.257.137-.595.207-1.018.207l-.044.132c0 .206.104.418.31.633.275.295.638.443 1.09.443.393 0 .73-.141 1.009-.42.28-.28.42-.622.42-1.025" />
<path
id="path212"
d="M98.772 67.316c0-.137-.148-.442-.443-.913-.324-.51-.57-.766-.737-.766-.127 0-.331.105-.611.316-.28.212-.42.361-.42.45.206.373.363.649.471.826.344.55.6.825.767.825.156 0 .378-.104.663-.31.206-.147.31-.29.31-.428" />
</g>
</g>
<text
font-size="105.833"
style="font-size:105.83300018px;line-height:100%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle"
x="967.03076"
y="178.94637"
id="text_main_title">
<tspan
sodipodi:role="line"
id="tspan18437"
x="967.03076"
y="178.94637"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center">Photo Booth</tspan>
</text>
<path
d="m 1324.1259,152.90151 h -18.6551 v -2.53214 q 0,-4.23745 1.7053,-7.49306 1.7053,-3.30728 7.183,-8.37155 l 3.3073,-2.99722 q 2.9455,-2.68717 4.2891,-5.06428 1.3953,-2.37711 1.3953,-4.75422 0,-3.61733 -2.4805,-5.63271 -2.4805,-2.06705 -6.9246,-2.06705 -4.1858,0 -9.0434,1.75699 -4.8575,1.70532 -10.1285,5.11595 v -16.22634 q 6.2528,-2.17041 11.4204,-3.20393 5.1677,-1.03353 9.9735,-1.03353 12.6091,0 19.2236,5.16763 6.6146,5.11595 6.6146,14.98612 0,5.06427 -2.0154,9.09502 -2.0154,3.97907 -6.8729,8.57826 l -3.3073,2.94555 q -3.514,3.20393 -4.5992,5.16762 -1.0852,1.91203 -1.0852,4.23746 z m -18.6551,7.64809 h 18.6551 v 18.39675 h -18.6551 z"
style="font-weight:700;font-size:medium;line-height:100%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;text-align:center;text-anchor:middle"
id="path1640"
inkscape:connector-curvature="0" />
<path
d="m 1358.4182,101.79368 h 18.6034 v 29.6105 l -2.6354,21.60068 h -13.3325 l -2.6355,-21.60068 z m 0,58.75592 h 18.6034 v 18.39675 h -18.6034 z"
style="font-weight:700;font-size:medium;line-height:100%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;text-align:center;text-anchor:middle"
id="path1642"
inkscape:connector-curvature="0" />
<path
d="m 1401.4955,101.79368 h 18.6034 v 29.6105 l -2.6355,21.60068 h -13.3324 l -2.6355,-21.60068 z m 0,58.75592 h 18.6034 v 18.39675 h -18.6034 z"
style="font-weight:700;font-size:medium;line-height:100%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;text-align:center;text-anchor:middle"
id="path1644"
inkscape:connector-curvature="0" />
<path
d="m 1306.0275,162.50946 h 17.4935 v 13.97008 h -17.4935 z"
id="rect4519"
inkscape:connector-curvature="0"
style="display:inline;stroke:#808080;stroke-width:0.12392999;stroke-dashoffset:23;enable-background:new" />
<path
d="m 1358.9425,162.57956 h 17.4944 v 13.97088 h -17.4944 z"
id="rect4671"
inkscape:connector-curvature="0"
style="display:inline;stroke:#808080;stroke-width:0.12311999;stroke-dashoffset:23;enable-background:new" />
<path
d="m 1401.9239,162.57956 h 17.4944 v 13.97088 h -17.4944 z"
id="rect4671-3"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#808080;stroke-width:0.12311999;stroke-dashoffset:23;enable-background:new" />
<text
font-size=".794"
style="font-size:0.64314139px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';display:inline;fill:#ffffff;enable-background:new"
x="1403.8788"
y="164.66141"
id="text9092-7">
<tspan
sodipodi:role="line"
id="tspan70373-3"
x="1403.8788"
y="165.23044" />
<tspan
sodipodi:role="line"
x="1403.8788"
y="166.03436"
id="tspan6351">◦ wrote experimental capture program</tspan>
<tspan
sodipodi:role="line"
id="tspan233153"
x="1403.8788"
y="166.83829">◦ evaluated and bought HW components</tspan>
<tspan
sodipodi:role="line"
id="tspan233155"
x="1403.8788"
y="167.64221">◦ dry run</tspan>
<tspan
sodipodi:role="line"
id="tspan233157"
x="1403.8788"
y="168.44614">◦ designed cabinet</tspan>
<tspan
sodipodi:role="line"
id="tspan233159"
x="1403.8788"
y="169.25008">◦ built cabinet</tspan>
<tspan
sodipodi:role="line"
id="tspan233161"
x="1403.8788"
y="170.054">◦ added LED effects, flash etc.</tspan>
</text>
<text
font-size=".794"
style="font-size:0.64314139px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';display:inline;fill:#ffffff;enable-background:new"
x="1306.6055"
y="166.03436"
id="text9092">
<tspan
id="tspan1653"
sodipodi:role="line"
x="1306.6055"
y="166.03436">◦ Name origin are actual BOOTHs (train station)</tspan>
<tspan
sodipodi:role="line"
id="tspan70343"
x="1306.6055"
y="166.91554">◦ Japan: Purikura (プリクラ) machines since 1995</tspan>
<tspan
sodipodi:role="line"
id="tspan70347"
x="1306.6055"
y="167.71947">◦ automatic device that takes pictures of you</tspan>
<tspan
sodipodi:role="line"
id="tspan70349"
x="1306.6055"
y="168.52339">◦ camera with self-timer or webcam</tspan>
<tspan
sodipodi:role="line"
id="tspan70351"
x="1306.6055"
y="169.32732">◦ usually equipped with a preview screen</tspan>
<tspan
sodipodi:role="line"
id="tspan70353"
x="1306.6055"
y="170.13126">◦ sometimes equipped with a printer</tspan>
<tspan
sodipodi:role="line"
id="tspan70355"
x="1306.6055"
y="170.93518">◦ sometimes equipped with social media sharing</tspan>
<tspan
sodipodi:role="line"
id="tspan70357"
x="1306.6055"
y="171.73911">◦ usually saves the photos</tspan>
<tspan
sodipodi:role="line"
id="tspan70359"
x="1306.6055"
y="172.54303">◦ sometimes equipped with funny props</tspan>
<tspan
sodipodi:role="line"
id="tspan70373"
x="1306.6055"
y="173.34695">◦ typical use cases:</tspan>
<tspan
sodipodi:role="line"
x="1306.6055"
y="174.15088"
id="tspan6182">weddings, birthday parties, corporate events, fairs</tspan>
</text>
<text
font-size=".794"
style="font-size:0.64314139px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';display:inline;fill:#ffffff;enable-background:new"
x="1361.0715"
y="166.03436"
id="text9092-0">
<tspan
sodipodi:role="line"
font-style="italic"
x="1361.0715"
y="166.03436"
style="font-style:italic;-inkscape-font-specification:'Sans, Italic'"
id="tspan178702">Why would you need one</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="166.83829"
id="tspan178704">◦ it's fun to use</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="167.64221"
id="tspan178706">◦ you can make money with it</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="168.44614"
id="tspan178708">(professional photographers</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="169.25008"
id="tspan178724">charge up to 1500€ for a day)</tspan>
<tspan
id="tspan1651"
sodipodi:role="line"
x="1361.0715"
y="170.054" />
<tspan
sodipodi:role="line"
font-style="italic"
x="1361.0715"
y="170.85793"
style="font-style:italic;-inkscape-font-specification:'Sans, Italic'"
id="tspan178712">why would you wanna build one by yourself</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="171.66185"
id="tspan178714">◦ it's fun to build</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="172.46577"
id="tspan178716">◦ you can make money with it</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="173.2697"
id="tspan178718">◦ you learn a lot</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="174.07362"
id="tspan178720">◦ multi-disciplinary project</tspan>
<tspan
sodipodi:role="line"
x="1361.0715"
y="174.87756"
id="tspan178726">◦ is ideal for hacker/maker space teamwork</tspan>
</text>
<text
font-size=".794"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;display:inline;fill:#808080;filter:url(#filter_blur_small);enable-background:new"
x="1306.7932"
y="164.06828"
id="text8663">
<tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;fill:#808080"
sodipodi:role="line"
x="1306.7932"
y="164.06828"
id="tspan8661">What is a photo booth?</tspan>
</text>
<text
id="text6324"
y="164.01575"
x="1306.7217"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;display:inline;fill:#ffffff;enable-background:new"
font-size=".794">
<tspan
id="tspan6322"
y="164.01575"
x="1306.7217"
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;text-align:start;writing-mode:lr-tb;text-anchor:start">What is a photo booth?</tspan>
</text>
<text
id="text8667"
y="164.06805"
x="1361.0969"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;display:inline;fill:#808080;filter:url(#filter_blur_small);enable-background:new"
font-size=".794">
<tspan
id="tspan8665"
y="164.06805"
x="1361.0969"
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;fill:#808080">Motivation</tspan>
</text>
<text
font-size=".794"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;display:inline;fill:#ffffff;enable-background:new"
x="1361.0259"
y="164.01575"
id="text6332">
<tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;text-align:start;writing-mode:lr-tb;text-anchor:start"
sodipodi:role="line"
x="1361.0259"
y="164.01575"
id="tspan6330">Motivation</tspan>
</text>
<text
font-size=".794"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;display:inline;fill:#808080;filter:url(#filter_blur_small);enable-background:new"
x="1403.9589"
y="164.06828"
id="text8671">
<tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;fill:#808080"
sodipodi:role="line"
x="1403.9589"
y="164.06828"
id="tspan8669">Our approach</tspan>
</text>
<text
id="text6344"
y="164.01575"
x="1403.8881"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;display:inline;fill:#ffffff;enable-background:new"
font-size=".794">
<tspan
id="tspan6342"
y="164.01575"
x="1403.8881"
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:0.70555556px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;text-align:start;writing-mode:lr-tb;text-anchor:start">Our approach</tspan>
</text>
<text
id="text11258"
y="73.112999"
x="1018.274"
style="font-size:105.83300018px;line-height:100%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle"
font-size="105.833">
<tspan
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center"
y="73.112999"
x="1018.274"
id="tspan11256"
sodipodi:role="line">Building a</tspan>
</text>
</g>
<g
style="display:inline"
transform="translate(0,845.9999)"
inkscape:label="Front"
inkscape:groupmode="layer"
id="layer_front"
sodipodi:insensitive="true">
<g
id="g9109"
transform="matrix(1.5935,0,0,1.5935,-122.00766,-936.63)">
<g
style="stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
stroke-miterlimit="10"
id="g8986">
<path
style="fill:#fff1a1"
inkscape:connector-curvature="0"
d="M 315.688,544.464 296.804,549.686 368.04,762 386.88,754.56 Z"
id="polygon8982" />
<path
style="fill:#d4be7e"
inkscape:connector-curvature="0"
d="M 286.161,552.646 352.32,748.2 368.04,762 296.804,549.686 Z"
id="polygon8984" />
</g>
<g
style="stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
stroke-miterlimit="10"
id="g8992">
<path
style="fill:#fff1a1"
inkscape:connector-curvature="0"
d="m 191.76,724.98 26.82,-1.08 142.8,-191.88 -34.508,9.311 -78.827,106.654 z"
id="polygon8988" />
<path
style="fill:#98885b"
inkscape:connector-curvature="0"
d="m 248.045,647.985 78.827,-106.654 0.008,-0.011 -9.3,2.58 -124.38,169.08 -1.44,11.16 z"
id="polygon8990" />
</g>
<path
style="fill:#d4be7e;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
d="m 318.48,646.2 3.981,13.74 -24.921,-42.24 7.98,-10.56 z"
stroke-miterlimit="10"
id="polygon8994" />
<path
style="fill:#98885b;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
d="m 302.1,565.02 -8.46,18.647 -16.74,-28.307 16.74,-4.8 z"
stroke-miterlimit="10"
id="polygon8996" />
<path
style="fill:#d4be7e;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
d="m 281.961,592.32 -19.641,-33.06 14.58,-3.9 16.74,28.307 -9,4.583 z"
stroke-miterlimit="10"
id="polygon8998" />
<path
style="fill:#ffea9c;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
d="m 448.32,507.66 -186,51.6 L 245.77,93 456.24,86.7 Z"
stroke-miterlimit="10"
id="polygon9000" />
<g
id="Camera">
<path
style="fill:#ff0000;stroke:#000000;stroke-width:0.5;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 377.162,134.538 c -0.93,11.817 -9.267,20.798 -18.611,20.06 -9.349,-0.738 -16.168,-10.917 -15.232,-22.735 0.931,-11.817 9.268,-20.799 18.612,-20.06 9.347,0.739 16.168,10.916 15.231,22.735 z"
id="path9005" />
<ellipse
style="fill:#1e1e1e;stroke:#000000;stroke-width:2;stroke-miterlimit:10"
transform="rotate(4.513,360.343,133.292)"
stroke-miterlimit="10"
cx="360.23999"
cy="133.2"
rx="12.528"
ry="15.841"
id="ellipse9007" />
<ellipse
style="fill:#848484"
transform="rotate(4.513,360.29,133.272)"
cx="360.23999"
cy="133.201"
rx="8.9209995"
ry="11.28"
id="ellipse9009" />
</g>
<g
transform="translate(-0.66415645,-6.1370603)"
style="fill:#dedede;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
stroke-miterlimit="10"
id="g9020">
<path
sodipodi:nodetypes="ccccc"
style="display:inline;fill:#1e1e1e;stroke-width:1;enable-background:new"
inkscape:connector-curvature="0"
d="M 398.21202,444.67604 327.462,460.982 l 0.12013,3.84 70.62987,-15.6 z"
id="polygon9002-5" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
d="m 387.06688,489.93161 c -1.01868,-2.57048 -1.0146,-6.05255 3.63599,-7.13995 4.50797,-1.00762 8.47369,0.58893 9.59348,4.1235 L 424.667,477.191 398.212,449.222 330.347,464.211 356.711,493.7 Z"
id="path9012"
style="display:inline;fill:#dedede;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;enable-background:new" />
<path
inkscape:connector-curvature="0"
d="m 356.411,497.593 0.3,-3.892 -26.364,-29.49 -0.149,-0.166 -2.736,-3.063 0.117,3.73 0.003,0.11 z"
id="polygon9014"
style="display:inline;fill:#dedede;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;enable-background:new" />
<path
inkscape:connector-curvature="0"
d="m 398.212,449.222 26.45401,27.97 0.035,-0.009 0.10701,-0.027 3.01399,-0.781 -29.61,-31.69901 z"
id="polygon9016"
style="display:inline;fill:#dedede;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;enable-background:new" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path123550"
d="M 387.60948,486.33741 356.711,493.7 l -0.3,3.893 30.65588,-7.66139 z"
style="display:inline;fill:#dedede;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;enable-background:new" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="path9018"
d="m 400.29635,486.91516 26.86467,-7.08512 0.661,-3.455 -3.014,0.78004 -0.10601,0.027 -0.035,0.009 -23.76301,6.148 z"
style="display:inline;fill:#dedede;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;enable-background:new" />
</g>
<path
style="fill:#b8a56e;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
d="M 456.24,86.7 245.77,93 138,84.42 329.63,79.732 Z"
id="Roof"
stroke-miterlimit="10" />
<path
style="fill:#d4be7e;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
d="M 261.564,537.96 162,473.52 138,84.42 245.58,93.06 Z"
id="Side"
stroke-miterlimit="10" />
<path
style="fill:#a69563;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
d="M 262.32,559.26 163.02,488.7 162,473.52 261.564,537.96 Z"
stroke-miterlimit="10"
id="polygon9024" />
<g
style="fill:#ffffb0;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
stroke-miterlimit="10"
id="LED_Kasten">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
d="m 400.026,428.85547 -3.208,-4.56547 -77.296,15.987 3.209,4.56647 z"
id="polygon9026" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
d="m 322.731,444.84347 0.136,6.00653 77.278,-17.037 -0.119,-4.95753 z"
id="polygon9028" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
d="m 319.522,440.277 0.14,8.16 3.205,2.413 -0.136,-6.00653 z"
id="polygon9030" />
</g>
<path
style="stroke:#000000;stroke-width:2;stroke-miterlimit:10"
inkscape:connector-curvature="0"
d="m 280.86,329.28 -4.44,-153.96 155.64,-11.7 -1.02,141.78 z"
id="Monitor"
stroke-miterlimit="10" />
</g>
<path
style="fill:#a1a1a1;stroke:#000000;stroke-width:0.99005526;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;enable-background:new"
inkscape:connector-curvature="0"
d="m 188.92493,-130.3405 -1.02821,-41.71633 34.16712,24.08652 1.00382,40.72707 z"
id="polygon352-6"
stroke-miterlimit="10" />
<path
style="fill:#b3b3b3;stroke:#000000;stroke-width:0.99005526;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;enable-background:new"
inkscape:connector-curvature="0"
d="m 192.06097,-132.00797 -0.83358,-33.81992 27.70043,19.52652 0.81384,33.01882 z"
id="polygon354-9"
stroke-miterlimit="10" />
</g>
<g
visibility="hidden"
style="display:inline"
inkscape:label="Software"
id="layer_software"
inkscape:groupmode="layer"
transform="translate(0,59.266667)">
<path
style="fill:none;stroke:#000000;stroke-width:0.93599999;stroke-dashoffset:23"
inkscape:connector-curvature="0"
d="m 312.39834,393.604 h 119.064 v 119.064 h -119.064 z"
id="rect_software_ux" />
<path
d="M 4.984,-64.865334 H 1423.766 V 1068.1666 H 4.984 Z"
id="rect_sw_hw_transition"
style="fill:none;stroke:#e6e6e6;stroke-width:0.26458332;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:23"
inkscape:connector-curvature="0" />
<text
transform="rotate(-92.276443,-0.83498527,2.8382546)"
id="text10937"
y="217.77486"
x="-499.90317"
style="font-size:70.55599976px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#000000;filter:url(#filter_blur_large);opacity:0.5;"
font-size="70.556">
<tspan
y="217.77486"
x="-499.90317"
id="tspan10935"
sodipodi:role="line">Software</tspan>
</text>
<text
font-size="70.556"
style="font-size:70.55599976px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
x="-503.90186"
y="211.79042"
id="text376644-1"
transform="rotate(-92.276443)">
<tspan
sodipodi:role="line"
id="tspan376642-9"
x="-503.90186"
y="211.79042">Software</tspan>
</text>
<path
style="fill:none;stroke:#ffffff;stroke-width:1.42999995;stroke-dashoffset:23"
inkscape:connector-curvature="0"
d="m 342.07,158.178 h 210.237 v 157.32 H 342.07 Z"
id="rect_software_architecture" />
<g
id="group_software_screen">
<text
font-size="6.926"
id="text9092-7-5-6"
y="191.42001"
x="364.21545"
style="font-size:6.92600012px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#ffffff">
<tspan
sodipodi:role="line"
y="191.42001"
x="364.21545"
id="tspan233163-8-3">prerequisite: use FREE software only</tspan>
</text>
<path
style="fill:#cccccc"
inkscape:connector-curvature="0"
d="m 362.26448,289.512 h 169.33298 v 17.992 H 362.26448 Z"
id="rect376674" />
<path
style="fill:#ffe680"
inkscape:connector-curvature="0"
d="m 362.26448,267.319 h 169.33298 v 17.992 H 362.26448 Z"
id="rect376674-0" />
<path
style="fill:#ffaaaa"
inkscape:connector-curvature="0"
d="m 362.26448,225.205 h 47.62497 v 38.1 h -47.62497 z"
id="box_libgphoto2">
<title
id="title4709">
libgphoto2
</title>
</path>
<path
style="fill:#b380ff"
inkscape:connector-curvature="0"
d="M 362.26448,203.18203 H 531.59746 V 221.174 H 362.26448 Z"
id="rect376718" />
<path
style="fill:#80b3ff"
inkscape:connector-curvature="0"
d="m 423.11844,225.205 h 47.62501 v 38.1 h -47.62501 z"
id="box_gstreamer">
<title
id="title4707">
GStreamer
</title>
</path>
<path
style="fill:#afe9af"
inkscape:connector-curvature="0"
d="m 483.97246,225.205 h 47.625 v 38.1 h -47.625 z"
id="box_GTK">
<title
id="title4705">
GTK+
</title>
</path>
<text
font-size="10.583"
id="text376678"
y="302.453"
x="446.78845"
style="font-size:10.58300018px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle">
<tspan
style="-inkscape-font-specification:'Sans, Normal';;text-align:center"
y="302.453"
x="446.78845"
id="tspan376676">Hardware</tspan>
</text>
<text
font-size="10.583"
id="text376678-8"
y="280.259"
x="446.68546"
style="font-size:10.58300018px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle">
<tspan
style="-inkscape-font-specification:'Sans, Normal';;text-align:center"
y="280.259"
x="446.68546"
id="tspan376676-7">Linux</tspan>
</text>
<text
font-size="10.583"
id="text376678-8-1"
y="215.09801"
x="446.82745"
style="font-size:10.58300018px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle">
<tspan
id="tspan376738"
style="-inkscape-font-specification:'Sans, Normal';;text-align:center"
y="215.09801"
x="446.82745">photobooth application</tspan>
</text>
<text
font-size="5.644"
id="text376742"
y="235.166"
x="371.00845"
style="font-size:5.64400005px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal'">
<tspan
y="235.166"
x="371.00845"
id="tspan376740">libgphoto2</tspan>
</text>
<text
font-size="5.644"
id="text376742-4"
y="235.08"
x="431.46844"
style="font-size:5.64400005px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal'">
<tspan
y="235.08"
x="431.46844"
id="tspan376740-5">GStreamer</tspan>
</text>
<text
font-size="1.058"
id="text9092-7-5"
y="239.381"
x="492.32629"
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:1.05801582px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:start;writing-mode:lr-tb;text-anchor:start">
<tspan
sodipodi:role="line"
id="tspan376907"
y="239.381"
x="492.32629">◦ multi-platform toolkit for</tspan>
<tspan
sodipodi:role="line"
id="tspan376915"
y="240.70351"
x="492.32629"
>creating graphical user interfaces</tspan>
<tspan
sodipodi:role="line"
id="tspan376911"
y="242.026"
x="492.32629"
>◦ created 1996 for GIMP</tspan>
<tspan
sodipodi:role="line"
y="243.34851"
x="492.32629"
id="tspan6375" />
<tspan
sodipodi:role="line"
id="tspan376895"
style="font-weight:bold"
y="244.67101"
x="492.32629">GLib</tspan>
<tspan
sodipodi:role="line"
id="tspan376897"
y="245.99352"
x="492.32629"
>◦ low-level core library</tspan>
<tspan
sodipodi:role="line"
id="tspan376899"
y="247.31601"
x="492.32629"
>◦ data structures and handling for C</tspan>
<tspan
sodipodi:role="line"
id="tspan376901"
y="248.63852"
x="492.32629"
>◦ GObject system</tspan>
<tspan
sodipodi:role="line"
id="tspan376903"
y="249.96103"
x="492.32629"
>◦ event-driven programming</tspan>
<tspan
sodipodi:role="line"
id="tspan376905"
y="251.28352"
x="492.32629"
>◦ threads</tspan>
<tspan
sodipodi:role="line"
y="252.60603"
x="492.32629"
id="tspan6377"
/>
<tspan
sodipodi:role="line"
id="tspan376883"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.05801582px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;text-align:start;writing-mode:lr-tb;text-anchor:start"
y="253.92853"
x="492.32629">GTK Widget Toolkit</tspan>
<tspan
sodipodi:role="line"
id="tspan376885"
y="255.25104"
x="492.32629"
>◦ Glade GUI builder</tspan>
</text>
<text
font-size="5.644"
id="text376742-4-2"
y="235.08"
x="499.89447"
style="font-size:5.64400005px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal'">
<tspan
y="235.08"
x="499.89447"
id="tspan376740-5-8">GTK+</tspan>
</text>
<text
font-size="1.058"
id="text9092-7-5-1"
y="239.381"
x="431.2084"
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:1.05801582px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:start;writing-mode:lr;text-anchor:start;font-weight:normal;">
<tspan
sodipodi:role="line"
id="tspan376889-5"
y="239.381"
x="431.2084"
style="-inkscape-font-specification:'Sans, Normal';font-family:Sans;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:1.05801582px;text-anchor:start;text-align:start;writing-mode:lr;">◦ multimedia framework</tspan>
<tspan
sodipodi:role="line"
id="tspan377172"
y="240.70351"
x="431.2084"
>◦ pipeline-based</tspan>
<tspan
sodipodi:role="line"
id="tspan377174"
y="242.026"
x="431.2084"
>◦ media-agnostic</tspan>
<tspan
sodipodi:role="line"
id="tspan377176"
y="243.34851"
x="431.2084"
>◦ countless plugins</tspan>
<tspan
sodipodi:role="line"
id="tspan377178"
y="244.67102"
x="431.2084"
>◦ it's super cool, you should use it!</tspan>
<tspan
sodipodi:role="line"
y="245.99352"
x="431.2084"
id="tspan6373"
/>
<tspan
sodipodi:role="line"
id="tspan377184"
y="247.31601"
x="431.2084"
>$ gphoto2 --capture-movie --stdout | \</tspan>
<tspan
sodipodi:role="line"
id="tspan377182"
y="248.63852"
x="431.2084"
>gst-launch-1.0 fdsrc ! decodebin ! autovideosink</tspan>
</text>
<text
font-size="1.058"
id="text9092-7-5-1-0"
y="239.381"
x="369.48361"
style="font-style:normal;font-variant:normal;font-stretch:normal;font-size:1.05801582px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:start;writing-mode:lr-tb;text-anchor:start">
<tspan
sodipodi:role="line"
id="tspan6357"
x="369.48361"
y="239.381">◦ abstracts (USB) port communication and camera protocol</tspan>
<tspan
sodipodi:role="line"
id="tspan6359"
x="369.48361"
y="240.70352">◦ high level API for accessing files on the camera</tspan>
<tspan
sodipodi:role="line"
id="tspan6361"
x="369.48361"
y="242.02603">◦ and remote controlling the camera</tspan>
<tspan
sodipodi:role="line"
id="tspan6363"
x="369.48361"
y="243.34856">◦ live view is super crappy!</tspan>
<tspan
sodipodi:role="line"
id="tspan6365"
x="369.48361"
y="244.67108">◦ API documentation is non-existant</tspan>
<tspan
sodipodi:role="line"
id="tspan6367"
x="369.48361"
y="245.99359">◦ not GLib</tspan>
<tspan
sodipodi:role="line"
id="tspan6369"
x="369.48361"
y="247.31612" />
<tspan
sodipodi:role="line"
id="tspan6371"
x="369.48361"
y="248.63864">$ gphoto2 --capture-image-and-download</tspan>
</text>
<text
id="text6150"
y="176.60815"
x="362.57062"
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;letter-spacing:0;word-spacing:0;fill:#808080;filter:url(#filter_blur_large)"
font-size="14.111"
letter-spacing="0"
word-spacing="0">
<tspan
style="-inkscape-font-specification:'Sans, Normal';;fill:#808080;"
y="176.60815"
x="362.57062"
id="tspan6148">Software Architecture</tspan>
</text>
<text
word-spacing="0"
letter-spacing="0"
font-size="14.111"
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;letter-spacing:0;word-spacing:0;fill:#ffffff"
x="362.04144"
y="176.07899"
id="text34837">
<tspan
id="tspan34835"
x="362.04144"
y="176.07899"
style="-inkscape-font-specification:'Sans, Normal';">Software Architecture</tspan>
</text>
</g>
<g
transform="matrix(0.48217085,-0.12919729,0.12919729,0.48217085,160.12241,396.07403)"
id="group_software_gst_pipeline">
<g
id="group_software_gst_pipelines"
transform="matrix(0.07292,0,0,0.07292,177.476,657.904)">
<text
style="font-size:10px;font-family:sans;text-anchor:middle"
x="3184.5"
y="16"
font-size="10"
id="text68842">&lt;GstPipeline&gt;</text>
<text
style="font-size:10px;font-family:sans;text-anchor:middle"
x="3184.5"
y="27"
font-size="10"
id="text68844">photobooth-pipeline</text>
<text
style="font-size:10px;font-family:sans;text-anchor:middle"
x="3184.5"
y="38"
font-size="10"
id="text68846">[=] -&gt; [=]</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5459,760 h 185 c 6,0 12,-6 12,-12 V 631 c 0,-6 -6,-12 -12,-12 h -185 c -6,0 -12,6 -12,12 v 117 c 0,6 6,12 12,12"
id="path68848" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="629.40002"
x="5551.5"
id="text68850">GstGtkSink</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="638.40002"
x="5551.5"
id="text68852">video-sink</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="647.40002"
x="5551.5"
id="text68854">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="656.40002"
x="5551.5"
id="text68856">parent=(GstPipeline) photobooth-pipeline</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="665.40002"
x="5551.5"
id="text68858">max-lateness=20000000</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="674.40002"
x="5551.5"
id="text68860">qos=TRUE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="683.40002"
x="5551.5"
id="text68862">last-sample=((GstSample*) 0x7fd7e008eda0)</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="692.40002"
x="5551.5"
id="text68864">widget=((GtkGstWidget*) 0x188e110)</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="701.40002"
x="5551.5"
id="text68866">pixel-aspect-ratio=0/1</text>
<path
style="fill:#ffffff;stroke:#000000"
inkscape:connector-curvature="0"
d="M 618.5,611 H 6218 c 6,0 12,-6 12,-12 V 265 c 0,-6 -6,-12 -12,-12 H 618.5 c -6,0 -12,6 -12,12 v 334 c 0,6 6,12 12,12"
id="path68868" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="263.39999"
x="3238.25"
id="text68870">GstBin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="272.39999"
x="3238.25"
id="text68872">photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="281.39999"
x="3238.25"
id="text68874">[&gt;] -&gt; [&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="290.39999"
x="3238.25"
id="text68876">parent=(GstPipeline) photobooth-pipeline</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 6041,428 h 105 c 6,0 12,-6 12,-12 v -99 c 0,-6 -6,-12 -12,-12 h -105 c -6,0 -12,6 -12,12 v 99 c 0,6 6,12 12,12"
id="path68878" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="315.39999"
x="6093.5"
id="text68880">GstAppSink</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="324.39999"
x="6093.5"
id="text68882">print-appsink</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="333.39999"
x="6093.5"
id="text68884">[-] -&gt; [&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="342.39999"
x="6093.5"
id="text68886">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="351.39999"
x="6093.5"
id="text68888">enable-last-sample=FALSE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="360.39999"
x="6093.5"
id="text68890">eos=FALSE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="369.39999"
x="6093.5"
id="text68892">emit-signals=TRUE</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5191,428 h 584 c 6,0 12,-6 12,-12 v -99 c 0,-6 -6,-12 -12,-12 h -584 c -6,0 -12,6 -12,12 v 99 c 0,6 6,12 12,12"
id="path68894" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="315.39999"
x="5483"
id="text68896">GstLcms</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="324.39999"
x="5483"
id="text68898">print-lcms</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="333.39999"
x="5483"
id="text68900">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="342.39999"
x="5483"
id="text68902">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="351.39999"
x="5483"
id="text68904">qos=TRUE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="360.39999"
x="5483"
id="text68906">dest-profile=&quot;CP955_F.icc&quot;</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="369.39999"
x="5483"
id="text68908">preserve-black=TRUE</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5977,550 h 233 c 6,0 12,-6 12,-12 v -90 c 0,-6 -6,-12 -12,-12 h -233 c -6,0 -12,6 -12,12 v 90 c 0,6 6,12 12,12"
id="path68910" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="446.39999"
x="6093.5"
id="text68912">GstFileSink</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="455.39999"
x="6093.5"
id="text68914">photo-filesink</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="464.39999"
x="6093.5"
id="text68916">[-] -&gt; [&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="473.39999"
x="6093.5"
id="text68918">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="482.39999"
x="6093.5"
id="text68920">sync=FALSE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="491.39999"
x="6093.5"
id="text68922">location=&quot;/home/fraxinas/Desktop/photobooth_0135.jpg&quot;</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5191,532 h 584 c 6,0 12,-6 12,-12 v -72 c 0,-6 -6,-12 -12,-12 h -584 c -6,0 -12,6 -12,12 v 72 c 0,6 6,12 12,12"
id="path68924" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="446.39999"
x="5483"
id="text68926">GstJpegEnc</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="455.39999"
x="5483"
id="text68928">photo-encoder</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="464.39999"
x="5483"
id="text68930">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="473.39999"
x="5483"
id="text68932">parent=(GstBin) photo-bin</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4667,554 h 203 c 6,0 12,-6 12,-12 V 407 c 0,-6 -6,-12 -12,-12 h -203 c -6,0 -12,6 -12,12 v 135 c 0,6 6,12 12,12"
id="path68934" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="405.39999"
x="4768.5"
id="text68936">GstTee</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="414.39999"
x="4768.5"
id="text68938">photo-tee</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="423.39999"
x="4768.5"
id="text68940">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="432.39999"
x="4768.5"
id="text68942">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="441.39999"
x="4768.5"
id="text68944">num-src-pads=3</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4224,554 h 211 c 6,0 12,-6 12,-12 v -81 c 0,-6 -6,-12 -12,-12 h -211 c -6,0 -12,6 -12,12 v 81 c 0,6 6,12 12,12"
id="path68946" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="459.39999"
x="4329.5"
id="text68948">GstGamma</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="468.39999"
x="4329.5"
id="text68950">photo-gamma</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="477.39999"
x="4329.5"
id="text68952">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="486.39999"
x="4329.5"
id="text68954">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="495.39999"
x="4329.5"
id="text68956">qos=TRUE</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3683,554 h 203 c 6,0 12,-6 12,-12 v -81 c 0,-6 -6,-12 -12,-12 h -203 c -6,0 -12,6 -12,12 v 81 c 0,6 6,12 12,12"
id="path68958" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="459.39999"
x="3784.5"
id="text68960">GstVideoConvert</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="468.39999"
x="3784.5"
id="text68962">photo-convert</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="477.39999"
x="3784.5"
id="text68964">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="486.39999"
x="3784.5"
id="text68966">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="495.39999"
x="3784.5"
id="text68968">qos=TRUE</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3109,554 h 221 c 6,0 12,-6 12,-12 V 434 c 0,-6 -6,-12 -12,-12 h -221 c -6,0 -12,6 -12,12 v 108 c 0,6 6,12 12,12"
id="path68970" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="432.39999"
x="3219.5"
id="text68972">GstGdkPixbufOverlay</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="441.39999"
x="3219.5"
id="text68974">photo-overlay</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="450.39999"
x="3219.5"
id="text68976">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="459.39999"
x="3219.5"
id="text68978">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="468.39999"
x="3219.5"
id="text68980">qos=TRUE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="477.39999"
x="3219.5"
id="text68982">location=&quot;photobooth_overlay_easterhegg_2017.png&quot;</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="486.39999"
x="3219.5"
id="text68984">overlay-width=2100</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="495.39999"
x="3219.5"
id="text68986">overlay-height=1400</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2435,554 h 331 c 6,0 12,-6 12,-12 v -81 c 0,-6 -6,-12 -12,-12 h -331 c -6,0 -12,6 -12,12 v 81 c 0,6 6,12 12,12"
id="path68988" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="459.39999"
x="2600.5"
id="text68990">GstCapsFilter</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="468.39999"
x="2600.5"
id="text68992">photo-capsfilter</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="477.39999"
x="2600.5"
id="text68994">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="486.39999"
x="2600.5"
id="text68996">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="495.39999"
x="2600.5"
id="text68998">caps=video/x-raw, width=(int)2100, height=(int)1400, framerate=(fraction)10/1</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1903,554 h 203 c 6,0 12,-6 12,-12 v -81 c 0,-6 -6,-12 -12,-12 h -203 c -6,0 -12,6 -12,12 v 81 c 0,6 6,12 12,12"
id="path69000" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="459.39999"
x="2004.5"
id="text69002">GstVideoScale</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="468.39999"
x="2004.5"
id="text69004">photo-scale</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="477.39999"
x="2004.5"
id="text69006">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="486.39999"
x="2004.5"
id="text69008">parent=(GstBin) photo-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="495.39999"
x="2004.5"
id="text69010">qos=TRUE</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1379,554 h 203 c 6,0 12,-6 12,-12 v -72 c 0,-6 -6,-12 -12,-12 h -203 c -6,0 -12,6 -12,12 v 72 c 0,6 6,12 12,12"
id="path69012" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="468.39999"
x="1480.5"
id="text69014">GstImageFreeze</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="477.39999"
x="1480.5"
id="text69016">photo-freeze</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="486.39999"
x="1480.5"
id="text69018">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="495.39999"
x="1480.5"
id="text69020">parent=(GstBin) photo-bin</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 898,554 h 203 c 6,0 12,-6 12,-12 v -72 c 0,-6 -6,-12 -12,-12 H 898 c -6,0 -12,6 -12,12 v 72 c 0,6 6,12 12,12"
id="path69022" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="468.39999"
x="999.5"
id="text69024">GstJpegDec</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="477.39999"
x="999.5"
id="text69026">photo-decoder</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="486.39999"
x="999.5"
id="text69028">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="495.39999"
x="999.5"
id="text69030">parent=(GstBin) photo-bin</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 641.5,554 h 104 c 6,0 12,-6 12,-12 v -72 c 0,-6 -6,-12 -12,-12 h -104 c -6,0 -12,6 -12,12 v 72 c 0,6 6,12 12,12"
id="path69032" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="468.39999"
x="693.5"
id="text69034">GstAppSrc</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="477.39999"
x="693.5"
id="text69036">photo-appsrc</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="486.39999"
x="693.5"
id="text69038">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="495.39999"
x="693.5"
id="text69040">parent=(GstBin) photo-bin</text>
<path
style="fill:#d3d3d3;stroke:#000000"
inkscape:connector-curvature="0"
d="M 978,619 H 619 v 58 h 359 z"
id="path69042" />
<text
style="font-size:9px;font-family:sans"
font-size="9"
y="630.20001"
x="623"
id="text69044">Legend</text>
<text
style="font-size:9px;font-family:sans"
font-size="9"
y="640.20001"
x="623"
id="text69046">Element-States: [~] void-pending, [0] null, [-] ready, [=] paused, [&gt;] playing</text>
<text
style="font-size:9px;font-family:sans"
font-size="9"
y="650.20001"
x="623"
id="text69048">Pad-Activation: [-] none, [&gt;] push, [&lt;] pull</text>
<text
style="font-size:9px;font-family:sans"
font-size="9"
y="660.20001"
x="623"
id="text69050">Pad-Flags: [b]locked, [f]lushing, [b]locking; upper-case is set</text>
<text
style="font-size:9px;font-family:sans"
font-size="9"
y="670.20001"
x="623"
id="text69052">Pad-Task: [T] has started task, [t] has paused task</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5524,724 v 20 h 54 v -20 z"
id="path69054" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="731.20001"
x="5551"
id="text69056">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="741.20001"
x="5551"
id="text69058">[&gt;][bfb]</text>
<path
style="fill:#ffdddd;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5195,575 v 20 h 54 v -20 z"
id="path69060" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="582.20001"
x="5222"
id="text69062">proxypad1</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="592.20001"
x="5222"
id="text69064">[&gt;][bfb]</text>
<path
style="fill:#ffdddd;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5195,548 v 20 h 54 v -20 z"
id="path69066" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="555.20001"
x="5222"
id="text69068">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="565.20001"
x="5222"
id="text69070">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000;stroke-dasharray:5, 2"
inkscape:connector-curvature="0"
d="m 5222,574.875 v -0.428"
id="path69072" />
<path
inkscape:connector-curvature="0"
d="m 5222,568.02 3.5,10 h -7 z"
id="path69074" />
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5249.089,567.999 c 2.72,1.25 5.4,2.59 7.911,4.001 3.874,2.177 4.262,3.596 8,6 89.796,57.737 202.655,115.14 255.751,141.314"
id="path69076" />
<path
inkscape:connector-curvature="0"
d="m 5529.951,723.83 -10.519,-1.265 3.085,-6.283 z"
id="path69078" />
<text
font-size="9"
y="544.31549"
x="5312.2261"
id="text69080"
style="font-size:9px;font-family:monospace">video/x-raw</text>
<text
font-size="9"
y="554.31549"
x="5312.2261"
id="text69082"
style="font-size:9px;font-family:monospace">width: 2100</text>
<text
font-size="9"
y="564.31549"
x="5312.2261"
id="text69084"
style="font-size:9px;font-family:monospace">height: 1400</text>
<text
font-size="9"
y="574.31549"
x="5312.2261"
id="text69086"
style="font-size:9px;font-family:monospace">interlace-mode: progressive</text>
<text
font-size="9"
y="584.31549"
x="5312.2261"
id="text69088"
style="font-size:9px;font-family:monospace">pixel-aspect-ratio: 374/375</text>
<text
font-size="9"
y="594.31549"
x="5312.2261"
id="text69090"
style="font-size:9px;font-family:monospace">framerate: 10/1</text>
<text
font-size="9"
y="604.31549"
x="5312.2261"
id="text69092"
style="font-size:9px;font-family:monospace">format: BGRx</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 6066,412 h 54 v -20 h -54 z"
id="path69094" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="399.20001"
x="6093"
id="text69096">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="409.20001"
x="6093"
id="text69098">[&gt;][bfb]</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5195,392 v 20 h 54 v -20 z"
id="path69100" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="399.20001"
x="5222"
id="text69102">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="409.20001"
x="5222"
id="text69104">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5717,392 v 20 h 54 v -20 z"
id="path69106" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="399.20001"
x="5744"
id="text69108">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="409.20001"
x="5744"
id="text69110">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.77899998"
inkscape:connector-curvature="0"
d="m 5771.059,402 h 254.73"
id="path69112" />
<path
inkscape:connector-curvature="0"
d="m 6016.833,405.5 v -7 l 10,3.5 z"
id="path69114" />
<text
font-size="6"
y="370.02359"
x="5789.6055"
id="text69118"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="377.02359"
x="5789.6055"
id="text69120"
style="font-size:6px;font-family:monospace">format: { ARGB, BGRA, ABGR, ... }</text>
<text
font-size="6"
y="384.02359"
x="5789.6055"
id="text69122"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="391.02359"
x="5789.6055"
id="text69124"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="398.02359"
x="5789.6055"
id="text69126"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 6066,534 h 54 v -20 h -54 z"
id="path69128" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="521.20001"
x="6093"
id="text69130">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="531.20001"
x="6093"
id="text69132">[&gt;][bfb]</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5195,496 v 20 h 54 v -20 z"
id="path69134" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="503.20001"
x="5222"
id="text69136">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="513.20001"
x="5222"
id="text69138">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5717,496 v 20 h 54 v -20 z"
id="path69140" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="503.20001"
x="5744"
id="text69142">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="513.20001"
x="5744"
id="text69144">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 5771.059,507.006 c 81.66,3.037 98.847,8.034 192.695,11.524"
id="path69146" />
<path
inkscape:connector-curvature="0"
d="m 5965.333,518.49 -10.123,3.125 0.26,-6.995 z"
id="path69148" />
<text
font-size="6"
y="475.87012"
x="5789.812"
id="text69152"
style="font-size:6px;font-family:monospace">image/jpeg</text>
<text
font-size="6"
y="482.87012"
x="5789.812"
id="text69154"
style="font-size:6px;font-family:monospace">width: [ 16, 65535 ]</text>
<text
font-size="6"
y="489.87012"
x="5789.812"
id="text69156"
style="font-size:6px;font-family:monospace">height: [ 16, 65535 ]</text>
<text
font-size="6"
y="496.87012"
x="5789.812"
id="text69158"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<text
font-size="6"
y="503.87012"
x="5789.812"
id="text69160"
style="font-size:6px;font-family:monospace">sof-marker: { 0, 1, 2, 9 }</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4671,518 v 20 h 54 v -20 z"
id="path69162" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="4698"
id="text69164">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="4698"
id="text69166">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000;stroke-dasharray:5, 2"
inkscape:connector-curvature="0"
d="m 4812,518 v 20 h 54 v -20 z"
id="path69168" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="4839"
id="text69170">src_0</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="4839"
id="text69172">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4847.506,538.185 c 10.63,11.87 30.055,30.872 51.494,38.815 97.955,36.29 224.321,24.015 285.927,14.628"
id="path69174" />
<path
inkscape:connector-curvature="0"
d="m 5184.526,588.148 10.425,1.89 -9.328,5.024 z"
id="path69176" />
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="538.20001"
x="4943.5"
id="text69178">video/x-raw</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="548.20001"
x="4943.5"
id="text69180">width: 2100</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="558.20001"
x="4943.5"
id="text69182">height: 1400</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="568.20001"
x="4943.5"
id="text69184">interlace-mode: progressive</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="578.20001"
x="4943.5"
id="text69186">pixel-aspect-ratio: 374/375</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="588.20001"
x="4943.5"
id="text69188">framerate: 10/1</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="598.20001"
x="4943.5"
id="text69190">format: BGRx</text>
<path
style="fill:#ffaaaa;stroke:#000000;stroke-dasharray:5, 2"
inkscape:connector-curvature="0"
d="m 4812,491 v 20 h 54 v -20 z"
id="path69192" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="498.20001"
x="4839"
id="text69194">src_1</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="508.20001"
x="4839"
id="text69196">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4866.237,501.356 318.495,4.157"
id="path69198" />
<path
inkscape:connector-curvature="0"
d="m 5184.948,502.016 9.954,3.63 -10.045,3.37 z"
id="path69200" />
<text
font-size="6"
y="469.95773"
x="5038.1562"
id="text69204"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="476.95773"
x="5038.1562"
id="text69206"
style="font-size:6px;font-family:monospace">format: { I420, YV12, YUY2, ... }</text>
<text
font-size="6"
y="483.95773"
x="5038.1562"
id="text69208"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="490.95773"
x="5038.1562"
id="text69210"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="497.95773"
x="5038.1562"
id="text69212"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="481.461"
x="4904.229"
id="text69214">video/x-raw</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="488.461"
x="4904.229"
id="text69216">width: 2100</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="495.461"
x="4904.229"
id="text69218">height: 1400</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="502.461"
x="4904.229"
id="text69220">interlace-mode: progressive</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="509.461"
x="4904.229"
id="text69222">pixel-aspect-ratio: 374/375</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="516.461"
x="4904.229"
id="text69224">framerate: 10/1</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="523.461"
x="4904.229"
id="text69226">format: BGRx</text>
<path
style="fill:#ffaaaa;stroke:#000000;stroke-dasharray:5, 2"
inkscape:connector-curvature="0"
d="m 4812,464 v 20 h 54 v -20 z"
id="path69228" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="471.20001"
x="4839"
id="text69230">src_2</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="481.20001"
x="4839"
id="text69232">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4866.237,468.88 318.495,-59.874"
id="path69234" />
<path
inkscape:connector-curvature="0"
d="m 5194.902,407.094 -9.182,5.288 -1.293,-6.88 z"
id="path69236" />
<text
font-size="6"
y="389.78491"
x="5011.4868"
id="text69240"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="396.78491"
x="5011.4868"
id="text69242"
style="font-size:6px;font-family:monospace">format: { ARGB, BGRA, ABGR, ... }</text>
<text
font-size="6"
y="403.78491"
x="5011.4868"
id="text69244"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="410.78491"
x="5011.4868"
id="text69246"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="417.78491"
x="5011.4868"
id="text69248"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<text
font-size="6"
y="406.92804"
x="4891.0146"
id="text69250"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="413.92804"
x="4891.0146"
id="text69252"
style="font-size:6px;font-family:monospace">width: 2100</text>
<text
font-size="6"
y="420.92804"
x="4891.0146"
id="text69254"
style="font-size:6px;font-family:monospace">height: 1400</text>
<text
font-size="6"
y="427.92804"
x="4891.0146"
id="text69256"
style="font-size:6px;font-family:monospace">interlace-mode: progressive</text>
<text
font-size="6"
y="434.92804"
x="4891.0146"
id="text69258"
style="font-size:6px;font-family:monospace">pixel-aspect-ratio: 374/375</text>
<text
font-size="6"
y="441.92804"
x="4891.0146"
id="text69260"
style="font-size:6px;font-family:monospace">framerate: 10/1</text>
<text
font-size="6"
y="448.92804"
x="4891.0146"
id="text69262"
style="font-size:6px;font-family:monospace">format: BGRx</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4228,518 v 20 h 54 v -20 z"
id="path69264" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="4255"
id="text69266">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="4255"
id="text69268">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4377,518 v 20 h 54 v -20 z"
id="path69270" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="4404"
id="text69272">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="4404"
id="text69274">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4431.132,528 h 229.629"
id="path69276" />
<path
inkscape:connector-curvature="0"
d="m 4670.934,528 -10,3.5 v -7 z"
id="path69278" />
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="465.20001"
x="4464"
id="text69280">video/x-raw</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="475.20001"
x="4464"
id="text69282">width: 2100</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="485.20001"
x="4464"
id="text69284">height: 1400</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="495.20001"
x="4464"
id="text69286">interlace-mode: progressive</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="505.20001"
x="4464"
id="text69288">pixel-aspect-ratio: 374/375</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="515.20001"
x="4464"
id="text69290">framerate: 10/1</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="525.20001"
x="4464"
id="text69292">format: BGRx</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3687,518 v 20 h 54 v -20 z"
id="path69294" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="3714"
id="text69296">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="3714"
id="text69298">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3828,518 v 20 h 54 v -20 z"
id="path69300" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="3855"
id="text69302">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="3855"
id="text69304">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3882.18,528 h 335.51"
id="path69306" />
<path
inkscape:connector-curvature="0"
d="m 4227.783,528 -10,3.5 v -7 z"
id="path69308" />
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="465.20001"
x="3976.5"
id="text69310">video/x-raw</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="475.20001"
x="3976.5"
id="text69312">width: 2100</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="485.20001"
x="3976.5"
id="text69314">height: 1400</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="495.20001"
x="3976.5"
id="text69316">interlace-mode: progressive</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="505.20001"
x="3976.5"
id="text69318">pixel-aspect-ratio: 374/375</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="515.20001"
x="3976.5"
id="text69320">framerate: 10/1</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="525.20001"
x="3976.5"
id="text69322">format: BGRx</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3122,518 v 20 h 54 v -20 z"
id="path69324" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="3149"
id="text69326">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="3149"
id="text69328">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3263,518 v 20 h 54 v -20 z"
id="path69330" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="3290"
id="text69332">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="3290"
id="text69334">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3317.168,528 h 359.51"
id="path69336" />
<path
inkscape:connector-curvature="0"
d="m 3686.784,528 -10,3.5 v -7 z"
id="path69338" />
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="445.20001"
x="3418.5"
id="text69340">video/x-raw</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="455.20001"
x="3418.5"
id="text69342">format: I420</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="465.20001"
x="3418.5"
id="text69344">width: 2100</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="475.20001"
x="3418.5"
id="text69346">height: 1400</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="485.20001"
x="3418.5"
id="text69348">interlace-mode: progressive</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="495.20001"
x="3418.5"
id="text69350">pixel-aspect-ratio: 374/375</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="505.20001"
x="3418.5"
id="text69352">chroma-site: mpeg2</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="515.20001"
x="3418.5"
id="text69354">colorimetry: 1:4:0:0</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="525.20001"
x="3418.5"
id="text69356">framerate: 10/1</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2503,518 v 20 h 54 v -20 z"
id="path69358" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="2530"
id="text69360">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="2530"
id="text69362">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2644,518 v 20 h 54 v -20 z"
id="path69364" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="2671"
id="text69366">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="2671"
id="text69368">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2698.069,528 h 413.816"
id="path69370" />
<path
inkscape:connector-curvature="0"
d="m 3121.932,528 -10,3.5 v -7 z"
id="path69372" />
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="445.20001"
x="2847.5"
id="text69374">video/x-raw</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="455.20001"
x="2847.5"
id="text69376">format: I420</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="465.20001"
x="2847.5"
id="text69378">width: 2100</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="475.20001"
x="2847.5"
id="text69380">height: 1400</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="485.20001"
x="2847.5"
id="text69382">interlace-mode: progressive</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="495.20001"
x="2847.5"
id="text69384">pixel-aspect-ratio: 374/375</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="505.20001"
x="2847.5"
id="text69386">chroma-site: mpeg2</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="515.20001"
x="2847.5"
id="text69388">colorimetry: 1:4:0:0</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="525.20001"
x="2847.5"
id="text69390">framerate: 10/1</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1907,518 v 20 h 54 v -20 z"
id="path69392" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="1934"
id="text69394">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="1934"
id="text69396">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2048,518 v 20 h 54 v -20 z"
id="path69398" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="2075"
id="text69400">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="2075"
id="text69402">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2102.1,528 h 390.457"
id="path69404" />
<path
inkscape:connector-curvature="0"
d="m 2502.755,528 -10,3.5 v -7 z"
id="path69406" />
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="445.20001"
x="2179.5"
id="text69408">video/x-raw</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="455.20001"
x="2179.5"
id="text69410">format: I420</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="465.20001"
x="2179.5"
id="text69412">width: 2100</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="475.20001"
x="2179.5"
id="text69414">height: 1400</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="485.20001"
x="2179.5"
id="text69416">interlace-mode: progressive</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="495.20001"
x="2179.5"
id="text69418">pixel-aspect-ratio: 374/375</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="505.20001"
x="2179.5"
id="text69420">chroma-site: mpeg2</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="515.20001"
x="2179.5"
id="text69422">colorimetry: 1:4:0:0</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="525.20001"
x="2179.5"
id="text69424">framerate: 10/1</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1383,518 v 20 h 54 v -20 z"
id="path69426" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="1410"
id="text69428">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="1410"
id="text69430">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1524,518 v 20 h 54 v -20 z"
id="path69432" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="1551"
id="text69434">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="1551"
id="text69436">[&gt;][bfb][T]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1578.237,528 h 318.495"
id="path69438" />
<path
inkscape:connector-curvature="0"
d="m 1906.902,528 -10,3.5 v -7 z"
id="path69440" />
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="445.20001"
x="1655.5"
id="text69442">video/x-raw</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="455.20001"
x="1655.5"
id="text69444">format: I420</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="465.20001"
x="1655.5"
id="text69446">width: 2992</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="475.20001"
x="1655.5"
id="text69448">height: 2000</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="485.20001"
x="1655.5"
id="text69450">interlace-mode: progressive</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="495.20001"
x="1655.5"
id="text69452">pixel-aspect-ratio: 1/1</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="505.20001"
x="1655.5"
id="text69454">chroma-site: mpeg2</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="515.20001"
x="1655.5"
id="text69456">colorimetry: 1:4:0:0</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="525.20001"
x="1655.5"
id="text69458">framerate: 10/1</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 902,538 h 54 v -20 h -54 z"
id="path69460" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="929"
id="text69462">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="929"
id="text69464">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1043,538 h 54 v -20 h -54 z"
id="path69466" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="1070"
id="text69468">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="1070"
id="text69470">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.79699999"
inkscape:connector-curvature="0"
d="m 1111.617,528 h 260.974"
id="path69472" />
<path
inkscape:connector-curvature="0"
d="m 1382.866,528 -10,3.5 v -7 z"
id="path69474" />
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="445.20001"
x="1131.5"
id="text69476">video/x-raw</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="455.20001"
x="1131.5"
id="text69478">format: I420</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="465.20001"
x="1131.5"
id="text69480">width: 2992</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="475.20001"
x="1131.5"
id="text69482">height: 2000</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="485.20001"
x="1131.5"
id="text69484">interlace-mode: progressive</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="495.20001"
x="1131.5"
id="text69486">pixel-aspect-ratio: 1/1</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="505.20001"
x="1131.5"
id="text69488">chroma-site: mpeg2</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="515.20001"
x="1131.5"
id="text69490">colorimetry: 1:4:0:0</text>
<text
style="font-size:9px;font-family:monospace"
font-size="9"
y="525.20001"
x="1131.5"
id="text69492">framerate: 0/1</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 720.5,538 v -20 h -54 v 20 z"
id="path69494" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="525.20001"
x="693.5"
id="text69496">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="535.20001"
x="693.5"
id="text69498">[&gt;][bfb][t]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="M 758.436,528 H 875.249"
id="path69500" />
<path
inkscape:connector-curvature="0"
d="m 885.447,528 -10,3.5 v -7 z"
id="path69502" />
<text
font-size="6"
y="525.35199"
x="834.67572"
id="text69504"
style="font-size:6px;font-family:monospace">image/jpeg</text>
<text
font-size="6"
y="525.84064"
x="767.1626"
id="text69506"
style="font-size:6px;font-family:monospace;text-anchor:middle">ANY</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4577.79,195.095 h 167 c 6,0 12,-6 12,-12 v -108 c 0,-6 -6,-12 -12,-12 h -167 c -6,0 -12,6 -12,12 v 108 c 0,6 6,12 12,12"
id="path69508" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="73.495003"
x="4661.29"
id="text69510">GstGtkSink</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="82.495003"
x="4661.29"
id="text69512">video-sink</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="91.495003"
x="4661.29"
id="text69514">[-] -&gt; [&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="100.495"
x="4661.29"
id="text69516">parent=(GstPipeline) photobooth-pipeline</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="109.495"
x="4661.29"
id="text69518">max-lateness=20000000</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="118.495"
x="4661.29"
id="text69520">qos=TRUE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="127.495"
x="4661.29"
id="text69522">widget=((GtkGstWidget*) 0x188e110)</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="136.495"
x="4661.29"
id="text69524">pixel-aspect-ratio=0/1</text>
<path
d="m 618.29,230.095 h 3656.5 c 6,0 12,-6 12,-12 v -159 c 0,-6 -6,-12 -12,-12 H 618.29 c -6,0 -12,6 -12,12 v 159 c 0,6 6,12 12,12"
id="path69526"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:#000000" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="57.494999"
x="2199.04"
id="text69528">GstBin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="66.495003"
x="2199.04"
id="text69530">video-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="75.495003"
x="2199.04"
id="text69532">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="84.495003"
x="2199.04"
id="text69534">parent=(GstPipeline) photobooth-pipeline</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 813.79,222.095 h 370 c 6,0 12,-6 12,-12 v -81 c 0,-6 -6,-12 -12,-12 h -370 c -6,0 -12,6 -12,12 v 81 c 0,6 6,12 12,12"
id="path69536" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="127.495"
x="998.78998"
id="text69538">GstCapsFilter</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="136.495"
x="998.78998"
id="text69540">mjpeg-capsfilter</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="145.495"
x="998.78998"
id="text69542">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="154.495"
x="998.78998"
id="text69544">parent=(GstBin) video-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="163.495"
x="998.78998"
id="text69546">caps=image/jpeg, width=(int)640, height=(int)424, framerate=(fraction)24/1, pixel-asp…</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3662.79,222.095 h 221 c 6,0 12,-6 12,-12 v -90 c 0,-6 -6,-12 -12,-12 h -221 c -6,0 -12,6 -12,12 v 90 c 0,6 6,12 12,12"
id="path69548" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="118.495"
x="3773.29"
id="text69550">GstGdkPixbufOverlay</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="127.495"
x="3773.29"
id="text69552">video-overlay</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="136.495"
x="3773.29"
id="text69554">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="145.495"
x="3773.29"
id="text69556">parent=(GstBin) video-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="154.495"
x="3773.29"
id="text69558">qos=TRUE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="163.495"
x="3773.29"
id="text69560">location=&quot;photobooth_overlay_easterhegg_2017.png&quot;</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3109.79,222.095 h 208 c 6,0 12,-6 12,-12 v -81 c 0,-6 -6,-12 -12,-12 h -208 c -6,0 -12,6 -12,12 v 81 c 0,6 6,12 12,12"
id="path69562" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="127.495"
x="3213.79"
id="text69564">GstCapsFilter</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="136.495"
x="3213.79"
id="text69566">video-capsfilter</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="145.495"
x="3213.79"
id="text69568">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="154.495"
x="3213.79"
id="text69570">parent=(GstBin) video-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="163.495"
x="3213.79"
id="text69572">caps=video/x-raw, width=(int)640, height=(int)424</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2497.79,222.095 h 203 c 6,0 12,-6 12,-12 v -81 c 0,-6 -6,-12 -12,-12 h -203 c -6,0 -12,6 -12,12 v 81 c 0,6 6,12 12,12"
id="path69574" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="127.495"
x="2599.29"
id="text69576">GstVideoConvert</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="136.495"
x="2599.29"
id="text69578">mjpeg-videoconvert</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="145.495"
x="2599.29"
id="text69580">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="154.495"
x="2599.29"
id="text69582">parent=(GstBin) video-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="163.495"
x="2599.29"
id="text69584">qos=TRUE</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1901.79,222.095 h 203 c 6,0 12,-6 12,-12 v -81 c 0,-6 -6,-12 -12,-12 h -203 c -6,0 -12,6 -12,12 v 81 c 0,6 6,12 12,12"
id="path69586" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="127.495"
x="2003.29"
id="text69588">GstVideoScale</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="136.495"
x="2003.29"
id="text69590">mjpeg-videoscale</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="145.495"
x="2003.29"
id="text69592">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="154.495"
x="2003.29"
id="text69594">parent=(GstBin) video-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="163.495"
x="2003.29"
id="text69596">qos=TRUE</text>
<path
style="fill:#aaffaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1377.79,222.095 h 203 c 6,0 12,-6 12,-12 v -72 c 0,-6 -6,-12 -12,-12 h -203 c -6,0 -12,6 -12,12 v 72 c 0,6 6,12 12,12"
id="path69598" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="136.495"
x="1479.29"
id="text69600">GstJpegDec</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="145.495"
x="1479.29"
id="text69602">mjpeg-decoder</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="154.495"
x="1479.29"
id="text69604">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="163.495"
x="1479.29"
id="text69606">parent=(GstBin) video-bin</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 641.29,222.095 h 103 c 6,0 12,-6 12,-12 v -99 c 0,-6 -6,-12 -12,-12 h -103 c -6,0 -12,6 -12,12 v 99 c 0,6 6,12 12,12"
id="path69608" />
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="109.495"
x="692.78998"
id="text69610">GstFdSrc</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="118.495"
x="692.78998"
id="text69612">mjpeg-fdsrc</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="127.495"
x="692.78998"
id="text69614">[&gt;]</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="136.495"
x="692.78998"
id="text69616">parent=(GstBin) video-bin</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="145.495"
x="692.78998"
id="text69618">blocksize=65536</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="154.495"
x="692.78998"
id="text69620">do-timestamp=TRUE</text>
<text
style="font-size:8px;font-family:sans;text-anchor:middle"
font-size="8"
y="163.495"
x="692.78998"
id="text69622">fd=5</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4633.79,179.095 h 54 v -20 h -54 z"
id="path69624" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="166.295"
x="4660.79"
id="text69626">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="176.295"
x="4660.79"
id="text69628">[&gt;][bfb]</text>
<path
style="fill:#ffdddd;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4216.79,206.095 h 54 v -20 h -54 z"
id="path69630" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="4243.79"
id="text69632">proxypad0</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="4243.79"
id="text69634">[&gt;][bfb]</text>
<path
style="fill:#ffdddd;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4216.79,179.095 h 54 v -20 h -54 z"
id="path69636" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="166.295"
x="4243.79"
id="text69638">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="176.295"
x="4243.79"
id="text69640">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000;stroke-dasharray:5, 2"
inkscape:connector-curvature="0"
d="m 4243.79,185.97 v -0.429"
id="path69642" />
<path
inkscape:connector-curvature="0"
d="m 4240.29,189.114 3.5,-10 3.5,10 z"
id="path69644" />
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 4270.83,169.095 h 352.487"
id="path69646" />
<path
inkscape:connector-curvature="0"
d="m 4623.541,165.594 10,3.5 -10,3.5 z"
id="path69648" />
<text
font-size="6"
y="135.81483"
x="4442.7573"
id="text69652"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="142.81483"
x="4442.7573"
id="text69654"
style="font-size:6px;font-family:monospace">format: { BGRx, BGRA }</text>
<text
font-size="6"
y="149.81483"
x="4442.7573"
id="text69656"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="156.81483"
x="4442.7573"
id="text69658"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="163.81483"
x="4442.7573"
id="text69660"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<text
font-size="6"
y="164.76173"
x="4346.3984"
id="text69662"
style="font-size:6px;font-family:monospace;text-anchor:middle">ANY</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3675.79,206.095 h 54 v -20 h -54 z"
id="path69664" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="3702.79"
id="text69666">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="3702.79"
id="text69668">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3816.79,206.095 h 54 v -20 h -54 z"
id="path69670" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="3843.79"
id="text69672">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="3843.79"
id="text69674">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="M 3870.969,196.095 H 4206.48"
id="path69676" />
<path
inkscape:connector-curvature="0"
d="m 4206.573,192.594 10,3.5 -10,3.5 z"
id="path69678" />
<text
font-size="6"
y="191.18921"
x="4118.2368"
id="text69682"
style="font-size:6px;font-family:monospace;text-anchor:middle">ANY</text>
<text
font-size="6"
y="164.04726"
x="3899.6257"
id="text69684"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="171.04726"
x="3899.6257"
id="text69686"
style="font-size:6px;font-family:monospace">format: { RGBx, RGB, BGR, BG... }</text>
<text
font-size="6"
y="178.04726"
x="3899.6257"
id="text69688"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="185.04726"
x="3899.6257"
id="text69690"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="192.04726"
x="3899.6257"
id="text69692"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3115.79,206.095 h 54 v -20 h -54 z"
id="path69694" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="3142.79"
id="text69696">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="3142.79"
id="text69698">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3256.79,206.095 h 54 v -20 h -54 z"
id="path69700" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="3283.79"
id="text69702">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="3283.79"
id="text69704">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 3310.959,196.095 h 354.477"
id="path69706" />
<path
inkscape:connector-curvature="0"
d="m 3665.683,192.594 10,3.5 -10,3.5 z"
id="path69708" />
<text
font-size="6"
y="164.41243"
x="3498.2544"
id="text69712"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="171.41243"
x="3498.2544"
id="text69714"
style="font-size:6px;font-family:monospace">format: { RGBx, RGB, BGR, BG... }</text>
<text
font-size="6"
y="178.41243"
x="3498.2544"
id="text69716"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="185.41243"
x="3498.2544"
id="text69718"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="192.41243"
x="3498.2544"
id="text69720"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<text
font-size="6"
y="194.27696"
x="3364.5698"
id="text69722"
style="font-size:6px;font-family:monospace;text-anchor:middle">ANY</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2501.79,206.095 h 54 v -20 h -54 z"
id="path69724" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="2528.79"
id="text69726">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="2528.79"
id="text69728">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2642.79,206.095 h 54 v -20 h -54 z"
id="path69730" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="2669.79"
id="text69732">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="2669.79"
id="text69734">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2696.92,196.095 h 408.618"
id="path69736" />
<path
inkscape:connector-curvature="0"
d="m 3105.77,192.594 10,3.5 -10,3.5 z"
id="path69738" />
<text
font-size="6"
y="195.24525"
x="3017.6763"
id="text69742"
style="font-size:6px;font-family:monospace;text-anchor:middle">ANY</text>
<text
font-size="6"
y="165.74066"
x="2717.7722"
id="text69744"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="172.74066"
x="2717.7722"
id="text69746"
style="font-size:6px;font-family:monospace">format: { I420, YV12, YUY2, ... }</text>
<text
font-size="6"
y="179.74066"
x="2717.7722"
id="text69748"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="186.74066"
x="2717.7722"
id="text69750"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="193.74066"
x="2717.7722"
id="text69752"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<text
font-size="6"
y="200.74066"
x="2717.7722"
id="text69754"
style="font-size:6px;font-family:monospace">video/x-raw(ANY)</text>
<text
font-size="6"
y="207.74066"
x="2717.7722"
id="text69756"
style="font-size:6px;font-family:monospace">format: { I420, YV12, YUY2, ... }</text>
<text
font-size="6"
y="214.74066"
x="2717.7722"
id="text69758"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="221.74066"
x="2717.7722"
id="text69760"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="228.74066"
x="2717.7722"
id="text69762"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1905.79,206.095 h 54 v -20 h -54 z"
id="path69764" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="1932.79"
id="text69766">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="1932.79"
id="text69768">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2046.79,206.095 h 54 v -20 h -54 z"
id="path69770" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="2073.79"
id="text69772">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="2073.79"
id="text69774">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 2100.89,196.095 h 390.457"
id="path69776" />
<path
inkscape:connector-curvature="0"
d="m 2491.545,192.594 10,3.5 -10,3.5 z"
id="path69778" />
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="165.895"
x="2313.0449"
id="text69782">video/x-raw</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="172.895"
x="2313.0449"
id="text69784">format: { I420, YV12, YUY2, ... }</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="179.895"
x="2313.0449"
id="text69786">width: [ 1, 2147483647 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="186.895"
x="2313.0449"
id="text69788">height: [ 1, 2147483647 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="193.895"
x="2313.0449"
id="text69790">framerate: [ 0/1, 2147483647/1 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="200.895"
x="2313.0449"
id="text69792">video/x-raw(ANY)</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="207.895"
x="2313.0449"
id="text69794">format: { I420, YV12, YUY2, ... }</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="214.895"
x="2313.0449"
id="text69796">width: [ 1, 2147483647 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="221.895"
x="2313.0449"
id="text69798">height: [ 1, 2147483647 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="228.895"
x="2313.0449"
id="text69800">framerate: [ 0/1, 2147483647/1 ]</text>
<text
font-size="6"
y="165.97865"
x="2130.0771"
id="text69802"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="172.97865"
x="2130.0771"
id="text69804"
style="font-size:6px;font-family:monospace">format: { I420, YV12, YUY2, ... }</text>
<text
font-size="6"
y="179.97865"
x="2130.0771"
id="text69806"
style="font-size:6px;font-family:monospace">width: [ 1, 32767 ]</text>
<text
font-size="6"
y="186.97865"
x="2130.0771"
id="text69808"
style="font-size:6px;font-family:monospace">height: [ 1, 32767 ]</text>
<text
font-size="6"
y="193.97865"
x="2130.0771"
id="text69810"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<text
font-size="6"
y="200.97865"
x="2130.0771"
id="text69812"
style="font-size:6px;font-family:monospace">video/x-raw(ANY)</text>
<text
font-size="6"
y="207.97865"
x="2130.0771"
id="text69814"
style="font-size:6px;font-family:monospace">format: { I420, YV12, YUY2, ... }</text>
<text
font-size="6"
y="214.97865"
x="2130.0771"
id="text69816"
style="font-size:6px;font-family:monospace">width: [ 1, 32767 ]</text>
<text
font-size="6"
y="221.97865"
x="2130.0771"
id="text69818"
style="font-size:6px;font-family:monospace">height: [ 1, 32767 ]</text>
<text
font-size="6"
y="228.97865"
x="2130.0771"
id="text69820"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1381.79,206.095 h 54 v -20 h -54 z"
id="path69822" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="1408.79"
id="text69824">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="1408.79"
id="text69826">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1522.79,206.095 h 54 v -20 h -54 z"
id="path69828" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="1549.79"
id="text69830">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="1549.79"
id="text69832">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1577.027,196.095 h 318.495"
id="path69834" />
<path
inkscape:connector-curvature="0"
d="m 1895.691,192.594 10,3.5 -10,3.5 z"
id="path69836" />
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="165.895"
x="1717.191"
id="text69840">video/x-raw</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="172.895"
x="1717.191"
id="text69842">format: { I420, YV12, YUY2, ... }</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="179.895"
x="1717.191"
id="text69844">width: [ 1, 32767 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="186.895"
x="1717.191"
id="text69846">height: [ 1, 32767 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="193.895"
x="1717.191"
id="text69848">framerate: [ 0/1, 2147483647/1 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="200.895"
x="1717.191"
id="text69850">video/x-raw(ANY)</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="207.895"
x="1717.191"
id="text69852">format: { I420, YV12, YUY2, ... }</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="214.895"
x="1717.191"
id="text69854">width: [ 1, 32767 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="221.895"
x="1717.191"
id="text69856">height: [ 1, 32767 ]</text>
<text
style="font-size:6px;font-family:monospace"
font-size="6"
y="228.895"
x="1717.191"
id="text69858">framerate: [ 0/1, 2147483647/1 ]</text>
<text
font-size="6"
y="163.1234"
x="1595.3698"
id="text69860"
style="font-size:6px;font-family:monospace">video/x-raw</text>
<text
font-size="6"
y="170.1234"
x="1595.3698"
id="text69862"
style="font-size:6px;font-family:monospace">format: { I420, RGB, BGR, RG... }</text>
<text
font-size="6"
y="177.1234"
x="1595.3698"
id="text69864"
style="font-size:6px;font-family:monospace">width: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="184.1234"
x="1595.3698"
id="text69866"
style="font-size:6px;font-family:monospace">height: [ 1, 2147483647 ]</text>
<text
font-size="6"
y="191.1234"
x="1595.3698"
id="text69868"
style="font-size:6px;font-family:monospace">framerate: [ 0/1, 2147483647/1 ]</text>
<path
style="fill:#aaaaff;stroke:#000000"
inkscape:connector-curvature="0"
d="m 954.79,206.095 v -20 h -54 v 20 z"
id="path69870" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="927.78998"
id="text69872">sink</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="927.78998"
id="text69874">[&gt;][bfb]</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 1095.79,206.095 v -20 h -54 v 20 z"
id="path69876" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="1068.79"
id="text69878">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="1068.79"
id="text69880">[&gt;][bfb]</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.65499997"
inkscape:connector-curvature="0"
d="m 1195.296,196.095 h 176.085"
id="path69882" />
<path
inkscape:connector-curvature="0"
d="m 1371.656,192.594 10,3.5 -10,3.5 z"
id="path69884" />
<text
font-size="6"
y="193.23761"
x="1261.1095"
id="text69888"
style="font-size:6px;font-family:monospace">image/jpeg</text>
<path
style="fill:#ffaaaa;stroke:#000000"
inkscape:connector-curvature="0"
d="m 719.29,186.095 h -54 v 20 h 54 z"
id="path69892" />
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="193.295"
x="692.28998"
id="text69894">src</text>
<text
style="font-size:9px;font-family:sans;text-anchor:middle"
font-size="9"
y="203.295"
x="692.28998"
id="text69896">[&gt;][bfb][T]</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.99800003"
inkscape:connector-curvature="0"
d="m 755.53,196.095 h 36.01"
id="path69898" />
<path
inkscape:connector-curvature="0"
d="m 791.736,192.594 10,3.5 -10,3.5 z"
id="path69900" />
<text
style="font-size:9px;font-family:monospace;text-anchor:middle"
font-size="9"
y="193.295"
x="771.28998"
id="text69902">ANY</text>
<text
style="font-size:104.72100067px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;fill:#4d4d4d;stroke-width:18.5529995;enable-background:new;filter:url(#filter_blur_large);opacity:0.6;"
x="700.99213"
y="-2.213721"
id="text10889"
font-size="104.721">
<tspan
id="tspan10887"
x="700.99213"
y="-2.213721"
style="-inkscape-font-specification:'Sans, Normal';;fill:#4d4d4d;">gstreamer pipelines</tspan>
</text>
<text
font-size="104.721"
id="text15884"
y="-5.1760001"
x="697.073"
style="font-size:104.72100067px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;enable-background:new">
<tspan
style="-inkscape-font-specification:'Sans, Normal';"
y="-5.1760001"
x="697.073"
id="tspan15900">gstreamer pipelines</tspan>
</text>
</g>
<rect
y="648.79358"
x="215.72411"
height="64.035164"
width="114.36358"
id="rect_gst_1"
style="display:inline;visibility:hidden;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.67281973;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:23;stroke-opacity:1;enable-background:new">
<title
id="title17128">GStreamer Pipelines 1</title>
</rect>
</g>
<rect
transform="rotate(-14.981588)"
y="747.85236"
x="160.14362"
height="32.959064"
width="212.78593"
id="rect_gst_pipelines"
style="display:inline;visibility:hidden;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.65842211;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:23;stroke-opacity:1" />
<g
id="group_software_ux">
<path
style="opacity:0.8;fill:#e6e6e6;stroke:#000000;stroke-width:0.249;stroke-dashoffset:23;enable-background:new"
inkscape:connector-curvature="0"
d="M 313.314,395.102 H 429.38 V 511.168 H 313.314 Z"
id="rect8984-9" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.17;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 334.334,439.497 h -9.166 v -14.22 h 18.33 v 14.22 z"
id="path8640" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.17;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 334.334,456.22 h -9.166 v -14.197 h 18.33 v 14.198 z"
id="path8648" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.17;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 334.334,472.944 h -9.166 v -14.197 h 18.33 v 14.197 z"
id="path8656" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.17;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 334.334,489.691 h -9.166 v -14.22 h 18.33 v 14.22 z"
id="path8664" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.17;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 334.334,506.415 h -9.166 v -14.197 h 18.33 v 14.197 z"
id="path8672" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.17;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 334.334,422.751 h -9.166 v -14.198 h 18.33 v 14.198 z"
id="path8680" />
<text
font-size="2.12"
y="415.819"
x="334.28699"
style="font-size:2.11999989px;line-height:800%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle"
id="text_software_ux">
<tspan
sodipodi:role="line"
x="334.28699"
y="415.819"
id="tspan8682">init</tspan>
<tspan
sodipodi:role="line"
x="334.28699"
y="432.77899"
id="tspan8642">preview</tspan>
<tspan
sodipodi:role="line"
x="334.28699"
y="449.73901"
id="tspan8650">countdown</tspan>
<tspan
sodipodi:role="line"
x="334.28699"
y="466.69901"
id="tspan8658">take photo</tspan>
<tspan
sodipodi:role="line"
x="334.28699"
y="483.659"
id="tspan8666">print n copies</tspan>
<tspan
sodipodi:role="line"
x="334.28699"
y="500.61899"
id="tspan8674">upload photo</tspan>
</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.185"
inkscape:connector-curvature="0"
d="m 334.334,439.496 v 1.076"
id="path8688" />
<path
style="fill-rule:evenodd;stroke-width:0.77600002"
inkscape:connector-curvature="0"
d="m 334.262,441.978 1.006,-1.593 h -1.99 z"
id="path8690" />
<path
style="fill:none;stroke:#000000;stroke-width:0.185"
inkscape:connector-curvature="0"
d="m 334.334,456.22 v 1.077"
id="path8694" />
<path
style="fill-rule:evenodd;stroke-width:0.77600002"
inkscape:connector-curvature="0"
d="m 334.262,458.722 1.006,-1.568 h -1.99 z"
id="path8696" />
<path
style="fill:none;stroke:#000000;stroke-width:0.155;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 325.129,465.856 c -1.706,0 -2.985,-2.092 -3.837,-5.23 -0.853,-3.138 -1.28,-7.322 -1.28,-11.506 0,-4.184 0.427,-8.368 1.28,-11.506 0.603,-2.221 1.42,-3.919 2.451,-4.72"
id="path8700" />
<path
style="fill:none;stroke:#000000;stroke-width:0.185"
inkscape:connector-curvature="0"
d="m 334.334,472.945 v 1.077"
id="path8704" />
<path
style="fill-rule:evenodd;stroke-width:0.77600002"
inkscape:connector-curvature="0"
d="m 334.262,475.467 1.006,-1.569 h -1.99 z"
id="path8706" />
<path
style="fill:none;stroke:#000000;stroke-width:0.185"
inkscape:connector-curvature="0"
d="m 334.334,489.694 v 1.075"
id="path8710" />
<path
style="fill-rule:evenodd;stroke-width:0.77600002"
inkscape:connector-curvature="0"
d="m 334.262,492.235 1.006,-1.593 h -1.99 z"
id="path8712" />
<path
style="fill:none;stroke:#000000;stroke-width:0.15000001;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 325.127,499.31 c -12.868,0 -13.376,-61.753 -1.522,-66.624"
id="path8716" />
<path
style="fill:none;stroke:#000000;stroke-width:0.15000001;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 325.127,482.584 c -9.733,0 -9.7,-43.676 -1.84,-49.547"
id="path8720" />
<path
style="fill:none;stroke:#000000;stroke-width:0.185"
inkscape:connector-curvature="0"
d="m 334.334,422.748 v 1.075"
id="path9420" />
<path
style="fill-rule:evenodd;stroke-width:0.77600002"
inkscape:connector-curvature="0"
d="m 334.262,425.21 1.006,-1.57 h -1.99 z"
id="path9422" />
<image
sodipodi:absref="pb_screenshot_countdown.png"
xlink:href="pb_screenshot_countdown.png"
style="enable-background:new"
width="43.174999"
height="34.540001"
preserveAspectRatio="none"
id="image53754"
x="347.57501"
y="405.30701" />
<image
sodipodi:absref="pb_screenshot_ask_print.png"
xlink:href="pb_screenshot_ask_print.png"
style="enable-background:new"
width="43.174999"
height="34.540001"
preserveAspectRatio="none"
id="image53743"
x="347.57501"
y="440.24399" />
<image
sodipodi:absref="pb_screenshot_upload.png"
xlink:href="pb_screenshot_upload.png"
style="enable-background:new"
width="43.174999"
height="34.540001"
preserveAspectRatio="none"
id="image53765"
x="347.57501"
y="475.18201" />
<path
style="fill:none;stroke:#000000;stroke-width:0.148;stroke-dashoffset:23"
inkscape:connector-curvature="0"
d="M 321.751,405.381 H 428.18 V 439.77 H 321.751 Z"
id="rect_software_ux_1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.148;stroke-dashoffset:23;enable-background:new"
inkscape:connector-curvature="0"
d="M 321.751,440.319 H 428.18 v 34.389 H 321.751 Z"
id="rect_software_ux_2" />
<path
style="fill:none;stroke:#000000;stroke-width:0.148;stroke-dashoffset:23;enable-background:new"
inkscape:connector-curvature="0"
d="M 321.751,475.258 H 428.18 v 34.389 H 321.751 Z"
id="rect_software_ux_3" />
<text
word-spacing="0"
letter-spacing="0"
font-size="2.12"
id="text53837"
y="408.49847"
x="393.16666"
style="font-style:normal;font-weight:normal;font-size:2.12013507px;line-height:137.99999952%;font-family:Sans;letter-spacing:0px;word-spacing:0px">
<tspan
sodipodi:role="line"
id="tspan53905"
y="408.49847"
x="393.16666">load configuration from ini file:</tspan>
<tspan
sodipodi:role="line"
id="tspan12580"
y="411.42426"
x="393.16666">ui template, overlay image,</tspan>
<tspan
sodipodi:role="line"
id="tspan12582"
y="414.35004"
x="393.16666">save path, countdown duration,</tspan>
<tspan
sodipodi:role="line"
id="tspan53907"
y="417.27585"
x="393.16666">localization strings,</tspan>
<tspan
id="tspan122892"
sodipodi:role="line"
y="420.20163"
x="393.16666">settings for sounds, camera,</tspan>
<tspan
sodipodi:role="line"
id="tspan12598"
y="423.12741"
x="393.16666">printer and copies, upload api</tspan>
<tspan
sodipodi:role="line"
y="426.05319"
x="393.16666"
id="tspan110996" />
<tspan
id="tspan122896"
sodipodi:role="line"
y="428.97897"
x="393.16666" />
<tspan
sodipodi:role="line"
id="tspan53903"
y="431.90475"
x="393.16666">when a camera is detected,</tspan>
<tspan
sodipodi:role="line"
y="434.83057"
x="393.16666"
id="tspan19916">preview (live video)</tspan>
<tspan
sodipodi:role="line"
y="437.75635"
x="393.16666"
id="tspan13786">starts automatically</tspan>
<tspan
sodipodi:role="line"
y="440.68213"
x="393.16666"
id="tspan13784" />
<tspan
sodipodi:role="line"
y="443.60791"
x="393.16666"
id="tspan111002" />
<tspan
sodipodi:role="line"
y="446.53369"
x="393.16666"
id="tspan111004" />
<tspan
sodipodi:role="line"
y="449.45947"
x="393.16666"
id="tspan111012">touching the screen</tspan>
<tspan
sodipodi:role="line"
y="452.38528"
x="393.16666"
id="tspan9181">starts countdown</tspan>
<tspan
sodipodi:role="line"
id="tspan12610"
y="455.31107"
x="393.16666" />
<tspan
sodipodi:role="line"
y="458.23685"
x="393.16666"
id="tspan111006" />
<tspan
sodipodi:role="line"
y="461.16263"
x="393.16666"
id="tspan111014" />
<tspan
sodipodi:role="line"
y="464.08841"
x="393.16666"
id="tspan111008" />
<tspan
sodipodi:role="line"
y="467.01419"
x="393.16666"
id="tspan111010">after exposure ask</tspan>
<tspan
sodipodi:role="line"
y="469.94"
x="393.16666"
id="tspan9185">number of copies</tspan>
<tspan
sodipodi:role="line"
id="tspan12620"
y="472.86578"
x="393.16666" />
<tspan
sodipodi:role="line"
y="475.79156"
x="393.16666"
id="tspan111018" />
<tspan
sodipodi:role="line"
y="478.71735"
x="393.16666"
id="tspan111022" />
<tspan
sodipodi:role="line"
y="481.64313"
x="393.16666"
id="tspan111024" />
<tspan
sodipodi:role="line"
y="484.56891"
x="393.16666"
id="tspan111026">print or cancel</tspan>
<tspan
sodipodi:role="line"
id="tspan12640"
y="487.49472"
x="393.16666" />
<tspan
sodipodi:role="line"
y="490.4205"
x="393.16666"
id="tspan111028" />
<tspan
sodipodi:role="line"
y="493.34628"
x="393.16666"
id="tspan111030">upload (to imgur/facebook)</tspan>
<tspan
sodipodi:role="line"
y="496.27206"
x="393.16666"
id="tspan9189">or cancel</tspan>
<tspan
sodipodi:role="line"
id="tspan53843"
y="499.19785"
x="393.16666" />
<tspan
sodipodi:role="line"
y="502.12363"
x="393.16666"
id="tspan111032" />
<tspan
sodipodi:role="line"
y="505.04944"
x="393.16666"
id="tspan111034">status bar shows time, status</tspan>
<tspan
sodipodi:role="line"
y="507.97522"
x="393.16666"
id="tspan19924">and remaining prints</tspan>
</text>
<path
style="fill-rule:evenodd;stroke-width:0.77600002"
inkscape:connector-curvature="0"
d="m 325.098,432.28 -3.119,0.545 0.954,1.752 z"
id="path8722" />
<text
y="401.03665"
x="318.50906"
style="font-size:4.47755098px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;filter:url(#filter_blur_mid);fill:#4d4d4d;"
id="text8675"
font-size="4.24">
<tspan
style="font-size:4.47755098px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;fill:#4d4d4d;"
x="318.50906"
y="401.03665"
id="tspan8673">photobooth user interface software (simplified)</tspan>
</text>
<text
font-size="4.24"
id="text6385"
style="font-size:4.47755098px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';"
x="318.30884"
y="400.83685">
<tspan
id="tspan6383"
y="400.83685"
x="318.30884"
style="font-size:4.47755098px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';">photobooth user interface software (simplified)</tspan>
</text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.93599999;stroke-dashoffset:23;enable-background:new"
inkscape:connector-curvature="0"
d="m 456.93434,377.56 h 119.064 v 119.064 h -119.064 z"
id="rect_software_flowchart" />
<g
id="group_software_flowchart">
<path
style="opacity:0.8;fill:#e6e6e6;stroke:#000000;stroke-width:0.249;stroke-dashoffset:23"
inkscape:connector-curvature="0"
d="m 458.3505,379.058 h 116.066 v 116.066 h -116.066 z"
id="rect8984" />
<path
style="fill:#ffff66;fill-rule:evenodd;stroke:#996600;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8726"
d="m 496.97815,426.79026 h -5.77651 v -4.91904 h 11.53924 v 4.91904 z" />
<text
font-size=".652"
y="424.57928"
x="494.03406"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8730">
<tspan
x="494.03366"
y="424.57928"
id="tspan8728">CAPTURE_VIDEO</tspan>
</text>
<path
style="fill:#ffff66;fill-rule:evenodd;stroke:#996600;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8744"
d="m 496.97815,443.2231 h -5.77651 v -2.4876 h 11.53924 v 2.4876 z" />
<text
font-size=".652"
y="442.22784"
x="493.88147"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8748">
<tspan
x="493.88138"
y="442.22784"
id="tspan8746">CAPTURE_PHOTO</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8752"
d="m 479.22041,425.56077 h -5.76378 v -2.459 h 11.53923 v 2.459 z" />
<text
font-size=".652"
y="424.57928"
x="475.92975"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8756">
<tspan
x="475.92987"
y="424.57928"
id="tspan8754">photo_booth_preview</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8760"
d="m 479.22041,436.32627 h -5.76378 v -2.45899 h 11.53923 v 2.45899 z" />
<text
font-size=".652"
y="434.95898"
x="477.11792"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8766">
<tspan
sodipodi:role="line"
x="477.11789"
y="434.95898"
id="tspan8762">photo_booth_</tspan>
<tspan
sodipodi:role="line"
x="476.95209"
y="435.73273"
id="tspan8764">snapshot_start</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8770"
d="m 479.22041,458.08516 h -5.76378 v -2.50139 h 11.53923 v 2.50139 z" />
<text
font-size=".652"
y="457.08987"
x="474.68542"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8774">
<tspan
x="474.68567"
y="457.08987"
id="tspan8772">photo_booth_snapshot_taken</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.07376251;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8778"
d="m 479.2204,470.67921 h -5.77883 v -2.48908 h 11.56935 v 2.48908 z" />
<text
font-size=".652"
y="469.6832"
x="474.05054"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8782">
<tspan
x="474.05045"
y="469.6832"
id="tspan8780">photo_booth_button_print_clicked</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8786"
d="m 479.22041,474.89125 h -5.76378 v -2.45899 h 11.53923 v 2.45899 z" />
<text
font-size=".652"
y="473.9108"
x="476.44061"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8790">
<tspan
x="476.44104"
y="473.9108"
id="tspan8788">photo_booth_print</tspan>
</text>
<path
style="fill:#ffff66;fill-rule:evenodd;stroke:#996600;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8794"
d="m 496.97815,418.2495 h -5.77651 v -4.93387 h 11.53924 v 4.93387 z" />
<text
font-size=".652"
y="416.02475"
x="494.46231"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8798">
<tspan
x="494.46237"
y="416.02475"
id="tspan8796">CAPTURE_INIT</tspan>
</text>
<path
style="fill:none;stroke:#6600ff;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8802"
d="m 502.74088,415.77568 h 1.96295 v 3.15111 h -34.35698 v 5.40342 h 2.25232" />
<path
style="fill:#6600ff;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,424.33127 -0.94014,-0.58084 v 1.17438 z"
id="path8804" />
<path
style="fill:none;stroke:#996600;stroke-width:0.11235046;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8808"
d="m 484.99693,424.33127 h 6.0171" />
<path
style="fill:#996600;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 491.20164,424.33127 -1.09171,0.59354 h -0.0827 v -0.0413 l 0.93908,-0.51087 v -0.0827 l -0.93908,-0.49815 v -0.0402 h 0.0816 z"
id="path8810" />
<path
style="fill:#990000;fill-rule:evenodd;stroke:#330033;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8814"
d="m 514.6532,426.79026 h -5.76166 v -4.91904 h 11.53923 v 4.91904 z" />
<text
font-size=".652"
y="424.19241"
x="512.74933"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8820">
<tspan
sodipodi:role="line"
x="512.74921"
y="424.19241"
id="tspan8816">gp_camera_</tspan>
<tspan
sodipodi:role="line"
x="512.12646"
y="424.96719"
id="tspan8818">capture_preview</tspan>
</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8824"
d="m 502.74088,424.33127 h 5.29319" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 508.89154,424.33127 -0.94015,-0.58084 v 1.17438 z"
id="path8826" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8830"
d="m 496.97815,426.8051 c 0,2.92959 -4.58942,1.96189 -4.58942,-2.47489 0,-4.42194 3.65033,-5.15434 4.43785,-3.27512" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 496.97815,421.87122 0.38687,-1.03659 -1.1606,0.23529 z"
id="path8832" />
<text
font-size=".652"
y="428.28369"
x="516.17596"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8838">
<tspan
sodipodi:role="line"
x="516.17651"
y="428.28369"
id="tspan8834">writes preview JPEG</tspan>
<tspan
sodipodi:role="line"
x="517.39276"
y="429.05737"
id="tspan8836">to MOVIEPIPE</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8842"
d="m 532.3431,432.96848 h -5.77651 v -4.93389 h 11.55407 v 4.93389 z" />
<text
font-size=".652"
y="430.37064"
x="531.59979"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8848">
<tspan
sodipodi:role="line"
x="531.59961"
y="430.37064"
id="tspan8844">fdsrc</tspan>
<tspan
sodipodi:role="line"
x="530.88098"
y="431.12955"
id="tspan8846">video_bin</tspan>
</text>
<path
style="fill:#ffff66;fill-rule:evenodd;stroke:#996600;stroke-width:0.122752;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8852"
d="m 496.98092,386.38592 h -8.09846 v -4.90123 h 16.1776 v 4.90123 z" />
<text
font-size="1.043"
y="384.32217"
x="493.24658"
style="font-size:1.10548604px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8856">
<tspan
x="493.24628"
y="384.32217"
id="tspan8854">capture_thread</tspan>
</text>
<path
style="fill:#990000;fill-rule:evenodd;stroke:#330033;stroke-width:0.12275266;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8860"
d="m 514.65,386.38592 h -8.07764 v -4.91501 h 16.17759 v 4.91501 z" />
<text
font-size="1.043"
y="384.30734"
x="512.4176"
style="font-size:1.10548604px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8864">
<tspan
x="512.41754"
y="384.30734"
id="tspan8862">libgphoto</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.12275255;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8868"
d="m 532.34289,386.38592 h -8.09845 v -4.91501 h 16.19837 v 4.91501 z" />
<text
font-size="1.043"
y="384.32217"
x="529.63684"
style="font-size:1.10548604px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8872">
<tspan
x="529.63684"
y="384.32217"
id="tspan8870-5">GStreamer</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.122752;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8876"
d="m 479.21806,386.38592 h -8.08061 v -4.90123 h 16.17759 v 4.90123 z" />
<text
font-size="1.043"
y="384.32217"
x="476.31665"
style="font-size:1.10548604px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8880">
<tspan
x="476.3168"
y="384.32217"
id="tspan8878-1">PhotoBooth</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8884"
d="m 479.23313,439.78158 h -5.7765 v -2.51517 h 11.55301 v 2.51517 z" />
<text
font-size=".652"
y="438.38672"
x="477.13171"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8890">
<tspan
sodipodi:role="line"
x="477.1315"
y="438.38672"
id="tspan8886-7">photo_booth_</tspan>
<tspan
sodipodi:role="line"
x="476.45459"
y="439.16046"
id="tspan8888-4">snapshot_prepare</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8894"
d="m 479.23313,443.23688 h -5.7765 v -2.51517 h 11.55301 v 2.51517 z" />
<text
font-size=".652"
y="441.841"
x="477.13171"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8900">
<tspan
sodipodi:role="line"
x="477.1315"
y="441.841"
id="tspan8896">photo_booth_</tspan>
<tspan
sodipodi:role="line"
x="476.66214"
y="442.60092"
id="tspan8898">snapshot_trigger</tspan>
</text>
<path
style="fill:#00cc00;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8904"
d="m 550.03299,443.2231 h -5.77649 v -2.4876 h 11.54028 v 2.4876 z" />
<text
font-size=".652"
y="442.22784"
x="546.55298"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8908">
<tspan
x="546.55249"
y="442.22784"
id="tspan8906">photo_booth_led_flash</tspan>
</text>
<path
style="fill:#00cc00;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8912"
d="m 550.03299,446.22158 h -5.77649 v -2.4876 h 11.54028 v 2.4876 z" />
<text
font-size=".652"
y="445.22632"
x="546.47034"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8916">
<tspan
x="546.46997"
y="445.22632"
id="tspan8914">photo_booth_led_black</tspan>
</text>
<path
style="fill:#00cc00;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8920"
d="m 550.03299,436.32627 h -5.77649 v -2.50139 h 11.55301 v 2.50139 z" />
<text
font-size=".652"
y="435.33099"
x="545.62671"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8924">
<tspan
x="545.62628"
y="435.33099"
id="tspan8922">photo_booth_led_countdown</tspan>
</text>
<path
style="fill:#00cc00;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8928"
d="m 550.03299,485.67053 h -5.77649 v -2.50138 h 11.55301 v 2.50138 z" />
<text
font-size=".652"
y="484.6763"
x="546.30396"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8932">
<tspan
x="546.30408"
y="484.6763"
id="tspan8930">photo_booth_led_printer</tspan>
</text>
<path
style="fill:#00cc00;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.12275265;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8936"
d="m 550.03554,386.38592 h -8.09843 v -4.91501 h 16.17906 v 4.91501 z" />
<text
font-size="1.043"
y="384.30734"
x="546.22125"
style="font-size:1.10548604px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8940">
<tspan
x="546.22089"
y="384.30734"
id="tspan8938">photobooth_led</tspan>
</text>
<path
style="fill:#990000;fill-rule:evenodd;stroke:#330033;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8944"
d="m 514.6532,450.38703 h -5.76166 v -4.93281 h 11.53923 v 4.93281 z" />
<text
font-size=".652"
y="446.64236"
x="510.61969"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8956">
<tspan
sodipodi:role="line"
x="510.62"
y="446.64236"
id="tspan8946">(photo_booth_take_photo)</tspan>
<tspan
sodipodi:role="line"
x="511.58835"
y="447.40231"
id="tspan8948">gp_camera_capture</tspan>
<tspan
sodipodi:role="line"
x="511.62885"
y="448.17609"
id="tspan8950">gp_camera_file_get</tspan>
<tspan
sodipodi:role="line"
x="510.55118"
y="448.936"
id="tspan8952">gp_file_get_data_and_size</tspan>
<tspan
sodipodi:role="line"
x="511.173"
y="449.69598"
id="tspan8954">gp_camera_file_delete</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8968"
d="m 532.3431,459.30194 h -5.77651 v -4.94766 h 11.55407 v 4.94766 z" />
<text
font-size=".652"
y="455.92929"
x="527.28809"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8976">
<tspan
sodipodi:role="line"
x="527.28766"
y="455.92929"
id="tspan8970">photo_booth_catch_photo_buffer</tspan>
<tspan
sodipodi:role="line"
x="528.11688"
y="457.46405"
id="tspan8972">showprint&amp;cancelbuttons</tspan>
<tspan
sodipodi:role="line"
x="529.52625"
y="458.22296"
id="tspan8974">show copies slider</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8980"
d="m 532.3431,466.79126 h -5.77651 v -2.47276 h 11.55407 v 2.47382 z" />
<text
font-size=".652"
y="465.81088"
x="527.48102"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8984">
<tspan
x="527.4809"
y="465.81088"
id="tspan8982">photo_booth_catch_print_buffer</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8988"
d="m 479.22041,466.79126 h -5.76378 v -2.47276 h 11.53923 v 2.47382 z" />
<text
font-size=".652"
y="465.42398"
x="477.11792"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8994">
<tspan
sodipodi:role="line"
x="477.11789"
y="465.42398"
id="tspan8990">photo_booth_</tspan>
<tspan
sodipodi:role="line"
x="474.02225"
y="466.18289"
id="tspan8992">process_photo_remove_elements</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8998"
d="m 479.22041,393.33921 h -5.76378 v -4.94766 h 11.53923 v 4.94766 z" />
<text
font-size=".652"
y="389.96661"
x="478.25204"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9008">
<tspan
sodipodi:role="line"
x="478.25171"
y="389.96661"
id="tspan9000">main()</tspan>
<tspan
sodipodi:role="line"
x="476.49634"
y="390.72766"
id="tspan9002">photo_booth_new</tspan>
<tspan
sodipodi:role="line"
x="475.08618"
y="391.50143"
id="tspan9004">photo_booth_load_settings</tspan>
<tspan
sodipodi:role="line"
x="475.70889"
y="392.26132"
id="tspan9006">photo_booth_class_init</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.07447989;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9012-1"
d="m 479.2204,396.9685 h -5.77848 v -2.53031 h 11.56864 v 2.53031 z" />
<text
font-size=".652"
y="395.50626"
x="475.72202"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9018">
<tspan
sodipodi:role="line"
x="475.72241"
y="395.50626"
id="tspan9014">photo_booth_activate /</tspan>
<tspan
sodipodi:role="line"
x="476.35754"
y="396.26624"
id="tspan9016">photo_booth_open</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9022"
d="m 532.3431,400.64228 h -5.76167 v -2.45899 h 11.53923 v 2.45899 z" />
<text
font-size=".652"
y="399.66187"
x="527.6463"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9026">
<tspan
x="527.64667"
y="399.66187"
id="tspan9024">photo_booth_setup_gstreamer</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9030"
d="m 532.3431,404.13998 h -5.76167 v -2.46005 h 11.53923 v 2.45899 z" />
<text
font-size=".652"
y="403.15851"
x="529.96863"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9034">
<tspan
x="529.96851"
y="403.15851"
id="tspan9032">build_video_bin</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9038"
d="m 532.3431,407.27201 h -5.77651 v -2.45898 h 11.5403 v 2.45898 z" />
<text
font-size=".652"
y="406.48981"
x="529.92621"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9042">
<tspan
x="529.92676"
y="406.48981"
id="tspan9040">build_photo_bin</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9046"
d="m 479.23313,412.25254 h -5.7765 v -2.51517 h 11.55301 v 2.51517 z" />
<text
font-size=".652"
y="411.24353"
x="474.06433"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9050">
<tspan
x="474.06393"
y="411.24353"
id="tspan9048">photo_booth_video_widget_ready</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9054"
d="m 479.23313,400.6709 h -5.7765 v -2.50139 h 11.55301 v 2.50139 z" />
<text
font-size=".652"
y="399.66187"
x="474.9483"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9058">
<tspan
x="474.94849"
y="399.66187"
id="tspan9056">photo_booth_setup_window</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9062"
d="m 532.3431,410.40405 h -5.77651 v -2.45899 h 11.5403 v 2.45899 z" />
<text
font-size=".652"
y="409.43317"
x="528.24091"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9066">
<tspan
x="528.24133"
y="409.43317"
id="tspan9064">photo_booth_bus_callback</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9070"
d="m 532.3431,416.01097 h -5.76167 v -4.93387 h 11.53923 v 4.93387 z" />
<text
font-size=".652"
y="413.41315"
x="528.55896"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9076">
<tspan
sodipodi:role="line"
x="528.5592"
y="413.41315"
id="tspan9072">set capsfilter dimensions</tspan>
<tspan
sodipodi:role="line"
x="527.89581"
y="414.17307"
id="tspan9074">set video-overlay dimensions</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9080"
d="m 479.22041,429.25031 h -5.76378 v -2.47277 h 11.53923 v 2.47277 z" />
<text
font-size=".652"
y="428.2699"
x="474.87939"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9084">
<tspan
x="474.87961"
y="428.2699"
id="tspan9082">photo_booth_preview_ready</tspan>
</text>
<path
style="fill:#990000;fill-rule:evenodd;stroke:#330033;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9088"
d="m 514.6532,406.73783 h -5.76166 v -4.93388 h 11.53923 v 4.93388 z" />
<text
font-size=".652"
y="404.52686"
x="511.46356"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9092-6">
<tspan
x="511.46307"
y="404.52686"
id="tspan9090">gp_file_new_from_fd</tspan>
</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9096"
d="m 526.58143,409.18516 h -56.30348 v 1.80926 h 2.32122" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,410.99442 -0.94014,-0.59355 v 1.17438 z"
id="path9098" />
<path
style="fill:#ffff66;fill-rule:evenodd;stroke:#996600;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9102"
d="m 496.97815,406.73783 h -5.77651 v -4.93388 h 11.53924 v 4.93388 z" />
<text
font-size=".652"
y="404.52686"
x="493.13531"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9106">
<tspan
x="493.13568"
y="404.52686"
id="tspan9104">start new capture_thread</tspan>
</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9110"
d="m 502.74088,404.27778 h 5.29319" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 508.89154,404.27778 -0.94015,-0.59356 v 1.17438 z"
id="path9112" />
<path
style="fill:none;stroke:#ff3333;stroke-width:0.41442481;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9116"
d="m 520.43077,424.33127 h 2.73669 v 6.17715 h 1.72766" />
<path
style="fill:#ff3333;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 525.68262,429.60963 -0.89879,0.88502 0.89879,0.91152 0.89881,-0.91152 z"
id="path9118" />
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9122"
d="m 479.22041,478.9825 h -5.76378 v -2.44626 h 11.53923 v 2.44626 z" />
<text
font-size=".652"
y="478.01477"
x="475.41785"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9126">
<tspan
x="475.41782"
y="478.01477"
id="tspan9124">photo_booth_begin_print</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9130"
d="m 479.22041,482.29897 h -5.76378 v -2.46006 h 11.53923 v 2.46006 z" />
<text
font-size=".652"
y="481.31747"
x="475.41785"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9134">
<tspan
x="475.41782 475.8042 476.17749 476.56378 476.75558 477.14267 477.526 477.90073 478.28696 478.66049 478.86661 479.23898 479.62527 480.01144 480.23257 480.6189 481.11581 481.50198 481.87555 482.26175 482.63516"
y="481.31747"
id="tspan9132">photo_booth_draw_page</tspan>
</text>
<path
style="fill:none;stroke:#ff3333;stroke-width:0.41442481;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9138"
d="m 532.3431,466.79126 c 0,11.40251 -15.21501,14.07049 -45.66092,14.27823"
sodipodi:nodetypes="cc" />
<path
style="fill:#ff3333;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 485.89467,481.96721 0.89774,-0.89774 -0.89774,-0.89881 -0.89881,0.91152 z"
id="path9140" />
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9144"
d="m 479.22041,485.61542 h -5.76378 v -2.44521 h 11.53923 v 2.44521 z" />
<text
font-size=".652"
y="484.63495"
x="475.50156"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9148">
<tspan
x="475.50125"
y="484.63495"
id="tspan9146">photo_booth_print_done</tspan>
</text>
<path
style="fill:none;stroke:#6600ff;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9152"
d="m 496.97815,443.2231 v 2.37738 h -26.7002 v 11.25201 h 2.32122" />
<path
style="fill:#6600ff;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,456.82811 -0.94014,-0.58083 v 1.17438 z"
id="path9154" />
<path
style="fill:none;stroke:#6600ff;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9158"
d="m 538.12066,456.82811 h 2.59891 v 3.10872 h -70.44162 v 1.9905 h 2.32122" />
<path
style="fill:#6600ff;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,461.92733 -0.94014,-0.59355 v 1.17332 z"
id="path9160" />
<path
style="fill:none;stroke:#6600ff;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9164"
d="m 470.27795,461.92733 v 3.6355 h 2.32122" />
<path
style="fill:#6600ff;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,465.56177 -0.94014,-0.59356 v 1.17439 z"
id="path9166" />
<path
style="fill:none;stroke:#ff9900;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9170"
d="m 484.99693,473.66176 h 1.96189 v 2.10075 h -16.68087 v 2.00322 h 2.32122" />
<path
style="fill:#ff9900;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,477.76573 -0.94014,-0.59355 v 1.17437 z"
id="path9172" />
<path
style="fill:none;stroke:#ff9900;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9176"
d="m 470.27795,477.76573 v 3.30374 h 2.32122" />
<path
style="fill:#ff9900;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,481.06947 -0.94014,-0.58083 v 1.17438 z"
id="path9178" />
<path
style="fill:none;stroke:#ff9900;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9182"
d="m 470.27795,481.06947 v 3.33024 h 2.32122" />
<path
style="fill:#ff9900;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,484.39971 -0.94014,-0.59355 v 1.17332 z"
id="path9184" />
<path
style="fill:none;stroke:#ff9900;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9188"
d="m 526.58143,461.92733 h -3.41291 v 3.6355 h 2.55544" />
<path
style="fill:#ff9900;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 526.58143,465.56177 -0.94013,-0.59356 v 1.17439 z"
id="path9190" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9194"
d="m 532.35793,453.24774 h -5.7765 v -2.62541 h 11.55302 v 2.62541 z" />
<text
font-size=".652"
y="452.18359"
x="529.60931"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9198">
<tspan
x="529.60956"
y="452.18359"
id="tspan9196">photo_bin src pad</tspan>
</text>
<path
style="fill:none;stroke:#ff3333;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9202"
d="m 538.13445,451.93556 h 2.66673 v 1.85166 h -17.63372 v 3.03983 h 2.5565" />
<path
style="fill:#ff3333;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 526.58143,456.82811 -0.94013,-0.58083 v 1.17438 z"
id="path9204" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9208"
d="m 532.3431,463.15684 h -5.77651 V 460.683 h 11.55407 v 2.47384 z" />
<text
font-size=".652"
y="462.17642"
x="529.18109"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9212">
<tspan
x="529.18097"
y="462.17642"
id="tspan9210">appsink in photo_bin</tspan>
</text>
<path
style="fill:none;stroke:#3465a4;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9216"
d="m 484.99693,456.82811 35.72427,0.0137" />
<path
style="fill:#3465a4;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 520.79008,456.24728 h -0.0402 l -0.0423,0.0137 -0.0402,0.0265 -0.0137,0.0414 v 0.0826 l 0.0562,0.0563 0.0276,0.0137 1.61637,0.35931 -1.60259,0.36036 -0.0424,0.0127 -0.0402,0.0265 -0.0137,0.0413 v 0.0826 l 0.0424,0.0414 0.0402,0.0127 h 0.0552 -0.0127 l 2.10075,-0.46954 h 0.0402 l 0.0414,-0.0265 0.0265,-0.0424 0.0137,-0.0402 -0.0137,-0.0414 -0.0265,-0.0413 -0.0414,-0.0265 -0.0402,-0.0137 z"
id="path9218" />
<text
font-size=".652"
y="456.35855"
x="499.46524"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#3465a4"
id="text9224">
<tspan
sodipodi:role="line"
x="499.46487"
y="456.35855"
id="tspan9220">gst_pad_add_probe</tspan>
<tspan
sodipodi:role="line"
x="495.72034"
y="461.45779"
id="tspan9222">g_signal_connect (appsink, &quot;new-sample&quot;...)</tspan>
</text>
<text
font-size=".652"
y="469.59894"
x="-481.34396"
transform="rotate(-90)"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9228">
<tspan
x="-481.34393"
y="469.59894"
id="tspan9226">g_signal</tspan>
</text>
<text
font-size=".652"
y="429.00226"
x="490.95187"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9234">
<tspan
sodipodi:role="line"
x="490.95166"
y="429.00226"
id="tspan9230">poll timeout</tspan>
<tspan
sodipodi:role="line"
x="490.26117"
y="429.776"
id="tspan9232">with preview fps</tspan>
</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9238"
d="m 488.10564,399.41279 v 4.86499 h 2.23959" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 491.20164,404.27778 -0.94014,-0.59356 v 1.17438 z"
id="path9240" />
<path
style="fill:#ffff66;fill-rule:evenodd;stroke:#996600;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9244"
d="m 496.97815,453.24774 h -5.77651 v -2.48762 h 11.53924 v 2.48762 z" />
<text
font-size=".652"
y="452.25244"
x="493.71506"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9248">
<tspan
x="493.71555"
y="452.25244"
id="tspan9246">CAPTURE_PAUSED</tspan>
</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9258"
d="m 503.74991,441.97877 v 5.92914 h -6.77176 v 2.85221" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 496.97815,450.76012 0.58082,-0.93908 h -1.17544 z"
id="path9260" />
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9264"
d="m 479.22041,432.80207 h -5.76378 v -2.45899 h 11.53923 v 2.45899 z" />
<text
font-size=".652"
y="431.43481"
x="477.11792"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9270">
<tspan
sodipodi:role="line"
x="477.11789"
y="431.43481"
id="tspan9266">photo_booth_</tspan>
<tspan
sodipodi:role="line"
x="476.17819"
y="432.20853"
id="tspan9268">background_clicked</tspan>
</text>
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9274"
d="m 468.68808,486.45911 h 3.44154 l 1.14787,1.24433 -1.14787,1.25705 h -3.44154 z" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9278"
d="m 485.00964,399.41279 h 40.71432" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 526.58143,399.41279 -0.94013,-0.57977 v 1.17437 z"
id="path9280" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9284"
d="m 485.00964,410.99442 h 38.15782 v 2.54379 h 2.5565" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 526.58143,413.53714 -0.94013,-0.57976 v 1.17438 z"
id="path9286" />
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9290"
d="m 479.22041,488.96049 h -5.76378 v -2.46004 h 11.53923 v 2.45899 z" />
<text
font-size=".652"
y="487.5921"
x="477.11792"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9296">
<tspan
sodipodi:role="line"
x="477.11789"
y="487.5921"
id="tspan9292">photo_booth_</tspan>
<tspan
sodipodi:role="line"
x="475.83301"
y="488.36588"
id="tspan9294">button_cancel_clicked</tspan>
</text>
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9300"
d="m 479.22041,492.66382 h -5.76378 v -2.4452 h 11.53923 v 2.4452 z" />
<text
font-size=".652"
y="491.68234"
x="476.12271"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9304">
<tspan
x="476.12283"
y="491.68234"
id="tspan9302">photo_booth_cancel</tspan>
</text>
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9308"
d="M 486.95882,484.39971 V 487.731" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,491.44811 -0.94014,-0.59462 v 1.17438 z"
id="path9310" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9314"
d="m 484.99693,487.731 h 1.96189 v 1.89406 h -15.46408 v 1.82305 h 1.10443" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9320"
d="m 486.95882,435.09677 v 1.69268 h -16.68087 v 1.73507 h 2.08696" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,438.52346 -1.17545,0.59355 v -1.17331 z m -0.1802,0 -0.91152,-0.45576 v 0.92637 z"
id="path9322" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9326"
d="m 470.27795,438.52346 v 3.45531 h 2.08696" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,441.97877 -1.17545,0.58083 v -1.17439 z m -0.1802,0 -0.91152,-0.46954 v 0.9253 z"
id="path9328" />
<path
style="fill:none;stroke:#996600;stroke-width:0.11235046;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9332"
d="m 485.00964,441.97877 h 5.97047" />
<path
style="fill:none;stroke:#996600;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9338"
d="m 490.97481,415.77568 h -24.91848 v 77.77001 h 20.90143 v -2.06577 h -1.94601"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#996600;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 491.20164,415.77568 -1.09171,0.59461 h -0.0827 v -0.0414 l 0.93908,-0.51087 v -0.0837 l -0.93908,-0.49709 v -0.0402 h 0.0816 z"
id="path9340" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9344"
d="m 496.97815,406.75161 v 5.70761" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 496.97815,413.31563 0.58082,-0.93909 h -1.17544 z"
id="path9346" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9350"
d="m 484.99693,390.86565 h 1.96189 v 3.01752 h -16.68087 v 1.79071 h 2.32122"
sodipodi:nodetypes="cccccc" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,395.67388 -0.94014,-0.59461 v 1.17439 z"
id="path9352" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9356"
d="m 484.99693,395.71578 h 1.97566 v 1.77646 h -16.69464 v 1.92161 h 2.32122"
sodipodi:nodetypes="cccccc" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,399.41279 -0.94014,-0.57977 v 1.17437 z"
id="path9358" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9362"
d="m 479.22041,425.56077 v 0.64655 h -8.87356 v 1.8135 h 2.01806" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,428.02082 -1.17545,0.58082 v -1.17544 z m -0.1802,0 -0.91152,-0.46955 v 0.92531 z"
id="path9364" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9374"
d="m 506.92858,441.95969 v 5.92384 h 1.10549" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 508.89154,447.92699 -0.94015,-0.59356 v 1.17438 z"
id="path9376" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9380"
d="m 532.35793,449.24021 h -5.7765 v -2.62539 h 11.55302 v 2.62539 z" />
<text
font-size=".652"
y="447.78918"
x="531.22675"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text9386">
<tspan
sodipodi:role="line"
x="531.22632"
y="447.78918"
id="tspan9382">appsrc</tspan>
<tspan
sodipodi:role="line"
x="530.85303"
y="448.54916"
id="tspan9384">photo_bin</tspan>
</text>
<path
style="fill:none;stroke:#ff3333;stroke-width:0.41442481;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9390"
d="m 520.43077,447.92699 h 4.46435" />
<path
style="fill:#ff3333;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 525.68262,447.02924 -0.89879,0.89775 0.89879,0.89879 0.89881,-0.89879 z"
id="path9392" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9396"
d="m 484.99693,435.09677 h 58.40316" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 544.2565,435.06922 -0.94015,-0.58083 v 1.17438 z"
id="path9398" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9402"
d="m 502.74088,441.97877 h 40.65815" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 544.2565,441.97877 -0.94015,-0.59356 v 1.17439 z"
id="path9404" />
<path
style="fill:none;stroke:#ff3333;stroke-width:0.41442481;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9408"
d="m 538.13445,447.92699 h 2.66673 v 2.04563 h -17.63372 v 1.96294 h 2.10074" />
<path
style="fill:#ff3333;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 526.58143,451.93556 -1.43829,-0.8988 v 1.79655 z"
id="path9410" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9414"
d="m 484.99693,484.39971 h 29.62978 v 0.0275 h 28.77338" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 544.2565,484.42726 -0.94015,-0.59355 v 1.17438 z"
id="path9416" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9426"
d="m 538.12066,399.41279 h 3.06845 v 1.7976 h -18.02165 v 1.69904 h 2.5565" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 526.58143,402.90943 -0.94013,-0.59355 v 1.17438 z"
id="path9428" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9432"
d="m 523.16746,402.90943 v 3.15429 h 2.5565" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 526.58143,406.03511 -0.94013,-0.57978 v 1.17439 z"
id="path9434" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9438"
d="m 484.99693,431.57257 h 1.96189 v 1.77005 h -16.68087 v 1.75415 h 2.32122" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,435.09677 -0.94014,-0.57976 v 1.17438 z"
id="path9440" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9444"
d="m 484.99693,469.43519 h 1.96189 v 2.0156 h -16.68087 v 2.21097 h 2.32122"
sodipodi:nodetypes="cccccc" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 473.45663,473.66176 -0.94014,-0.59461 v 1.17439 z"
id="path9446" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9450"
d="m 540.80118,441.97877 v 2.99954 h 2.59891" />
<path
style="fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 544.2565,444.97831 -0.94015,-0.58083 v 1.17544 z"
id="path9452" />
<path
style="fill:#330099;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9456"
d="m 479.22041,463.15684 h -5.76378 V 460.683 h 11.53923 v 2.47384 z" />
<text
font-size=".652"
y="461.78848"
x="477.11792"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text9462">
<tspan
sodipodi:role="line"
x="477.11789"
y="461.78848"
id="tspan9458">photo_booth_</tspan>
<tspan
sodipodi:role="line"
x="474.53329"
y="462.54947"
id="tspan9460">process_photo_plug_elements</tspan>
</text>
<path
style="fill:none;stroke:#3465a4;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9466"
d="M 484.99693,461.92733 H 520.7212" />
<path
style="fill:#3465a4;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 520.79008,461.33272 h -0.0402 l -0.0423,0.0137 -0.0402,0.0402 -0.0137,0.0286 v 0.0816 l 0.0286,0.0276 0.0265,0.0276 0.0276,0.0127 1.61637,0.36036 -1.60259,0.35826 -0.0414,0.0137 -0.0402,0.0275 -0.0137,0.0402 v 0.0837 l 0.0413,0.0402 0.0402,0.0137 h 0.0551 -0.0127 l 2.10075,-0.45576 0.0414,-0.0137 0.0402,-0.0275 0.0276,-0.0402 0.0127,-0.0402 -0.0127,-0.0423 -0.0276,-0.0402 -0.0402,-0.0265 -0.0424,-0.0137 z"
id="path9468" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9472"
d="m 468.68808,468.17709 h 3.44154 l 1.14787,1.25811 -1.14787,1.25705 h -3.44154 z" />
<path
style="fill:#729fcf;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path9476"
d="m 468.70187,430.30174 h 3.44154 l 1.14681,1.24327 -1.14681,1.25706 h -3.44154 z" />
<path
style="fill:none;stroke:#000000;stroke-width:0.10387117;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8824-8"
d="m 502.74088,438.52346 h 5.29319" />
<path
style="fill:#990000;fill-rule:evenodd;stroke:#330033;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8960"
d="m 514.66804,439.78158 h -5.7765 v -2.51517 h 11.55302 v 2.51517 z" />
<text
font-size=".652"
y="438.26486"
x="510.88678"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#ffffff"
id="text8964">
<tspan
sodipodi:role="line"
id="tspan8962"
x="510.88678"
y="438.26486">photo_booth_cam_close</tspan>
<tspan
sodipodi:role="line"
x="510.88678"
y="439.13974"
id="tspan28985">photo_booth_cam_init</tspan>
</text>
<path
style="fill-rule:evenodd;stroke-width:0.83944869;enable-background:new"
inkscape:connector-curvature="0"
d="m 508.89154,438.54678 -0.94015,-0.58083 v 1.17438 z"
id="path8826-2" />
<text
word-spacing="0"
letter-spacing="0"
font-size=".838"
style="font-size:0.88820451px;line-height:0.15776546px;font-family:Sans;letter-spacing:0;word-spacing:0"
x="544.41522"
y="453.23395"
id="text10084">
<tspan
sodipodi:role="line"
x="544.41522"
y="453.23395"
style="line-height:1.25501454px"
id="tspan10092">photo_booth_catch_photo_buffer runs 3 times,</tspan>
<tspan
sodipodi:role="line"
x="544.41522"
y="454.48895"
style="line-height:1.25501454px"
id="tspan13642">driven by image frames passing photo_bin</tspan>
<tspan
sodipodi:role="line"
x="544.41522"
y="455.74399"
style="line-height:1.25501454px"
id="tspan10096">1. frame is displayed and will trigger plugging</tspan>
<tspan
sodipodi:role="line"
x="544.41522"
y="456.99899"
style="line-height:1.25501454px"
id="tspan10100">tee ! color correction ! appsink</tspan>
<tspan
sodipodi:role="line"
x="544.41522"
y="458.254"
style="line-height:1.25501454px"
id="tspan10102">and tee ! jpegenc ! filesink elements</tspan>
<tspan
sodipodi:role="line"
x="544.41522"
y="459.50903"
style="line-height:1.25501454px"
id="tspan10098">2. frame will be processed by gst (saved on</tspan>
<tspan
sodipodi:role="line"
x="544.41522"
y="460.76404"
style="line-height:1.25501454px"
id="tspan13646">disk, color matched and buffered for printing)</tspan>
<tspan
sodipodi:role="line"
x="544.41522"
y="462.01904"
style="line-height:1.25501454px"
id="tspan13650">3. frame will remove elements</tspan>
</text>
<text
font-size=".652"
y="461.60724"
x="471.05844"
style="font-size:0.69106126px;line-height:3.55402374px;font-family:Arial;-inkscape-font-specification:ArialMT;enable-background:new"
id="text9224-9">
<tspan
sodipodi:role="line"
style="line-height:3.55402374px;text-align:center;text-anchor:middle"
x="471.05844"
y="461.60724"
id="tspan9222-9">1.</tspan>
<tspan
sodipodi:role="line"
style="line-height:3.55402374px;text-align:center;text-anchor:middle"
x="471.05844"
y="465.1723"
id="tspan13697">3.</tspan>
</text>
<path
style="fill:#ffff66;fill-rule:evenodd;stroke:#996600;stroke-width:0.10387117;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
id="path8734"
d="m 496.97815,439.7678 h -5.77651 v -2.4876 h 11.53924 v 2.4876 z" />
<text
font-size=".652"
y="438.39944"
x="495.12579"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT"
id="text8740">
<tspan
sodipodi:role="line"
x="495.12579 495.62466 496.07843 496.5473 496.97379 497.47263 497.96875 498.4379"
y="438.39944"
id="tspan8736">CAPTURE_</tspan>
<tspan
sodipodi:role="line"
x="494.66998 495.12509 495.62402 496.09061 496.51794 497.01678 497.20831 497.75864 498.29578 498.76556"
y="439.16046"
id="tspan8738">PRETRIGGER</tspan>
</text>
<path
style="fill:#996600;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
id="path8889"
d="m 491.20164,438.51711 -1.09171,0.59354 h -0.0827 v -0.0402 l 0.93908,-0.51087 v -0.0827 l -0.93908,-0.49815 v -0.0402 h 0.0816 z" />
<path
style="fill:#996600;fill-rule:evenodd;stroke-width:0.83944869"
inkscape:connector-curvature="0"
d="m 491.20164,441.97241 -1.09171,0.59355 h -0.0827 v -0.0402 l 0.93908,-0.51088 v -0.0826 l -0.93908,-0.49817 v -0.0413 h 0.0816 z"
id="path8891" />
<path
style="fill:none;stroke:#996600;stroke-width:0.11235046;stroke-miterlimit:10"
inkscape:connector-curvature="0"
stroke-miterlimit="10"
d="m 485.00964,438.52346 h 5.97047"
id="path8923" />
<text
font-size=".652"
y="418.46573"
x="479.23563"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#330099;stroke-width:0.83944869;enable-background:new"
id="text9234-0">
<tspan
style="text-align:center;text-anchor:middle;stroke-width:0.83944869"
id="tspan9232-9"
x="479.23563"
y="418.46573">g_main_context_invoke</tspan>
</text>
<text
font-size=".652"
y="413.93564"
x="487.99368"
style="font-size:0.69106126px;font-family:Arial;-inkscape-font-specification:ArialMT;fill:#996600;stroke-width:0.83944869;enable-background:new"
id="text9234-4">
<tspan
sodipodi:role="line"
style="text-align:center;text-anchor:middle;stroke-width:0.83944869"
id="tspan9232-5"
x="487.99368"
y="413.93564">send command</tspan>
<tspan
sodipodi:role="line"
style="text-align:center;text-anchor:middle;stroke-width:0.83944869"
x="487.99368"
y="414.81052"
id="tspan8975">to message pipe</tspan>
</text>
<text
id="text6409"
y="409.49863"
x="543.9856"
style="font-size:4.7240181px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;stroke-width:0.83732885;enable-background:new;filter:url(#filter_blur_mid);fill:#4d4d4d;"
font-size="4.457">
<tspan
style="stroke-width:0.83732885;fill:#4d4d4d;"
id="tspan6401"
y="409.49863"
x="543.9856"
sodipodi:role="line">photobooth</tspan>
<tspan
style="stroke-width:0.83732885;fill:#4d4d4d;"
id="tspan6403"
y="415.40366"
x="543.9856"
sodipodi:role="line">software</tspan>
<tspan
style="stroke-width:0.83732885;fill:#4d4d4d;"
id="tspan6405"
y="421.30869"
x="543.9856"
sodipodi:role="line">flowchart</tspan>
<tspan
style="stroke-width:0.83732885;fill:#4d4d4d;"
id="tspan6407"
y="427.21368"
x="543.9856"
sodipodi:role="line">(simplified)</tspan>
</text>
<text
font-size="4.457"
style="font-size:4.7240181px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;stroke-width:0.83732885;enable-background:new"
x="543.78564"
y="409.29855"
id="text18629">
<tspan
sodipodi:role="line"
x="543.78564"
y="409.29855"
id="tspan18637"
style="stroke-width:0.83732885">photobooth</tspan>
<tspan
sodipodi:role="line"
x="543.78564"
y="415.20358"
id="tspan13229"
style="stroke-width:0.83732885">software</tspan>
<tspan
sodipodi:role="line"
x="543.78564"
y="421.10861"
id="tspan13231"
style="stroke-width:0.83732885">flowchart</tspan>
<tspan
sodipodi:role="line"
x="543.78564"
y="427.01361"
id="tspan18635"
style="stroke-width:0.83732885">(simplified)</tspan>
</text>
</g>
</g>
<g
style="display:inline"
inkscape:label="Hardware"
id="layer_hardware"
inkscape:groupmode="layer"
transform="translate(0,59.266667)">
<path
d="M 603.38229,-59.134376 H 2031.8657 V 1083.601 H 603.38229 Z"
id="rect_hardware"
style="fill:none;stroke:#e6e6e6;stroke-width:0.26458332;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:23"
inkscape:connector-curvature="0" />
<g
inkscape:label="Cabinet"
style="display:inline;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:groupmode="layer"
stroke-miterlimit="10"
id="layer_cabinet"
transform="matrix(1.53047,0,0,1.53047,1290.444,-130.202)">
<g
id="Feet">
<path
d="m 185.935,481.432 8.4,4.08 L 361.68,707.1 351.3,700.2 Z"
id="polygon2"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
<path
d="M 194.482,485.209 243.475,508.01 384,702.12 l -21.42,4.74 z"
id="polygon4"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="m 285,500.28 22.14,-1.591 -9.48,274.051 -24.3,-0.18 z"
id="polygon6"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="m 314.024,500.533 28.681,-3.48 L 200.1,713.04 180.06,707.4 Z"
id="polygon8"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="m 304.457,567.908 1.783,-2.654 -6.501,193.929 -2.079,13.557 z"
id="polygon10"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
<path
d="m 213.323,705.72 -13.62,7.32 142.694,-215.869 10.44,-1.26 -56.75,84.452 -15.744,14.717 -0.447,9.807 z"
id="polygon12"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
</g>
<g
id="Top_and_Bottom"
style="fill:#83754e">
<path
d="m 168.66,473.64 171.36,-16.92 87.96,30.884 -183.9,20.656 z"
id="Bottom"
inkscape:connector-curvature="0" />
<path
d="M 164.16,91.687 339.071,103.59 433.38,89.333 238.08,74.04 Z"
id="Top"
inkscape:connector-curvature="0" />
</g>
<g
id="Right_Side">
<path
d="M 180.205,455.452 331.44,441.54 330.06,112.26 172.758,104.761 Z"
id="Panel"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="M 339.84,456.72 338.7,103.56 157,91.2 l 7.486,382.883 z m -6.3,-345.06 1.56,331.02 -154.861,14.395 0.001,0.065 -0.036,-0.062 -0.024,0.002 v -0.043 l -0.243,-0.412 -7.563,-352.438 0.365,-0.268 z"
id="Frame"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<g
id="Shadowing_1_">
<path
d="m 172.74,103.92 0.018,0.841 157.302,7.499 3.48,-0.6 z"
id="polygon20"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
<path
d="m 335.1,442.68 -3.66,-1.14 -151.235,13.912 0.034,1.622 z"
id="polygon22"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
<path
d="m 333.54,111.66 -3.48,0.6 1.38,329.28 3.66,1.14 z"
id="polygon24"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 172.375,104.188 7.563,352.437 0.242,0.412 0.024,0.041 0.036,0.062 -0.001,-0.066 -0.034,-1.622 -7.447,-350.691 -0.018,-0.841 z"
id="polygon26"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
<path
d="m 180.248,457.14 -0.016,6.642"
id="line28"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 168.444,464.92 52.955,-4.944"
id="line30"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 172.74,103.92 -13.27,-0.595"
id="line32"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="M 164.47,473.519 155.702,91.2 H 155.7 l 8.76,382.32 z"
id="polygon34"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="m 333.54,111.66 5.188,0.257"
id="line36"
inkscape:connector-curvature="0"
style="fill:none" />
</g>
</g>
<g
id="Front_Side">
<path
d="m 340.228,456.777 87.96,30.885 5.4,-398.271 -94.68,14.226 z"
id="Camera_Side"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 334.369,284.49 87.614,8.95 -0.04,6.895 L 334.369,291 Z"
id="polygon41"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 339.438,284 82.546,8.008 0.006,1.492 -87.621,-9.01 z"
id="polygon43"
inkscape:connector-curvature="0"
style="fill:#83754e" />
<g
id="Monitor-4">
<path
d="m 343.8,155.16 79.02,-8.16 -0.84,144 -77.82,-7.56 z"
id="Monitor_Back_1_"
inkscape:connector-curvature="0"
style="fill:#192145" />
<path
d="m 347.64,159.78 74.88,-6.24 -0.48,131.52 -74.22,-5.82 z"
id="Monitor_Back"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
d="m 345.92,282.642 76.067,7.154 -0.007,1.204 -77.82,-7.56 z"
id="polygon47"
inkscape:connector-curvature="0"
style="fill:#83754e" />
<path
d="m 343.8,155.16 1.74,-0.18 0.38,127.662 -1.76,0.798 z"
id="polygon49"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
</g>
<g
id="Camera_hole">
<ellipse
ry="17.684999"
rx="7.1420002"
cy="126.765"
cx="382.32199"
transform="rotate(-179.015,382.11196,126.70168)"
id="Camera_Hole"
style="fill:#ffffff" />
<path
id="path53"
d="m 373.26,136.08 c 0,0 -3.543,-14.408 3.24,-24.234 3.531,-4.034 5.108,-3.05 6.42,-2.886 -2.876,0.008 -6.074,5.954 -7.2,10.621 -1.126,4.667 -1.553,8.835 -0.06,16.139 z"
inkscape:connector-curvature="0"
style="fill:#aa9a65" />
</g>
</g>
</g>
<g
inkscape:label="Hardware components"
style="display:inline"
inkscape:groupmode="layer"
id="layer_hardware_components"
transform="matrix(1.53047,0,0,1.53047,1290.444,-119.618)">
<image
sodipodi:absref="kamera.png"
xlink:href="kamera.png"
y="83.436996"
x="323.35699"
id="image4869"
preserveAspectRatio="none"
height="59.144001"
width="75.901001" />
<g
id="layer_x5F_inside"
transform="translate(0,-6.915)">
<g
id="Monitor_1_">
<path
d="m 418.241,147.473 4.579,0.427 -0.852,144.212 -4.681,0.6 z"
stroke-miterlimit="10"
id="Monitor_Back_2_"
inkscape:connector-curvature="0"
style="fill:#b0b0b0;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 343.8,155.16 74.441,-7.687 -1.08,145.475 -73.361,-7.488 z"
stroke-miterlimit="10"
id="Monitor_Back_3_"
inkscape:connector-curvature="0"
style="fill:#757575;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<g
stroke-miterlimit="10"
id="Monitor_Holder"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="m 338.94,189.78 82.86,-4.14 -0.12,13.38 -82.62,3.18 z"
id="polygon60"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 339.06,231.42 82.74,1.05 -0.3,17.61 -82.26,-2.88 z"
id="polygon62"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 421.8,185.64 h 5.622 l -0.084,13.44 -5.658,-0.06 z"
id="polygon64"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="m 421.62,232.509 5.509,0.199 -0.108,17.372 H 421.5 Z"
id="polygon66"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
</g>
<g
id="Monitor_Connections">
<g
stroke-miterlimit="10"
id="Controller"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="m 380.667,186.163 5.298,0.131 v 63.123 l -5.432,0.166 z"
id="polygon74"
inkscape:connector-curvature="0"
style="fill:#2bb12d" />
<path
d="m 360.57,187.249 20.097,-1.086 -0.134,63.42 -19.963,-1.075 z"
id="polygon76"
inkscape:connector-curvature="0"
style="fill:#2b622d" />
<path
d="m 339.556,188.897 3.521,0.337 -0.074,61.84 -3.296,0.262 z"
id="polygon78"
inkscape:connector-curvature="0"
style="fill:#2bb12d" />
<path
d="m 332.703,189.271 6.853,-0.374 0.151,62.439 -6.817,-0.262 z"
id="polygon80"
inkscape:connector-curvature="0"
style="fill:#2b622d" />
<path
d="m 326.671,233.021 h 6.106 l 0.057,15.582 -6.163,-0.039 z"
id="polygon82"
inkscape:connector-curvature="0"
style="fill:#2b622d" />
<g
id="Something_else">
<path
d="m 326.9,242.785 h 4.155 v 6.549 H 326.9 Z"
id="rect84"
inkscape:connector-curvature="0"
style="fill:#b0b0b0" />
<path
d="m 324.766,242.958 2.134,-0.173 v 6.548 l -2.097,-0.295 z"
id="polygon86"
inkscape:connector-curvature="0"
style="fill:#757575" />
</g>
</g>
</g>
</g>
<g
stroke-miterlimit="10"
id="Motherboard"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="m 199.246,187.587 -8.951,0.823 1.873,97.123 8.876,1.012 z"
id="polygon92"
inkscape:connector-curvature="0"
style="fill:#550000" />
<path
d="m 199.246,187.587 114.129,1.871 0.598,94.24 -112.929,2.847 z"
id="polygon94"
inkscape:connector-curvature="0"
style="fill:#ff0000" />
</g>
<g
stroke-miterlimit="10"
id="Printer_1_"
style="stroke:#000000;stroke-miterlimit:10">
<path
d="m 220.374,342.716 130.394,-6.406 59.096,9.648 -125.666,6.709 -15.44,-3.014 -11.516,0.611 z"
id="Printer"
inkscape:connector-curvature="0"
style="fill:#2b2b2b;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round" />
<path
d="m 268.758,349.653 14.563,2.975 1.524,144.996 -14.602,-6.329 z"
id="polygon98"
inkscape:connector-curvature="0"
style="fill:#757575;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round" />
<path
d="m 256.366,350.227 12.392,-0.574 1.485,141.642 -11.59,1.221 z"
id="polygon100"
inkscape:connector-curvature="0"
style="fill:#b0b0b0;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round" />
<path
d="m 283.321,352.628 127.227,-6.71 -0.569,137.523 -125.134,14.183 z"
id="polygon102"
inkscape:connector-curvature="0"
style="fill:#b0b0b0;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round" />
<path
d="m 219.458,342.525 36.908,7.702 2.287,142.289 -36.983,-16.166 z"
id="polygon104"
inkscape:connector-curvature="0"
style="fill:#757575;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round" />
<path
d="m 244.012,432.351 10.028,-0.8 0.075,8.541 -10.065,0.801 z"
id="polygon106"
inkscape:connector-curvature="0"
style="fill:#b0b0b0;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round" />
<path
d="m 233.718,424.497 19.864,7.054 -9.57,0.8 -20.13,-7.091 z"
id="polygon108"
inkscape:connector-curvature="0"
style="fill:#636363;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round" />
<path
d="m 223.882,425.26 20.13,7.091 0.038,8.542 -20.054,-7.323 z"
id="polygon110"
inkscape:connector-curvature="0"
style="fill:#a1a1a1;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round" />
<ellipse
id="ellipse112"
ry="12.298"
rx="5.0619998"
cy="456.207"
cx="231.175"
transform="rotate(-4.513,231.15,456.35)"
style="fill:none" />
</g>
<g
stroke-miterlimit="10"
id="Power_and_Harddrive_Platform"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<g
id="Platform_Hidden">
<path
d="m 339.48,317.82 87.045,11.721 -19.785,1.084 L 325,318.5 Z"
id="polygon115"
inkscape:connector-curvature="0"
style="fill:#83754e" />
<path
d="m 325,318.5 81.74,12.125 v 6.815 L 325,323.385 Z"
id="polygon117"
inkscape:connector-curvature="0"
style="fill:#aa9a65" />
<path
d="m 272.25,319.625 94.719,12.844 -13.635,0.651 -90.03,-12.936 z"
id="polygon119"
inkscape:connector-curvature="0"
style="fill:#83754e" />
<path
d="m 406.74,330.625 19.718,-1.084 0.067,6.512 -19.785,1.387 z"
id="polygon121"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
</g>
<g
id="Harddrive">
<path
d="m 286.002,313.229 -17.157,-2.363 0.076,10.218 17.156,2.67 z"
id="polygon124"
inkscape:connector-curvature="0"
style="fill:#771bda;fill-opacity:1" />
<path
d="m 286.002,313.229 48.574,-2.116 -14.26,-2.514 -51.203,2.267 z"
id="polygon126"
inkscape:connector-curvature="0"
style="fill:#7d1bda;fill-opacity:1" />
<path
d="m 286.002,313.229 48.574,-2.116 v 10.618 l -48.499,2.023 z"
id="polygon128"
inkscape:connector-curvature="0"
style="fill:#9338da;fill-opacity:1" />
</g>
<g
id="Power_Supply">
<path
d="m 332.504,264.557 18.684,1.105 0.074,67.561 -18.53,-2.86 z"
id="polygon131"
inkscape:connector-curvature="0"
style="fill:#1a1a1a" />
<path
d="m 351.188,265.662 61.955,-1.144 -0.307,65.845 -61.574,2.86 z"
id="polygon133"
inkscape:connector-curvature="0"
style="fill:#2b2b2b" />
<path
d="m 351.188,265.662 61.955,-1.144 -19.75,-1.411 -60.889,1.45 z"
id="polygon135"
inkscape:connector-curvature="0"
style="fill:#1a1a1a" />
</g>
<g
id="Platform_1_">
<path
d="m 268.758,313.68 84.576,12.72 -6.021,0.288 -84.009,-12.768 z"
id="polygon138"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
<path
d="m 263.304,313.92 84.009,12.768 v 13.38 L 263.304,325.25 Z"
id="polygon140"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 347.313,326.688 v 13.38 l 5.907,-0.275 13.74,-0.543 v -6.79 l -13.74,0.66 0.114,-6.72 z"
id="polygon142"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
</g>
</g>
<g
stroke-miterlimit="10"
id="Camera_Platform"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<g
id="Arduino">
<path
d="m 383.557,125.859 19.482,0.801 v 9.151 l -19.519,-0.763 z"
id="polygon146"
inkscape:connector-curvature="0"
style="fill:#2f2fff;fill-opacity:1" />
<path
d="m 383.557,125.859 -8.846,1.641 v 8.615 l 8.809,-1.067 z"
id="polygon148"
inkscape:connector-curvature="0"
style="fill:#0000bd;fill-opacity:1" />
</g>
<g
id="Platform">
<path
d="m 293.16,150.6 92.94,-10.86 v -5.22 l -93,11.46 z"
id="polygon151"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 386.1,134.52 23.22,0.84 v 5.16 l -23.22,-0.78 z"
id="polygon153"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="m 293.16,150.6 92.94,-10.86 23.22,0.78 -94.5,10.62 z"
id="polygon155"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
</g>
</g>
</g>
<g
id="layer_x5F_compontent_x5F_frames"
transform="translate(0,-6.915)">
<g
id="Back_side_1_">
<path
d="m 238.409,505.653 2.665,1.228"
stroke-miterlimit="10"
id="line207"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 241.074,506.881 v 10.608"
stroke-miterlimit="10"
id="line209"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 166.348,472.587 v 7.122"
stroke-miterlimit="10"
id="line211"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<g
id="g167">
<path
d="m 238.409,497.624 -2.003,-412.686 -76.936,18.387 9.189,370.268 69.75,32.06 z"
id="polygon163"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 236.161,69.595 v -0.028 l -80.521,21.574 0.36,13.013 8.47,368.389 0.006,0.002 0.044,6.496 79.68,40.02 V 519 l -0.002,-0.095 0.002,-19.344 -5.791,-1.937 v 8.029 l -69.75,-32.06 -9.189,-370.268 76.936,-18.387 -0.188,-10.426 1.862,-0.472 v -4.92 z"
id="polygon165"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#c8b378;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
</g>
<path
d="m 168.444,464.921 -4.163,-1.343"
stroke-miterlimit="10"
id="line215"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 168.648,473.601 -2.3,-1.014"
stroke-miterlimit="10"
id="line217"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 156,104.154 3.47,-0.829"
stroke-miterlimit="10"
id="line221"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="M 236.218,74.512 155.64,95.333"
stroke-miterlimit="10"
id="line223"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 162.98,103.482 -3.51,-0.157 76.936,-18.387 v 1.342 z"
stroke-miterlimit="10"
id="polygon225"
inkscape:connector-curvature="0"
style="fill:#83754e;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 166.348,472.587 v 7.372"
id="line175"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 238.409,505.653 2.665,1.228"
id="line177"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 241.074,506.881 v 10.608"
id="line179"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
</g>
<g
id="Left_Side">
<g
id="g184">
<path
d="M 439.5,86.22 V 81.375 L 435.72,81.24 238.08,69.12 v 4.92 l -1.86,0.54 0.128,10.358 -1.954,0.491 v 1.259 l 15.701,0.155 -0.015,-1.163 177.9,10.2 -2.34,376.02 -170.4,18.72 v 7.68 l -11.386,1.48 0.346,19.28 192.06,-23.25 z"
id="polygon182"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#fffaa7;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
</g>
<g
id="Shadowing">
<path
d="m 238.08,74.04 -1.86,0.54 197.52,12.06 1.98,-0.36 z"
id="polygon186"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 243.854,499.78 87.166,-9.94 -2.1,-0.84 -87.485,9.829 z"
id="polygon188"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 356.4,485.88 2.82,0.66 73.74,-8.28 -2.22,-0.66 z"
id="polygon190"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 359.34,497.04 -2.94,-1.14 -25.38,2.88 v 1.5 z"
id="polygon192"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 435.72,86.28 -1.98,0.36 -3,390.96 2.22,0.66 z"
id="polygon194"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#c8b378;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 331.02,489.84 v 10.44"
id="line196"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 328.92,489 27.48,-3.12"
id="line198"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="M 255.45,488.378 420.96,470.34 422.233,250.08 H 421.5 l 0.12,-17.571 0.715,0.026 0.193,-33.506 -0.848,-0.009 0.12,-13.38 h 0.806 L 423.12,96.72 250.508,86.961"
id="polyline200"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 250.512,87.292 -0.004,-0.331 172.612,9.759 -0.514,88.92 h 4.816 L 427.98,95.88 250.501,85.704 250.08,85.68 l 0.003,0.227"
id="polyline202"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 251.792,488.708 3.448,1.912 170.4,-18.72 1.392,-223.655 -0.011,1.835 h -4.788 l -1.273,220.26 -169.168,18.368"
id="polyline204"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 422.335,232.535 4.794,0.173 0.244,-39.195 -0.035,5.567 -4.81,-0.051 z"
id="polygon206"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 356.4,485.88 2.82,0.66 0.12,10.5 -2.94,-1.14 z"
id="polygon208"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#c8b378;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 359.34,497.04 -0.12,-10.5 -2.82,-0.66 v 10.02 z"
id="polygon210"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#c8b378;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 427.032,248.245 0.097,-15.537 z"
id="polygon212"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#fffaa7;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 425.64,471.9 v 6.268"
id="line214"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 420.96,470.34 4.68,1.56"
id="line216"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
id="path218"
d="M 250.08,85.68 236.406,84.938 Z"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="M 244.2,85.429 V 75.067"
id="line220"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 435.72,81.24 v 5.04"
id="line222"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 423.12,96.72 4.86,-0.84"
id="line224"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 427.98,95.88 h 5.25"
id="line226"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 255.24,490.62 -0.015,6.643"
id="line228"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 251.792,488.708 3.433,2.084 v 6.471 l -3.433,0.403 z"
id="polygon230"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#83754e;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
</g>
</g>
</g>
</g>
<g
sodipodi:insensitive="true"
inkscape:label="Cabinet wood"
visibility="hidden"
style="display:inline;visibility:hidden"
inkscape:groupmode="layer"
id="layer_cabinet_wood"
transform="matrix(1.53047,0,0,1.53047,1290.444,-130.202)">
<g
stroke-miterlimit="10"
id="Platform_Hidden_1_"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="M 406.74,330.625 325,318.5 l 14.48,-0.68 87.045,11.721 z"
id="polygon236"
inkscape:connector-curvature="0"
style="fill:#83754e" />
<path
d="M 406.74,337.44 325,323.385 V 318.5 l 81.74,12.125 z"
id="polygon238"
inkscape:connector-curvature="0"
style="fill:#aa9a65" />
<path
d="m 353.334,333.12 -90.03,-12.936 8.946,-0.559 94.719,12.844 z"
id="polygon240"
inkscape:connector-curvature="0"
style="fill:#83754e" />
<path
d="m 426.525,336.053 -19.785,1.387 v -6.815 l 19.718,-1.084 z"
id="polygon242"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
</g>
<g
stroke-miterlimit="10"
id="Platform_2_"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="m 347.313,326.688 -84.009,-12.768 5.454,-0.24 84.576,12.72 z"
id="polygon245"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
<path
d="M 347.313,340.068 263.304,325.25 v -11.33 l 84.009,12.768 z"
id="polygon247"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 353.22,333.12 0.114,-6.72 -6.021,0.288 v 13.38 l 5.907,-0.275 13.74,-0.543 v -6.79 z"
id="polygon249"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
</g>
<g
stroke-miterlimit="10"
id="Monitor_Holder_1_"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="m 421.68,199.02 -82.62,3.18 -0.12,-12.42 82.86,-4.14 z"
id="polygon252"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 421.5,250.08 -82.26,-2.88 -0.18,-15.78 82.74,1.05 z"
id="polygon254"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 427.338,199.08 -5.658,-0.06 0.12,-13.38 h 5.622 z"
id="polygon256"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="M 427.021,250.08 H 421.5 l 0.12,-17.571 5.509,0.199 z"
id="polygon258"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
</g>
<g
stroke-miterlimit="10"
id="Platform_3_"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="m 386.1,134.52 -93,11.46 0.06,4.62 92.94,-10.86 z"
id="polygon261"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 409.32,140.52 -23.22,-0.78 v -5.22 l 23.22,0.84 z"
id="polygon263"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="m 409.32,140.52 -94.5,10.62 -21.66,-0.54 92.94,-10.86 z"
id="polygon265"
inkscape:connector-curvature="0"
style="fill:#695e3f" />
</g>
<g
id="Tray">
<path
d="m 395.424,409.25 -32.85,-6.062 v -3.5 l 32.85,6.062 z"
id="polygon268"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
</g>
<g
stroke-miterlimit="10"
id="Lines"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="M 221.399,459.976 340.196,449.307"
id="line277"
inkscape:connector-curvature="0" />
<path
d="M 340.196,449.307 432.96,482.07"
id="line279"
inkscape:connector-curvature="0" />
</g>
<g
stroke-miterlimit="10"
id="Back_side"
style="stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10">
<path
d="m 244.2,519 -0.002,-0.095 -0.118,-10.646 -0.075,-0.034 -7.665,-423.59 -0.004,10e-4 -0.118,-10.125 1.862,-0.471 v -4.92 l -1.919,0.474 v -0.027 l -80.521,21.573 0.36,13.014 8.47,368.388 0.006,0.002 0.044,6.496 79.68,40.02 z m -84.73,-415.675 73.072,-17.458 -0.162,0.053 6.029,419.733 -69.75,-32.061 z"
id="Panel_1_"
inkscape:connector-curvature="0"
style="fill:#c8b378" />
<path
d="m 238.409,505.653 2.665,1.227"
id="line283"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 241.074,506.88 v 10.609"
id="line285"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 166.348,472.586 v 7.122"
id="line287"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 243.83,499.782 -5.421,-2.158"
id="line289"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 168.444,464.92 -4.163,-1.342"
id="line291"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 168.648,473.6 -2.3,-1.014"
id="line293"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 232.38,85.92 4.026,-0.982"
id="line295"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 156,104.154 3.47,-0.829"
id="line297"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="M 236.218,74.511 155.64,95.333"
id="line299"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 232.38,85.92 v 1.493 l -69.4,16.069 -3.51,-0.157 z"
id="polygon301"
inkscape:connector-curvature="0"
style="fill:#83754e" />
</g>
<g
id="Left_Side_1_">
<path
d="M 439.5,81.375 435.72,81.24 238.08,69.12 v 4.92 l -1.86,0.54 0.127,10.357 -1.954,0.491 7.041,413.4 2.418,0.951 0.347,19.279 192.06,-23.25 3.24,-409.59 v -4.843 z m -13.86,390.525 -170.4,18.72 -5.16,-404.94 177.9,10.2 z"
stroke-miterlimit="10"
id="Frame_2_"
inkscape:connector-curvature="0"
style="fill:#fffaa7;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<g
id="Shadowing_2_">
<path
d="m 433.74,86.64 1.98,-0.36 -197.64,-12.24 -1.86,0.54 z"
id="polygon305"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 328.92,489 -87.485,9.829 2.525,0.731 87.06,-9.72 z"
id="polygon307"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 432.96,478.26 -2.22,-0.66 -74.34,8.28 2.82,0.66 z"
id="polygon309"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 331.02,498.78 v 1.5 l 28.32,-3.24 -2.94,-1.14 z"
id="polygon311"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 430.74,477.6 2.22,0.66 2.76,-391.98 -1.98,0.36 z"
id="polygon313"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#c8b378;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 331.02,489.84 v 10.44"
id="line315"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 328.92,489 27.48,-3.12"
id="line317"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="M 255.45,488.378 420.96,470.34 422.233,250.08 H 421.5 l 0.12,-17.571 0.715,0.026 0.193,-33.506 -0.848,-0.009 0.12,-13.38 h 0.806 L 423.12,96.72 250.508,86.961 Z"
id="polygon319"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 422.233,250.08 -1.273,220.26 -165.51,18.038 -4.942,-401.417 172.612,9.759 -0.514,88.92 h 4.816 L 427.98,95.88 250.501,85.704 250.08,85.68 l 5.16,404.94 170.4,-18.72 1.392,-223.655 -0.011,1.835 z"
id="polygon321"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 422.528,199.029 -0.193,33.506 4.794,0.173 0.244,-39.195 -0.035,5.567 z"
id="polygon323"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#695e3f;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 359.34,497.04 -2.94,-1.14 v -10.02 l 2.82,0.66 z"
id="polygon325"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#c8b378;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 356.4,485.88 v 10.02 l 2.94,1.14 -0.12,-10.5 z"
id="polygon327"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#c8b378;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 427.032,248.245 0.097,-15.537 z"
id="polygon329"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:#fffaa7;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 425.64,471.9 v 6.268"
id="line331"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 420.96,470.34 4.68,1.56"
id="line333"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
id="path335"
d="M 250.08,85.68 236.406,84.938 Z"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="M 244.2,85.429 V 75.067"
id="line337"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 435.72,81.24 v 5.04"
id="line339"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 423.12,96.72 4.86,-0.84"
id="line341"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 427.98,95.88 h 5.25"
id="line343"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
<path
d="m 255.24,490.62 -0.015,6.643"
id="line345"
stroke-miterlimit="10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10" />
</g>
</g>
</g>
<g
inkscape:groupmode="layer"
style="font-size:25.39999962px;font-family:Sans;display:inline"
inkscape:label="Hardware overview"
font-size="25.4"
id="layer_hardware_overview">
<text
id="text10917"
y="551.62811"
x="1822.4902"
style="line-height:125%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle;filter:url(#filter_blur_large);fill:#4d4d4d;"
transform="skewY(-2.7)">
<tspan
style="-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#4d4d4d;"
y="551.62811"
x="1822.4902"
id="tspan10915">Printer</tspan>
</text>
<text
transform="skewY(-2.7)"
style="line-height:125%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle"
x="1821.9611"
y="551.07397"
id="text9227">
<tspan
id="tspan9225"
x="1821.9611"
y="551.07397"
style="-inkscape-font-specification:'Sans, Normal';;text-align:center">Printer</tspan>
</text>
<text
id="text10923"
y="266.43234"
x="1758.8263"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:end;text-anchor:end;fill:#ffaaaa;filter:url(#filter_blur_large);">
<tspan
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:end;fill:#ffaaaa;"
y="266.43234"
x="1758.8263"
id="tspan10919"
sodipodi:role="line">PC</tspan>
<tspan
id="tspan10921"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:end;fill:#ffaaaa;"
y="291.83234"
x="1758.8263"
sodipodi:role="line">Mainboard</tspan>
</text>
<text
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:end;text-anchor:end"
x="1757.7679"
y="265.37399"
id="text9227-8">
<tspan
sodipodi:role="line"
id="tspan9225-0"
x="1757.7679"
y="265.37399"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:end;fill:#ffffff">PC</tspan>
<tspan
sodipodi:role="line"
x="1757.7679"
y="290.77399"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:end;fill:#ffffff"
id="tspan9247">Mainboard</tspan>
</text>
<text
id="text10913"
y="338.31119"
x="1747.3951"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle;fill:#440055;fill-opacity:1;filter:url(#filter_blur_large);"
font-weight="400">
<tspan
id="tspan10911"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#440055;fill-opacity:1;"
y="338.31119"
x="1747.3951">HDD</tspan>
</text>
<text
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle;fill:#7d1bda;fill-opacity:1"
x="1746.866"
y="337.78201"
id="text9227-8-4">
<tspan
x="1746.866"
y="337.78201"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#7d1bda;fill-opacity:1"
id="tspan9247-6">HDD</tspan>
</text>
<text
id="text10909"
y="314.53336"
x="1875.6884"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle;filter:url(#filter_blur_large);fill:#808080;"
font-weight="400">
<tspan
id="tspan10905"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#808080;"
y="314.53336"
x="1875.6884"
sodipodi:role="line">ATX</tspan>
<tspan
id="tspan10907"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#808080;"
y="339.93335"
x="1875.6884"
sodipodi:role="line">PSU</tspan>
</text>
<text
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle"
x="1874.63"
y="313.47501"
id="text9227-8-8">
<tspan
sodipodi:role="line"
x="1874.63"
y="313.47501"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#ffffff"
id="tspan9247-0">ATX</tspan>
<tspan
sodipodi:role="line"
x="1874.63"
y="338.875"
style="line-height:100%;-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#ffffff"
id="tspan9295">PSU</tspan>
</text>
<text
id="text10897"
y="77.261169"
x="1795.0652"
style="line-height:125%;-inkscape-font-specification:'Sans, Normal';;text-align:end;text-anchor:end;fill:#666666;filter:url(#filter_blur_large)">
<tspan
style="-inkscape-font-specification:'Sans, Normal';;text-align:end;fill:#666666"
y="77.261169"
x="1795.0652"
id="tspan10895">Camera</tspan>
</text>
<text
style="line-height:125%;-inkscape-font-specification:'Sans, Normal';;text-align:end;text-anchor:end"
x="1794.536"
y="76.732002"
id="text9227-6">
<tspan
id="tspan9225-8"
x="1794.536"
y="76.732002"
style="-inkscape-font-specification:'Sans, Normal';;text-align:end">Camera</tspan>
</text>
<text
id="text10893"
y="97.796333"
x="1912.5764"
style="line-height:125%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle;opacity:0.8;fill:#c0c0ff;fill-opacity:1;filter:url(#filter_blur_mid)">
<tspan
style="-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#c0c0ff;fill-opacity:1"
y="97.796333"
x="1912.5764"
id="tspan10891">Arduino</tspan>
</text>
<text
style="line-height:125%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle;fill:#0000bd;fill-opacity:1"
x="1910.9889"
y="96.737999"
id="text9227-6-7">
<tspan
id="tspan9225-8-9"
x="1910.9889"
y="96.737999"
style="-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#0000bd;fill-opacity:1">Arduino</tspan>
</text>
<text
id="text10903"
y="259.62219"
x="1873.5001"
style="line-height:31.69305325%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle;fill:#008000;filter:url(#filter_blur_large)"
transform="matrix(1,-0.06992681,0,1,0.52916667,0.52916667)">
<tspan
id="tspan10899"
style="line-height:80.48999906%;-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#008000"
y="259.62219"
x="1873.5001"
sodipodi:role="line">Touch</tspan>
<tspan
id="tspan10901"
style="line-height:80.48999906%;-inkscape-font-specification:'Sans, Normal';;text-align:center;fill:#008000"
y="280.06665"
x="1873.5001"
sodipodi:role="line">screen</tspan>
</text>
<text
transform="skewY(-4)"
style="line-height:31.69305325%;-inkscape-font-specification:'Sans, Normal';;text-align:center;text-anchor:middle;fill:#00ff00"
x="1872.9709"
y="259.056"
id="text9227-8-8-0">
<tspan
sodipodi:role="line"
x="1872.9709"
y="259.056"
style="line-height:80.48999906%;-inkscape-font-specification:'Sans, Normal';;text-align:center"
id="tspan20086">Touch</tspan>
<tspan
sodipodi:role="line"
x="1872.9709"
y="279.50046"
style="line-height:80.48999906%;-inkscape-font-specification:'Sans, Normal';;text-align:center"
id="tspan20116">screen</tspan>
</text>
</g>
<g
visibility="hidden"
inkscape:groupmode="layer"
inkscape:label="Hardware details"
style="display:inline;visibility:hidden"
id="layer_hardware_details">
<path
d="m 1776.298,178.922 h 93.261 v 76.128 h -93.261 z"
id="rect4671-3-6-8"
transform="matrix(0.99602,-0.0891,0.08525,0.99636,0,0)"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.662;stroke-dashoffset:23" />
<text
font-size="3.528"
style="font-size:3.52800798px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#ffffff"
x="1797.7737"
y="206.38847"
id="text9092-7-0-8"
transform="matrix(0.99113777,-0.08670981,0.0875998,1.0012778,0,0)">
<tspan
sodipodi:role="line"
x="1797.7737"
y="206.38847"
id="tspan233448">(almost any) DSLR camera</tspan>
<tspan
id="tspan123784"
sodipodi:role="line"
x="1797.7737"
y="210.79848">supported by libgphoto</tspan>
<tspan
id="tspan123780"
sodipodi:role="line"
x="1797.7737"
y="215.2085">best achievable picture quality</tspan>
<tspan
sodipodi:role="line"
x="1797.7737"
y="219.6185"
id="tspan233440">has a flash sync output (hot shoe)</tspan>
<tspan
sodipodi:role="line"
x="1797.7737"
y="224.02852"
id="tspan233446">via wireless remote control</tspan>
<tspan
id="tspan123792"
sodipodi:role="line"
x="1797.7737"
y="228.43852">already existing personal property</tspan>
<tspan
sodipodi:role="line"
x="1797.7737"
y="232.84853"
id="tspan233464">Nikon D7200 + Canon EOS 600d</tspan>
</text>
<path
d="m 1610.189,368.242 h 336.304 v 268.57 h -336.304 z"
id="rect4671-3-6-7"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:2.36299992;stroke-dashoffset:23" />
<text
font-size="5.994"
style="font-size:5.99399996px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
x="1745.713"
y="441.57001"
id="text9092-7-0-0" />
<path
d="m 1763.724,103.422 h 210.237 v 157.32 h -210.237 z"
id="rect4671-3-6-7-5"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:1.42999995;stroke-dashoffset:23" />
<path
d="m 1806.1,173.488 h 125.138 v 54.53 H 1806.1 Z"
id="rect234493"
inkscape:connector-curvature="0"
style="opacity:0.8;fill:#ffffff" />
<text
font-size="5.691"
style="font-size:5.69099998px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
x="1822.2939"
y="184.073"
id="text9092-7-0-0-3-8">
<tspan
sodipodi:role="line"
id="tspan234325-5"
x="1822.2939"
y="184.073">bought &quot;open-frame&quot; TFT-touch display</tspan>
<tspan
sodipodi:role="line"
id="tspan234431-5"
x="1822.2939"
y="191.18675">turned out to be a Samtron 19&quot; TFT</tspan>
<tspan
sodipodi:role="line"
id="tspan234433-0"
x="1822.2939"
y="198.30049">plus seperate resistive sensor glass</tspan>
<tspan
sodipodi:role="line"
id="tspan376228"
x="1822.2939"
y="205.41425">USB controller (xinput_calibrator)</tspan>
<tspan
id="tspan123678"
sodipodi:role="line"
x="1822.2939"
y="212.528">Resolution 1280x1024</tspan>
<tspan
sodipodi:role="line"
id="tspan376230"
x="1822.2939"
y="219.64175">VGA + slightly broken HDMI</tspan>
</text>
<path
d="m 1573.363,148.541 h 210.19 v 167.857 h -210.19 z"
id="rect4671-3-6-7-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:1.477;stroke-dashoffset:23" />
<text
font-size="7.37"
style="font-size:7.36999989px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#ffffff"
x="1620.6704"
y="184.1908"
id="text9092-7-0-0-7">
<tspan
sodipodi:role="line"
id="tspan233163-2-7-3"
x="1620.6704"
y="184.1908">◦ old standard PC components</tspan>
<tspan
sodipodi:role="line"
id="tspan233751-6"
x="1620.6704"
y="193.40329">◦ ATX power supply</tspan>
<tspan
sodipodi:role="line"
id="tspan234650"
x="1620.6704"
y="202.6158">◦ AMD AM2+ mainboard</tspan>
<tspan
sodipodi:role="line"
id="tspan234652"
x="1620.6704"
y="211.82829">◦ 500GB HDD</tspan>
<tspan
sodipodi:role="line"
id="tspan7062"
x="1620.6704"
y="221.0408" />
<tspan
id="tspan6105"
sodipodi:role="line"
x="1620.6704"
y="230.2533">◦ we depend on 230V~</tspan>
</text>
<path
d="m 1862.641,17.9 h 105.095 v 83.928 h -105.095 z"
id="rect4671-3-6-7-4-8"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.73799998;stroke-dashoffset:23" />
<text
font-size="3.528"
style="font-size:3.52800751px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#000000"
x="1888.5441"
y="27.878502"
id="text9092-7-0-0-7-8">
<tspan
sodipodi:role="line"
x="1888.5441"
y="27.878502"
id="tspan291635"><tspan
style="fill:#000080;fill-opacity:1"
id="tspan123796">Arduino Uno</tspan>
controls</tspan>
<tspan
id="tspan123798"
sodipodi:role="line"
x="1888.5441"
y="32.288513">WS2812 RGB LEDs</tspan>
<tspan
sodipodi:role="line"
x="1888.5441"
y="36.698521"
id="tspan291639">ring around the camera</tspan>
<tspan
sodipodi:role="line"
x="1888.5441"
y="41.108528"
id="tspan291641">lens during countdown,</tspan>
<tspan
id="tspan123794"
sodipodi:role="line"
x="1888.5441"
y="45.518539">to catch attention</tspan>
<tspan
sodipodi:role="line"
x="1888.5441"
y="49.928551"
id="tspan291633">and a a stripe that</tspan>
<tspan
sodipodi:role="line"
x="1888.5441"
y="54.338558"
id="tspan291643">illuminates the photo</tspan>
<tspan
sodipodi:role="line"
x="1888.5441"
y="58.748566"
id="tspan291645">output tray during printing</tspan>
</text>
<text
font-size="8.143"
transform="skewY(-2.1)"
style="font-size:8.14299965px;line-height:125%;font-family:Sans"
x="1733.2729"
y="485.89899"
id="text20241">
<tspan
sodipodi:role="line"
x="1733.2729"
y="485.89899"
id="tspan20245">needs to be photo quality, fast &amp; quick</tspan>
<tspan
sodipodi:role="line"
x="1733.2729"
y="496.07773"
id="tspan20247">only feasible type is dye-sublimation</tspan>
<tspan
sodipodi:role="line"
x="1733.2729"
y="506.2565"
id="tspan20269">(like used in kiosk applications)</tspan>
</text>
<text
font-size="8.143"
transform="skewY(-3)"
id="text11186"
y="571.75299"
x="1776.135"
style="font-size:8.14299965px;line-height:125%;font-family:Sans">
<tspan
sodipodi:role="line"
id="tspan11184"
y="571.75299"
x="1776.135">Mitsubishi CP9550DW</tspan>
</text>
<text
font-size="8.143"
transform="skewY(-4)"
id="text11317"
y="625.55298"
x="1733.916"
style="font-size:8.14299965px;line-height:125%;font-family:Sans">
<tspan
sodipodi:role="line"
id="tspan11297"
y="625.55298"
x="1733.916">+ paper roll that it cuts</tspan>
<tspan
sodipodi:role="line"
y="635.73175"
x="1733.916"
id="tspan11299">into 4x6 prints (10x15 cm)</tspan>
<tspan
sodipodi:role="line"
id="tspan11301"
y="645.91046"
x="1733.916">+ takes &lt; 15s per copy</tspan>
<tspan
sodipodi:role="line"
id="tspan11303"
y="656.08923"
x="1733.916">+ price is &lt; 15 cents per copy</tspan>
<tspan
sodipodi:role="line"
id="tspan11315"
y="666.26801"
x="1733.916">+ instantly dry</tspan>
</text>
<text
font-size="8.143"
style="font-size:8.14299965px;line-height:125%;font-family:Sans"
x="1733.916"
y="720.76599"
id="text11480"
transform="skewY(-5)">
<tspan
sodipodi:role="line"
x="1733.916"
y="720.76599"
id="tspan11472">- expensive (&gt;1000€) consider a used one!</tspan>
<tspan
sodipodi:role="line"
x="1733.916"
y="730.94476"
id="tspan11474">- Linux driver availability (Gutenprint)</tspan>
<tspan
sodipodi:role="line"
x="1733.916"
y="741.12347"
id="tspan11476">- large scale, heavy, noisy</tspan>
<tspan
sodipodi:role="line"
x="1733.916"
y="751.30225"
id="tspan11478">- need to take care of color matching</tspan>
</text>
<text
font-size="70.556"
style="font-size:70.55599976px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';display:inline;stroke-width:1;enable-background:new"
x="-635.97467"
y="1513.2379"
id="text376644"
transform="rotate(-91.526512)">
<tspan
id="tspan376642"
x="-635.97467"
y="1513.2379"
style="stroke-width:1.62399995">Hardware</tspan>
</text>
<text
font-size="70.556"
style="font-size:70.55599976px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';display:inline;fill:#808080;stroke-width:1;filter:url(#filter_blur_large);enable-background:new"
x="-631.86963"
y="1518.1106"
id="text10941"
transform="rotate(-91.526512,-0.55699434,2.6040915)">
<tspan
id="tspan10939"
x="-631.86963"
y="1518.1106"
style="fill:#808080;stroke-width:1.62399995">Hardware</tspan>
</text>
<text
transform="rotate(-91.526512)"
id="text10929"
y="1513.2379"
x="-635.97467"
style="font-size:70.55599976px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';display:inline;stroke-width:1;enable-background:new;fill:#1a1a1a;fill-opacity:1;"
font-size="70.556">
<tspan
style="stroke-width:1.62399995;fill:#1a1a1a;fill-opacity:1;"
y="1513.2379"
x="-635.97467"
id="tspan10927">Hardware</tspan>
</text>
</g>
<g
visibility="hidden"
inkscape:label="Woodwork details"
inkscape:groupmode="layer"
style="display:inline;visibility:hidden"
transform="translate(0,-59.267)"
id="layer_woodwork_details">
<path
d="m 1630.758,104.937 h 66.752 v 105.858 h -66.752 z"
id="rect7562"
inkscape:connector-curvature="0"
style="opacity:0.8;fill:#fffaa7;stroke:#ffffff;stroke-width:0.133;stroke-dashoffset:23" />
<path
d="M 603.38331,0.13367813 H 2031.8663 V 1142.867 H 603.38331 Z"
id="rect_cabinet"
inkscape:connector-curvature="0"
style="fill:none;stroke:#e6e6e6;stroke-width:0.26662055;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:23;enable-background:new">
<title
id="title7197">
Cabinet
</title>
</path>
<text
font-size="14.111"
style="font-size:14.11102962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';enable-background:new"
x="1348.2557"
y="683.37292"
id="text9092-7-3">
<tspan
sodipodi:role="line"
id="tspan7157"
x="1348.2557"
y="683.37292">used renewable resources</tspan>
<tspan
id="tspan122902"
sodipodi:role="line"
x="1348.2557"
y="701.01172" />
<tspan
sodipodi:role="line"
id="tspan7159"
x="1348.2557"
y="718.65051">made from inner framework</tspan>
<tspan
sodipodi:role="line"
id="tspan7193"
x="1348.2557"
y="736.28931">and 10 mm plywood covering</tspan>
<tspan
id="tspan122904"
sodipodi:role="line"
x="1348.2557"
y="753.9281" />
<tspan
sodipodi:role="line"
id="tspan7191"
x="1348.2557"
y="771.56683">drawn in Sketchup (free but not open)</tspan>
<tspan
id="tspan122906"
sodipodi:role="line"
x="1348.2557"
y="789.20563" />
<tspan
sodipodi:role="line"
x="1348.2557"
y="806.84442"
id="tspan17934">used machines: circular saw, circular hand</tspan>
<tspan
sodipodi:role="line"
x="1348.2557"
y="824.48322"
id="tspan17936">saw, planer, router, sander, electric drill, lathe</tspan>
<tspan
sodipodi:role="line"
x="1348.2557"
y="842.12201"
id="tspan6116" />
<tspan
sodipodi:role="line"
x="1348.2557"
y="859.7608"
id="tspan6120">dimensions: 1590 x 500 x 500 mm</tspan>
<tspan
sodipodi:role="line"
x="1348.2557"
y="877.3996"
id="tspan6124">(height x width x depth)</tspan>
</text>
<text
font-size="14.111"
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';enable-background:new"
x="1593.656"
y="123.943"
id="text9092-7-3-2">
<tspan
sodipodi:role="line"
id="tspan7175-5"
x="1593.656"
y="123.943">camera slide is adjustable</tspan>
<tspan
sodipodi:role="line"
x="1593.656"
y="141.58176"
id="tspan7550">in height and depth</tspan>
<tspan
sodipodi:role="line"
x="1593.656"
y="159.2205"
id="tspan7552">camera fixed with</tspan>
<tspan
sodipodi:role="line"
x="1593.656"
y="176.85925"
id="tspan7556">custom turned screw</tspan>
<tspan
sodipodi:role="line"
x="1593.656"
y="194.498"
id="tspan7568">(1/4&quot; UNC and M8)</tspan>
</text>
<text
font-size="14.111"
style="font-size:14.11102962px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';enable-background:new"
x="1774.1688"
y="799.69562"
id="text9092-7-3-2-8">
<tspan
sodipodi:role="line"
id="tspan7161-1-7"
x="1774.1688"
y="799.69562">stand is a tripod: can't wobble</tspan>
<tspan
sodipodi:role="line"
id="tspan7195-7-9"
x="1774.1688"
y="817.33441">reminiscence of</tspan>
<tspan
sodipodi:role="line"
id="tspan7191-1-7"
x="1774.1688"
y="834.97321">classic optical devices</tspan>
</text>
<text
font-size="14.111"
style="font-size:14.11100006px;line-height:115.07109404%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#192145"
x="1821.624"
y="284.466"
id="text7546"
transform="rotate(-2.89)">
<tspan
sodipodi:role="line"
id="tspan7544"
x="1821.624"
y="284.466"
style="line-height:110.00000238%;-inkscape-font-specification:'Sans, Normal'">glazing tape</tspan>
<tspan
sodipodi:role="line"
x="1821.624"
y="300.70367"
style="line-height:110.00000238%;-inkscape-font-specification:'Sans, Normal'"
id="tspan7572">for fitting</tspan>
</text>
<text
font-size="14.111"
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#192145"
x="1832.296"
y="255.65199"
id="text7590">
<tspan
sodipodi:role="line"
id="tspan7588"
x="1832.296"
y="255.65199">display, hdd</tspan>
<tspan
sodipodi:role="line"
x="1832.296"
y="273.29074"
id="tspan7592">and camera</tspan>
</text>
<text
font-size="14.111"
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
x="1800.6597"
y="875.72034"
id="text7620">
<tspan
sodipodi:role="line"
id="tspan7618"
x="1800.6597"
y="875.72034">tripod and base plate</tspan>
<tspan
sodipodi:role="line"
x="1800.6597"
y="893.35907"
id="tspan7622">separable from cabinet</tspan>
</text>
<path
d="m 1630.758,475.354 h 66.752 v 105.858 h -66.752 z"
id="rect7562-1"
inkscape:connector-curvature="0"
style="opacity:0.8;fill:#fffaa7;stroke:#ffffff;stroke-width:0.133;stroke-dashoffset:23;enable-background:new" />
<text
font-size="14.111"
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
x="1600.548"
y="502.341"
id="text7632">
<tspan
sodipodi:role="line"
id="tspan7630"
x="1600.548"
y="502.341">printer and camera are</tspan>
<tspan
sodipodi:role="line"
x="1600.548"
y="519.97974"
id="tspan7636">transported seperately</tspan>
<tspan
sodipodi:role="line"
x="1600.548"
y="537.61853"
id="tspan7634">all other hardware is</tspan>
<tspan
sodipodi:role="line"
x="1600.548"
y="555.25726"
id="tspan7638">fixed in the cabinet</tspan>
</text>
<path
transform="matrix(0.99244,-0.12276,0.37724,0.92612,0,0)"
d="m 1354.195,963.03 h 235.353 v 17.399 h -235.353 z"
id="rect7562-1-6"
inkscape:connector-curvature="0"
style="opacity:0.8;fill:#ffffff;stroke:#ffffff;stroke-width:0.101;stroke-dashoffset:23;enable-background:new" />
<text
font-size="14.111"
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:end;text-anchor:end;enable-background:new"
x="1862.2987"
y="917.06024"
id="text9092-7-3-2-8-5"
transform="matrix(0.98884079,-0.10988009,0.11100009,0.9989508,0,0)">
<tspan
sodipodi:role="line"
x="1862.2987"
y="917.06024"
style="-inkscape-font-specification:'Sans, Normal';text-align:end"
id="tspan17503-0">butterfly locks &amp; carry handles</tspan>
<tspan
sodipodi:role="line"
id="tspan7191-1-7-4"
x="1862.2987"
y="934.69897"
style="-inkscape-font-specification:'Sans, Normal';text-align:end">(stage equipment)</tspan>
</text>
<text
font-size="70.556"
id="text10945"
y="1516.9618"
x="-687.29889"
style="font-size:70.55599976px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#b3b3b3;filter:url(#filter_blur_large);enable-background:new"
transform="rotate(-91.526512,-0.82157777,2.8617183)">
<tspan
sodipodi:role="line"
y="1516.9618"
x="-687.29889"
id="tspan10943">Woodwork</tspan>
</text>
<text
transform="rotate(-91.526512)"
style="font-size:70.55599976px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';fill:#83754e;fill-opacity:1;enable-background:new"
x="-691.41803"
y="1512.618"
id="text10933"
font-size="70.556">
<tspan
id="tspan10931"
x="-691.41803"
y="1512.618"
sodipodi:role="line">Woodwork</tspan>
</text>
<rect
y="693.58893"
x="270.39935"
height="86.840546"
width="108.74169"
id="rect_3dprints"
style="display:inline;visibility:hidden;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.76402056;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:23;stroke-opacity:1;enable-background:new"
transform="rotate(-12.42957)">
<title
id="title7197-1-0-5">3d-printed parts</title>
</rect>
<text
transform="matrix(0.97160633,-0.21414724,0.21633703,0.98154159,0,0)"
id="text_3dprints"
y="734.47168"
x="295.02942"
style="font-size:3.52777791px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke-width:1;enable-background:new"
xml:space="preserve"><tspan
y="734.47168"
x="295.02942"
sodipodi:role="line"
id="tspan376137-0">designed with Sketchup</tspan><tspan
y="738.88141"
x="295.02942"
sodipodi:role="line"
id="tspan12890"> printed on RepRap using Repetier-Host</tspan><tspan
y="743.29114"
x="295.02942"
sodipodi:role="line"
id="tspan12892"> diffusor for RGB-LED ring (transparent PLA)</tspan><tspan
y="747.70087"
x="295.02942"
sodipodi:role="line"
id="tspan12894"> output tray (white PLA)</tspan><tspan
y="752.1106"
x="295.02942"
sodipodi:role="line"
id="tspan40045"> stowable for transport</tspan></text>
<text
font-size="8.317"
transform="rotate(-12.43)"
id="title_3dprints"
y="721.92065"
x="280.10565"
style="font-size:8.31700039px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';display:inline;stroke-width:0.99999994;enable-background:new">
<tspan
style="stroke-width:0.99999994"
y="721.92065"
x="280.10565"
id="tspan376220-6">3d-printed parts</tspan>
</text>
<text
style="font-size:8.31700039px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';display:inline;opacity:0.8;filter:url(#filter_blur_mid-4);enable-background:new"
x="292.86273"
y="664.04254"
id="text10885"
transform="rotate(-12.43,272.72153,28.36696)"
font-size="8.317">
<tspan
id="tspan10883"
x="292.86273"
y="664.04254">3d-printed parts</tspan>
</text>
</g>
<g
inkscape:label="Cabinet covers"
style="display:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
inkscape:groupmode="layer"
stroke-miterlimit="10"
id="layer_cabinet_covers"
transform="matrix(1.53047,0,0,1.53047,1290.444,-130.202)">
<path
d="M 236.161,69.594 244.198,518.905 164.52,479.04 155.7,91.2 Z"
id="Back_Cover"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<g
id="Left_Side_Cover">
<path
d="M 436.399,478.168 439.5,80.34 236.16,69.566 l 8.59,429.697 z"
id="Covers"
inkscape:connector-curvature="0"
style="fill:#fffaa7" />
<path
d="m 359.34,469.333 v 27.707 l -28.32,3.24 V 471.9 Z"
id="polygon352"
inkscape:connector-curvature="0"
style="fill:#a1a1a1" />
<path
d="m 356.66,472.262 v 22.463 l -22.96,2.627 v -23.008 z"
id="polygon354"
inkscape:connector-curvature="0"
style="fill:#b3b3b3" />
</g>
</g>
</g>
<g
visibility="hidden"
inkscape:groupmode="layer"
inkscape:label="Summary Frames"
style="display:inline;visibility:hidden"
id="layer_frames"
transform="translate(0 59.267)">
<image
sodipodi:absref="Shut-up-and-take-my-money.jpg"
xlink:href="Shut-up-and-take-my-money.jpg"
y="432.84201"
x="1147.83"
id="image_fry"
preserveAspectRatio="none"
height="158.75"
width="287.39301"
visibility="hidden"
style="display:inline" />
<text
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;filter:url(#filter_blur_large);enable-background:new;fill:#4d4d4d;"
x="1206.1152"
y="453.8027"
id="text6136"
font-size="14.111">
<tspan
id="tspan6134"
x="1206.1152"
y="453.8027"
sodipodi:role="line">Cost</tspan>
</text>
<text
style="font-family:Sans;fill:#5f8dd3;fill-opacity:0.85500004;filter:url(#filter_blur_large);enable-background:new"
font-weight="400"
id="text16511"
y="584.94397"
x="719.20001"
transform="matrix(0.15642,-0.2134,0.2134,0.15642,14.759,1024.3728)">
<tspan
font-size="40"
style="font-size:40px;line-height:125%;-inkscape-font-specification:Sans"
y="584.94397"
x="719.20001"
id="tspan16513">Questions?</tspan>
</text>
<text
style="font-size:3.17499995px;font-family:Sans;fill:#023670;enable-background:new"
font-size="3.175"
font-weight="400"
x="-627.68713"
y="771.75867"
id="text184042-6"
transform="rotate(-53.757)">
<tspan
font-size="10.583"
id="tspan184044-3"
x="-627.68713"
y="771.75867"
style="font-size:10.58300018px;line-height:125%;-inkscape-font-specification:Sans">Questions?</tspan>
</text>
<a
style="enable-background:new"
id="link_mail"
xlink:href="mailto:photobooth@schaffenburg.org"
transform="matrix(0.867,0,0,0.867,49.813334,130.764)">
<text
font-size="2.822"
transform="rotate(-53.757)"
id="text_questions_mail"
y="784.87097"
x="-634.552"
style="font-size:2.82200003px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;enable-background:new">
<tspan
id="tspan25494"
style="line-height:125%;-inkscape-font-specification:'Sans, Normal';"
y="784.87097"
x="-634.552">&lt;photobooth@schaffenburg.org&gt;</tspan>
</text>
</a>
<rect
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.52630854;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:23;stroke-opacity:1;enable-background:new"
id="rect_questions"
width="74.908577"
height="59.821606"
x="-630.63562"
y="757.59332"
transform="rotate(-53.757243)">
<title
id="title7197-1-0-1">Questions</title>
</rect>
<a
style="enable-background:new"
transform="matrix(0.06839099,-0.09561917,0.09561917,0.06839099,-9.9100243,1111.1785)"
id="a6098"
xlink:href="http://sozi.baierouge.fr/wiki/Sozi"
target="_blank">
<g
id="g6083">
<path
style="fill:none"
inkscape:connector-curvature="0"
d="m 2736.5,1160.625 h 129.688 V 1301.25 H 2736.5 Z"
id="rect5917" />
<g
id="g6072">
<path
style="fill:#ffcc00;stroke:#ffcc00;stroke-width:0.249;stroke-linecap:round"
inkscape:connector-curvature="0"
d="m 2835.127,1233.303 c -0.241,-0.789 -0.895,-4.017 -1.266,-6.258 -0.745,-4.494 -1.091,-8.208 -1.27,-13.608 -0.07,-2.125 -0.624,-2.799 -0.455,-2.799 0.704,0 4.767,1.97 6.296,2.985 3.08,2.046 4.711,4.664 4.873,7.828 0.061,1.184 0.034,1.424 -0.256,2.326 -0.668,2.076 -1.878,4.664 -4.472,7.257 -0.9,0.899 -2.327,2.388 -2.684,2.683 -0.557,0.462 -0.707,-0.223 -0.766,-0.415 z"
id="path3007" />
<path
style="fill:#ff6600;stroke:#ff6600;stroke-width:0.498;stroke-linecap:round"
inkscape:connector-curvature="0"
d="m 2767.27,1233.19 c -5.232,-12.246 -6.772,-24.347 -3.833,-30.108 1.716,-3.365 5.197,-4.897 9.659,-4.252 2.035,0.294 5.955,1.08 6.315,1.422 0.096,0.09 -0.842,0.876 -1.324,1.637 -1.189,1.875 -3.385,6.419 -4.435,9.176 -2.758,7.24 -4.542,16.476 -5.125,25.328 -0.05,0.78 -0.114,-0.527 -1.258,-3.204 z"
id="path3792" />
<path
style="fill:#ddafe9;stroke:#ddafe9;stroke-width:0.249"
inkscape:connector-curvature="0"
d="m 2833.804,1195.12 a 4.606,4.606 0 0 0 -1.675,0.45 c -0.298,0.157 -0.635,0.388 -0.659,0.756 -0.013,0.513 0.346,0.984 0.818,1.164 0.559,0.22 1.195,0.165 1.753,-0.028 0.822,-0.306 1.441,-1.005 1.811,-1.784 0.045,-0.126 0.233,-0.346 -0.02,-0.319 -0.663,-0.106 -1.327,-0.228 -2,-0.24 h -0.028 z"
id="path3800" />
<path
style="fill:#00ccff;stroke:#00ccff;stroke-width:0.249"
inkscape:connector-curvature="0"
d="m 2813.677,1266.884 c -5.805,-2.03 -8.337,-5.105 -7.772,-8.12 0.372,-1.982 3.115,-5.188 7.413,-8.63 2.455,-1.966 8.92,-6.53 10.101,-7.248 0.286,-0.174 0.048,0.745 -0.094,2.705 -0.546,7.525 -1.656,12.937 -3.792,17.783 -0.926,2.101 -2.117,4.702 -2.395,4.67 -0.09,-0.01 -1.539,-0.416 -2.461,-0.738 z"
id="path3794" />
<path
style="stroke:#000000;stroke-width:0.498;stroke-linejoin:round"
inkscape:connector-curvature="0"
d="m 2771.99,1244.52 c -12.397,-19.42 -19.488,-60.642 14.557,-41.132 0.357,0.153 -0.52,0.168 -0.68,0.076 -33.818,-19.649 -25.02,22.45 -14.107,39.366 7.111,11.022 41.955,65.421 -23.466,40.533 -0.374,-0.135 -0.174,-2.033 0.225,-1.879 59.662,23.058 35.868,-17.545 23.471,-36.964 z"
id="path2985" />
<path
style="stroke:#000000;stroke-width:0.498;stroke-linejoin:round"
inkscape:connector-curvature="0"
d="m 2843.636,1221.133 c -0.96,-13.54 -28.555,-13.395 -38.899,-13.503 -0.33,-0.01 -0.09,0.376 0.047,0.374 12.046,-0.167 37.944,0.021 38.975,13.082 1.067,13.51 -39.999,29.566 -37.866,39.166 2.134,9.6 27.733,10.666 37.689,10.666 0.889,0.09 1.1,-1.097 -0.137,-1.181 -14.513,-0.99 -51.276,-2.176 -31.985,-17.784 11.042,-8.935 33.098,-17.802 32.176,-30.82 z"
id="path2989" />
<path
style="stroke:#000000;stroke-width:0.498;stroke-linejoin:round"
inkscape:connector-curvature="0"
d="m 2852.28,1253.254 c -18.321,2.074 -22.048,-38.6 -19.141,-51.569 -4.858,21.694 5.078,54.877 19.25,52.751 1.038,-0.188 0.771,-1.37 -0.109,-1.182 z"
id="path2991" />
<path
style="stroke:#000000;stroke-width:0.498;stroke-linejoin:round"
inkscape:connector-curvature="0"
d="m 2835.296,1196.77 c 1.03,-1.054 1.409,-4.02 1.401,-3.963 -0.17,1.325 -0.503,2.688 -1.349,3.75 -0.563,0.718 -1.467,0.895 -1.863,0.807 -1.16,-0.125 -1.223,-1.041 -1.407,-2.05 -0.026,-0.143 -0.137,-0.555 -0.597,-0.177 -0.57,0.636 -0.579,1.641 -0.213,2 1.303,1.278 3,0.686 4.028,-0.367 z"
id="path3763" />
<path
style="stroke:#000000;stroke-width:0.498"
inkscape:connector-curvature="0"
id="path3846"
d="m 2792.484,1191.312 c 29.313,-7.414 45.471,75.174 11.98,85.071 -48.239,14.255 -42.852,-77.263 -11.98,-85.071 z m 3.406,-1.815 c -28.637,0.3 -42.445,85.713 -0.664,88.888 45.416,3.45 29.301,-89.188 0.664,-88.888 z" />
</g>
<text
style="font-family:Sans;text-align:center;text-anchor:middle"
x="2801.168"
y="1178.614"
id="text5023">
<tspan
font-size="14"
x="2801.168"
y="1178.614"
id="tspan5027"
style="font-size:14px;line-height:125%">Presented with</tspan>
</text>
</g>
</a>
<path
d="M651.589 433.557h210.237v157.32H651.589z"
id="rect_problems"
enable-background="new"
stroke-dashoffset="23"
stroke-width="1.43"
stroke="#000"
fill="none">
<title
id="title7197-1">
Problems
</title>
</path>
<path
d="M910.882 433.557h210.237v157.32H910.882z"
id="rect_improvements"
enable-background="new"
stroke-dashoffset="23"
stroke-width="1.43"
stroke="#000"
fill="none">
<title
id="title7197-1-0">
Improvements
</title>
</path>
<text
font-size="4.233"
style="font-size:4.2329998px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;enable-background:new"
x="925.35101"
y="442.01584"
id="text9092-7-3-7-1">
<tspan
sodipodi:role="line"
id="tspan233163-86-8-3"
x="925.35101"
y="442.01584"
style="font-style:normal;font-variant:normal;font-weight:bold">hardware improvements</tspan>
<tspan
sodipodi:role="line"
id="tspan11573"
x="925.35101"
y="447.3071">◦ better ventilation: include a fan with a filter</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="452.59836"
id="tspan11065">◦ use power supply instead of batteries for the camera</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="457.88959"
id="tspan11067">(search for a defective Nikon EN-EL15 to build one instead of buying the original one)</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="463.18085"
id="tspan11069">◦ attach speakers inside the cabinet</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="468.47211"
id="tspan11071">◦ maybe buy a regulated external flash</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="473.76334"
id="tspan11073">◦ modify the existing flash for LED permanent light</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="479.0546"
id="tspan11075">◦ camera is too high for shorties: vertically adjustable camera bearing</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="484.34586"
id="tspan11077">or height-adjustable tripod. easy solution: step ladder / beer crate</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="489.63708"
id="tspan11079">◦ use a quartz to improve arduino communication stability</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="494.92834"
id="tspan11081">◦ paint / finish cabinet</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="500.2196"
id="tspan11083">◦ use an embedded computer</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="505.51083"
id="tspan11085">◦ use a capacitive touchscreen</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="510.80209"
id="tspan11087">◦ electromagnetic compatibility (metal case)</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="516.09332"
id="tspan11089">◦ coin validator</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="521.38458"
id="tspan102444" />
<tspan
sodipodi:role="line"
x="925.35101"
y="526.67584"
style="font-style:normal;font-variant:normal;font-weight:bold;"
id="tspan7951-0">software improvements</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="531.9671"
id="tspan6791">◦ robustness (camera/usb errors can crash the application / lead to unexpected states)</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="537.25836"
id="tspan11156">◦ true live view with less latency and full resolution</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="542.54962"
id="tspan11158">◦ play a shutter sound (if there's no flash)</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="547.84082"
id="tspan11160">◦ allow reprinting finished jobs</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="553.13208"
id="tspan11162">◦ render QR code on the screen with a a facebook URL to farm likes</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="558.42334"
id="tspan11164">◦ use different filenames for printed/cancelled photos</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="563.7146"
id="tspan11166">◦ show slideshow of previous photos in screensaver mode</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="569.00586"
id="tspan11168">◦ work on printer driver sharpness</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="574.29712"
id="tspan11170">◦ automatic image optimization / effects</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="579.58832"
id="tspan11172">◦ web interface for configuration / remote control</tspan>
<tspan
sodipodi:role="line"
x="925.35101"
y="584.87958"
id="tspan11174">◦ take care of build system / packaging or provide a docker image</tspan>
</text>
<a
style="enable-background:new"
id="link_git"
xlink:href="https://git.schaffenburg.org/fraxinas/photobooth"
target="_blank"
transform="matrix(0.867,0,0,0.867,49.813334,130.764)">
<text
font-size="2.822"
transform="rotate(-53.757)"
id="text_questions_git"
y="791.31"
x="-634.46503"
style="font-size:2.82200003px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';">
<tspan
y="791.31"
x="-634.46503"
id="tspan27220">https://git.schaffenburg.org/fraxinas/photobooth</tspan>
</text>
</a>
<a
style="enable-background:new"
id="link_wiki"
xlink:href="https://wiki.schaffenburg.org/Projekt:Photobooth"
target="_blank"
transform="matrix(0.867,0,0,0.867,49.813334,130.764)">
<text
font-size="2.822"
transform="rotate(-53.757)"
id="text_questions_wiki"
y="797.76898"
x="-634.46503"
style="font-size:2.82200003px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';">
<tspan
y="797.76898"
x="-634.46503"
id="tspan27230">https://wiki.schaffenburg.org/Projekt:Photobooth</tspan>
</text>
</a>
<g
id="g40729"
transform="matrix(0.09464,-0.01488,0.00304,0.09426,333.65334,350.463)">
<path
style="fill:#fbf4f4;stroke-width:0.18799999"
inkscape:connector-curvature="0"
d="M 6.912,131.247 V 88.521 h 95.074 v 85.453 H 6.912 Z"
id="path40707" />
<path
style="fill:#d43629;stroke-width:0.26499999"
inkscape:connector-curvature="0"
d="m -6.013,194.114 c -1.089,-0.474 -2.421,-2.05 -2.757,-3.262 -0.403,-1.45 -0.387,-117.816 0.016,-119.267 0.383,-1.38 2.16,-3.158 3.54,-3.541 1.452,-0.403 117.818,-0.419 119.268,-0.016 1.243,0.345 2.8,1.685 3.273,2.816 0.595,1.423 0.525,119.63 -0.071,120.808 -0.61,1.202 -1.15,1.757 -2.273,2.33 -1.277,0.652 -119.507,0.781 -120.996,0.132 z m 26.843,-31.02 c 2.456,-1.404 35.17,-29.155 36.2,-30.706 1.568,-2.361 1.41,-4.732 -0.47,-7.099 -1.521,-1.914 -34.166,-30.042 -35.714,-30.773 -2.995,-1.413 -5.202,-0.856 -7.332,1.85 -1.415,1.798 -1.662,2.998 -1.017,4.94 0.72,2.17 1.494,2.918 15.89,15.394 8.695,7.535 13.758,12.098 13.758,12.4 0,0.307 -5.116,4.781 -14.286,12.494 -15.137,12.732 -15.7,13.285 -16.106,15.818 -0.255,1.594 0.05,2.51 1.39,4.181 2.162,2.698 4.722,3.199 7.686,1.503 z m 74.047,-3.06 c 0.448,-0.448 0.448,-10.294 0,-10.742 -0.46,-0.46 -39.386,-0.46 -39.846,0 -0.448,0.448 -0.448,10.294 0,10.742 0.46,0.46 39.387,0.46 39.846,0 z"
id="path40705" />
</g>
<path
d="M1186.408 433.557h210.237v157.32h-210.237z"
id="rect_costs"
enable-background="new"
stroke-dashoffset="23"
stroke-width="1.43"
stroke="#000"
fill="none" />
<text
font-size="118.084"
font-weight="400"
id="background_costs"
y="549.19452"
x="1245.6852"
style="font-size:118.08399963px;line-height:125%;font-family:Sans;opacity:0.2;fill:#3771c8">
<tspan
y="549.19452"
x="1245.6852"
id="tspan376216"></tspan>
</text>
<text
font-size="5.644"
font-weight="400"
style="font-size:5.64400005px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;enable-background:new"
x="1227.4159"
y="468.04453"
id="text_costs_parts">
<tspan
sodipodi:role="line"
id="tspan233751-9-0-5"
x="1227.4159"
y="468.04453"
style="-inkscape-font-specification:'Sans, Bold';font-family:Sans;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;font-size:5.64409152px;text-anchor:start;text-align:start;writing-mode:lr;">Part</tspan>
<tspan
sodipodi:role="line"
id="tspan376208"
x="1227.4159"
y="475.09952">Camera</tspan>
<tspan
sodipodi:role="line"
id="tspan376139"
x="1227.4159"
y="482.15451">Printer</tspan>
<tspan
sodipodi:role="line"
id="tspan376135"
x="1227.4159"
y="489.20953">Display</tspan>
<tspan
sodipodi:role="line"
id="tspan376141"
x="1227.4159"
y="496.26453">PC components</tspan>
<tspan
sodipodi:role="line"
id="tspan376224"
x="1227.4159"
y="503.31952">Keyboard w/ Touchpad</tspan>
<tspan
sodipodi:role="line"
id="tspan376143"
x="1227.4159"
y="510.37451">Arduino</tspan>
<tspan
sodipodi:role="line"
id="tspan376145"
x="1227.4159"
y="517.4295">RGB-LEDs</tspan>
<tspan
sodipodi:role="line"
id="tspan376149"
x="1227.4159"
y="524.4845">Cabinet Wood + Metal</tspan>
<tspan
sodipodi:role="line"
id="tspan376153"
x="1227.4159"
y="531.53955">Flash + Softbox</tspan>
<tspan
sodipodi:role="line"
id="tspan11531"
x="1227.4159"
y="538.59454">Speakers</tspan>
<tspan
sodipodi:role="line"
id="tspan11563"
x="1227.4159"
y="545.64954">Cables, small parts</tspan>
<tspan
sodipodi:role="line"
font-weight="700"
style="font-weight:700;-inkscape-font-specification:'Sans, Bold';"
id="tspan11537"
x="1227.4159"
y="552.70453">Total</tspan>
</text>
<text
font-size="5.644"
font-weight="400"
style="font-size:5.64400005px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;enable-background:new"
x="1349.9525"
y="468.04453"
id="text_costs_prices">
<tspan
sodipodi:role="line"
id="tspan376210"
x="1349.9525"
y="468.04453"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64409161px;font-family:Sans;-inkscape-font-specification:'Sans, Bold';;text-align:end;writing-mode:lr-tb;text-anchor:end">Price (€)</tspan>
<tspan
sodipodi:role="line"
id="tspan376214"
x="1349.9525"
y="475.09952"
style="text-align:end;text-anchor:end">0</tspan>
<tspan
sodipodi:role="line"
id="tspan376139-6"
x="1349.9525"
y="482.15451"
style="text-align:end;text-anchor:end">650</tspan>
<tspan
sodipodi:role="line"
id="tspan376135-3"
x="1349.9525"
y="489.20953"
style="text-align:end;text-anchor:end">45</tspan>
<tspan
sodipodi:role="line"
id="tspan376141-3"
x="1349.9525"
y="496.26453"
style="text-align:end;text-anchor:end">~150</tspan>
<tspan
sodipodi:role="line"
id="tspan376226"
x="1349.9525"
y="503.31952"
style="text-align:end;text-anchor:end">25</tspan>
<tspan
sodipodi:role="line"
id="tspan376143-0"
x="1349.9525"
y="510.37451"
style="text-align:end;text-anchor:end">20</tspan>
<tspan
sodipodi:role="line"
id="tspan376145-5"
x="1349.9525"
y="517.4295"
style="text-align:end;text-anchor:end">25</tspan>
<tspan
sodipodi:role="line"
id="tspan376149-0"
x="1349.9525"
y="524.4845"
style="text-align:end;text-anchor:end">53</tspan>
<tspan
sodipodi:role="line"
id="tspan376153-3"
x="1349.9525"
y="531.53955"
style="text-align:end;text-anchor:end">~20</tspan>
<tspan
sodipodi:role="line"
id="tspan376155-6"
x="1349.9525"
y="538.59454"
style="text-align:end;text-anchor:end">2</tspan>
<tspan
sodipodi:role="line"
id="tspan11565"
x="1349.9525"
y="545.64954"
style="text-align:end;text-anchor:end">~10</tspan>
<tspan
sodipodi:role="line"
font-weight="700"
style="font-weight:700;-inkscape-font-specification:'Sans, Bold';;text-align:end;text-anchor:end"
id="tspan11567"
x="1349.9525"
y="552.70453">~1000</tspan>
</text>
<text
font-size="14.111"
id="title_costs"
y="453.27353"
x="1205.5861"
style="font-size:14.11100006px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;enable-background:new">
<tspan
sodipodi:role="line"
y="453.27353"
x="1205.5861"
id="tspan376220">Cost</tspan>
</text>
<text
word-spacing="0"
letter-spacing="0"
font-size="5.644"
font-weight="400"
id="text11571"
y="563.37201"
x="1205.27"
style="font-size:5.64400005px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;letter-spacing:0;word-spacing:0;">
<tspan
id="tspan6109"
sodipodi:role="line"
y="563.37201"
x="1205.27">with media cost price of 15 cents and</tspan>
<tspan
sodipodi:role="line"
y="570.427"
x="1205.27"
id="tspan11592"><tspan
text-decoration="line-through"
id="tspan11598">retail price</tspan>
&quot;donation&quot; of 2 € per copy,</tspan>
<tspan
id="tspan6113"
sodipodi:role="line"
y="577.48199"
x="1205.27">the photo booth is paid off after 568 prints (85-175 per gig)</tspan>
</text>
<path
id="path11587"
d="m 1218.969,547.33451 h 132.1045"
inkscape:connector-curvature="0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.27690214" />
<path
d="M1186.408 433.557h210.237v157.32h-210.237z"
id="rect_fry"
enable-background="new"
stroke-dashoffset="23"
stroke-width="1.43"
stroke="#000"
fill="none" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;"
x="1313.9207"
y="561.84241"
id="text11588"><tspan
sodipodi:role="line"
id="tspan11586"
x="1313.9207"
y="564.33942" /></text>
<text
id="text6140"
y="453.8027"
x="669.19403"
style="font-size:14.11111069px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.9627279px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter_blur_large)"
xml:space="preserve"><tspan
style="font-size:14.11111069px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;fill:#4d4d4d;stroke-width:0.9627279px"
y="453.8027"
x="669.19403"
id="tspan6138"
sodipodi:role="line">Issues?</tspan></text>
<text
xml:space="preserve"
style="font-size:14.11111069px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.9627279px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="668.66486"
y="453.27353"
id="text6128"><tspan
sodipodi:role="line"
id="tspan6126"
x="668.66486"
y="453.27353"
style="font-size:14.11111069px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;stroke-width:0.9627279px">Issues?</tspan></text>
<text
font-size="5.644"
style="font-size:5.64444447px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;enable-background:new"
x="670.19299"
y="458.68201"
id="text9092-7-3-7">
<tspan
y="463.67603"
x="670.19299"
sodipodi:role="line"
id="tspan7191-5" />
<tspan
y="470.73157"
x="670.19299"
sodipodi:role="line"
id="tspan6146">there are absolutely none!</tspan>
<tspan
id="tspan8890"
y="477.78714"
x="670.19299"
sodipodi:role="line" />
<tspan
id="tspan7909"
y="484.84268"
x="670.19299"
sodipodi:role="line">except maybe:</tspan>
<tspan
id="tspan7913"
y="491.89825"
x="670.19299"
sodipodi:role="line" />
<tspan
id="tspan7915"
y="498.9538"
x="670.19299"
sodipodi:role="line">◦ glaring sunlight</tspan>
<tspan
id="tspan7917"
y="506.00934"
x="670.19299"
sodipodi:role="line">◦ dust</tspan>
<tspan
id="tspan7919"
y="513.06488"
x="670.19299"
sodipodi:role="line">◦ heat (Arduino communication problems,</tspan>
<tspan
id="tspan8884"
y="520.12048"
x="670.19299"
sodipodi:role="line">PC crashes, Nikon battery charger overheating)</tspan>
<tspan
id="tspan7921"
y="527.17603"
x="670.19299"
sodipodi:role="line">◦ takes a while to find a good setup</tspan>
<tspan
id="tspan8886"
y="534.23157"
x="670.19299"
sodipodi:role="line">for flash and exposure settings</tspan>
<tspan
id="tspan7911"
y="541.28711"
x="670.19299"
sodipodi:role="line">◦ autofocus is unpredictably slow,</tspan>
<tspan
id="tspan8888"
y="548.34271"
x="670.19299"
sodipodi:role="line">tends to make errors -&gt; use manual focus</tspan>
</text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.27690214"
inkscape:connector-curvature="0"
d="m 1219.4982,469.54694 h 132.1045"
id="path11176" />
</g>
<script
id="sozi-script"
ns1:version="13.11-30213629">/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* Create or augment a namespace.
*
* &lt;p&gt;A typical use of this function is:&lt;/p&gt;
*
* &lt;pre&gt;
* namespace(this, &quot;a.b.c&quot;, function (exports, globals) {
* exports.foo = function (x) {
* ...
* };
* });
* &lt;/pre&gt;
*
* &lt;p&gt;where &lt;code&gt;this&lt;/code&gt; is the global object.&lt;/p&gt;
*
* &lt;p&gt;In this example, function &lt;code&gt;foo&lt;/code&gt; is exported and can be
* called as &lt;code&gt;a.b.c.foo(someValue)&lt;/code&gt;.&lt;/p&gt;
*
* @memberOf _global_
* @param globals The global object
* @param {String} path The dot-separated path to the namespace
* @param {Function} body A function to execute in the context of the namespace
*/
function namespace(globals, path, body) {
&quot;use strict&quot;;
// Start name lookup in the global object
var current = globals;
// For each name in the given path
path.split(&quot;.&quot;).forEach(function (name) {
// If the current path element does not exist
// in the current namespace, create a new sub-namespace
if (typeof current[name] === &quot;undefined&quot;) {
current[name] = {};
}
// Move to the namespace for the current path element
current = current[name];
});
// Execute the given function in the last namespace
if (body) {
body(current, globals);
}
return current;
}
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.events
* @namespace A simple event system for Sozi.
* @depend namespace.js
*/
namespace(this, &quot;sozi.events&quot;, function (exports) {
/** @lends sozi.events */
&quot;use strict&quot;;
/**
* A registry of callback functions for each event type.
*
* &lt;p&gt;Call {@link sozi.events.listen} to add a new listener.&lt;/p&gt;
*/
var listenerRegistry = {};
/**
* Adds a listener for a given event type.
*
* @memberOf sozi.events
* @name listen
* @function
* @param {String} key The identifier of the event type to listen
* @param {Function} handler The function to call when a corresponding event is fired
*/
exports.listen = function (key, handler) {
if (!listenerRegistry.hasOwnProperty(key)) {
listenerRegistry[key] = [];
}
listenerRegistry[key].push(handler);
};
/**
* Fire an event of a given type.
*
* &lt;p&gt;All event handlers added for the given event type are
* executed.&lt;/p&gt;
*
* &lt;p&gt;Additional arguments provided to this function are passed
* to the event handlers.&lt;/p&gt;
*
* @memberOf sozi.events
* @name fire
* @function
* @param {String} key The identifier of the event type to fire
*/
exports.fire = function (key) {
var args = Array.prototype.slice.call(arguments, 1);
if (listenerRegistry.hasOwnProperty(key)) {
listenerRegistry[key].forEach(function (listener) {
listener.apply(null, args);
});
}
};
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.proto
* @namespace Helpers for prototype inheritance.
* @depend namespace.js
*/
namespace(this, &quot;sozi.proto&quot;, function (exports) {
&quot;use strict&quot;;
exports.Object = {
installConstructors: function () {
function InstanceConstructor() {}
InstanceConstructor.prototype = this;
this.instance = function () {
var result = new InstanceConstructor();
result.construct.apply(result, arguments);
return result;
};
this.subtype = function (anObject) {
var result = new InstanceConstructor();
result.augment(anObject);
result.installConstructors();
return result;
};
},
construct: function () {},
augment: function (anObject) {
for (var attr in anObject) {
if (anObject.hasOwnProperty(attr)) {
this[attr] = anObject[attr];
}
}
return this;
},
bind: function (aFunction) {
var self = this;
return function () {
return aFunction.apply(self, arguments);
}
}
};
// Bootstrap the root object
exports.Object.installConstructors();
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.actions
* @namespace Callback functions for DOM event handlers
* @depend namespace.js
*/
namespace(this, &quot;sozi.actions&quot;, function (exports, window) {
/** @lends sozi.actions */
&quot;use strict&quot;;
// Module aliases
var player = namespace(window, &quot;sozi.player&quot;);
var display = namespace(window, &quot;sozi.display&quot;);
// The global document object
var document = window.document;
// Constants: mouse button numbers
var DRAG_BUTTON = 0; // Left button
var TOC_BUTTON = 1; // Middle button
// Constants: increments for zooming and rotating,
// threshold for dragging
var SCALE_FACTOR = 1.05;
var ROTATE_STEP = 5;
var DRAG_THRESHOLD_PX = 5;
/**
* The status of the current drag operation.
*
* @type Boolean
*/
var mouseDragged = false;
/**
* The X coordinate of the mouse on the latest &quot;down&quot; or &quot;drag&quot; event.
*
* @type Number
*/
var mouseLastX = 0;
/**
* The Y coordinate of the mouse on the latest &quot;down&quot; or &quot;drag&quot; event.
*
* @type Number
*/
var mouseLastY = 0;
/**
* Zooms the display in the given direction.
*
* &lt;p&gt;Only the sign of &lt;code&gt;direction&lt;/code&gt; is used:&lt;/p&gt;
* &lt;ul&gt;
* &lt;li&gt;zoom in when &lt;code&gt;direction &gt; 0&lt;/code&gt;&lt;/li&gt;
* &lt;li&gt;zoom out when &lt;code&gt;direction &lt;= 0&lt;/code&gt;&lt;/li&gt;
* &lt;/ul&gt;
*
* &lt;p&gt;The scaling is centered around point (&lt;code&gt;x&lt;/code&gt;, &lt;code&gt;y&lt;/code&gt;).&lt;/p&gt;
*
* @param {Number} direction The direction of the scaling operation
* @param {Number} x The X coordinate of the scaling center
* @param {Number} y The Y coordinate of the scaling center
*/
function zoom(direction, x, y) {
player.stop();
display.viewPorts[&quot;player&quot;].zoom(direction &gt; 0 ? SCALE_FACTOR : 1 / SCALE_FACTOR, x, y);
}
/**
* Rotate the display in the given direction.
*
* &lt;p&gt;Only the sign of &lt;code&gt;direction&lt;/code&gt; is used:&lt;/p&gt;
* &lt;ul&gt;
* &lt;li&gt;rotate anticlockwise when direction &gt; 0&lt;/li&gt;
* &lt;li&gt;rotate clockwise when direction &lt;= 0&lt;/li&gt;
* &lt;/ul&gt;
*
* @param {Number} direction The direction of the rotation
*/
function rotate(direction) {
player.stop();
display.viewPorts[&quot;player&quot;].rotate(direction &gt; 0 ? ROTATE_STEP : -ROTATE_STEP);
}
/**
* Show/hide the frame list.
*
* &lt;p&gt;The presentation stops when the frame list is showed,
* and restarts when the frame list is hidden.&lt;/p&gt;
*/
function toggleFrameList() {
if (sozi.framelist.isVisible()) {
sozi.framelist.hide();
player.restart();
} else {
player.stop();
sozi.framelist.show();
}
}
function isPlayerEvent(evt) {
return display.viewPorts[&quot;player&quot;].contains(evt.clientX, evt.clientY);
}
/**
* Event handler: mouse down.
*
* &lt;p&gt;When the left button is pressed, we register the current coordinates
* in case the mouse will be dragged. Handler {@link sozi.actions-onMouseDrag} is set until
* the button is released ({@link sozi.actions-onMouseUp}).&lt;/p&gt;
*
* &lt;p&gt;When the middle button is pressed, the table of contents is shown or hidden.&lt;/p&gt;
*
* @param {Event} evt The DOM event object
*/
function onMouseDown(evt) {
if (!isPlayerEvent(evt)) {
return;
}
if (evt.button === DRAG_BUTTON) {
document.documentElement.addEventListener(&quot;mousemove&quot;, onMouseDrag, false);
mouseDragged = false;
mouseLastX = evt.clientX;
mouseLastY = evt.clientY;
} else if (evt.button === TOC_BUTTON) {
toggleFrameList();
}
evt.stopPropagation();
evt.preventDefault();
}
/**
* Event handler: mouse move.
*
* &lt;p&gt;If the left mouse button is down, then the mouse move is a drag action.
* This method computes the displacement since the button was pressed or
* since the last move, and updates the reference coordinates for the next move.&lt;/p&gt;
*
* @param {Event} evt The DOM event object
*/
function onMouseDrag(evt) {
if (!isPlayerEvent(evt)) {
return;
}
player.stop();
// The drag action is confirmed when one of the mouse coordinates
// has moved past the threshold
if (!mouseDragged &amp;&amp; (Math.abs(evt.clientX - mouseLastX) &gt; DRAG_THRESHOLD_PX ||
Math.abs(evt.clientY - mouseLastY) &gt; DRAG_THRESHOLD_PX)) {
mouseDragged = true;
}
if (mouseDragged) {
sozi.events.fire(&quot;sozi.player.cleanup&quot;);
display.viewPorts[&quot;player&quot;].drag(evt.clientX - mouseLastX, evt.clientY - mouseLastY);
mouseLastX = evt.clientX;
mouseLastY = evt.clientY;
}
evt.stopPropagation();
}
/**
* Event handler: mouse up.
*
* &lt;p&gt;Releasing the left button removes the {@link sozi.actions-onMouseDrag} handler.&lt;/p&gt;
*
* @param {Event} evt The DOM event object
*/
function onMouseUp(evt) {
if (!isPlayerEvent(evt)) {
return;
}
if (evt.button === DRAG_BUTTON) {
document.documentElement.removeEventListener(&quot;mousemove&quot;, onMouseDrag, false);
}
evt.stopPropagation();
evt.preventDefault();
}
/**
* Event handler: context menu (i.e right click).
*
* &lt;p&gt;Right click goes one frame back.&lt;/p&gt;
*
* &lt;p&gt;There is no &quot;click&quot; event for the right mouse button and the menu
* can't be disabled in {@link sozi.actions-onMouseDown}.&lt;/p&gt;
*
* @param {Event} evt The DOM event object
*/
function onContextMenu(evt) {
if (!isPlayerEvent(evt)) {
return;
}
player.moveToPrevious();
evt.stopPropagation();
evt.preventDefault();
}
/**
* Event handler: mouse click.
*
* &lt;p&gt;Left-click moves the presentation to the next frame.&lt;/p&gt;
*
* &lt;p&gt;No &quot;click&quot; event is generated for the middle button in Firefox.
* See {@link sozi.actions-onMouseDown} for middle click handling.&lt;/p&gt;
*
* &lt;p&gt;Dragging the mouse produces a &quot;click&quot; event when the button is released.
* If flag {@link sozi.actions-mouseDragged} was set by {@link sozi.actions-onMouseDrag},
* then the click event is the result of a drag action.&lt;/p&gt;
*
* @param {Event} evt The DOM event object
*/
function onClick(evt) {
if (!isPlayerEvent(evt)) {
return;
}
if (!mouseDragged &amp;&amp; evt.button !== TOC_BUTTON) {
player.moveToNext();
}
evt.stopPropagation();
evt.preventDefault();
}
/**
* Event handler: mouse wheel.
*
* &lt;p&gt;Rolling the mouse wheel stops the presentation and zooms the current display.&lt;/p&gt;
*
* FIXME shift key does not work in Opera
*
* @param {Event} evt The DOM event object
*/
function onWheel(evt) {
if (!isPlayerEvent(evt)) {
return;
}
if (!evt) {
evt = window.event;
}
var delta = 0;
if (evt.wheelDelta) { // IE and Opera
delta = evt.wheelDelta;
}
else if (evt.detail) { // Mozilla
delta = -evt.detail;
}
if (delta !== 0) {
if (evt.shiftKey) {
rotate(delta);
}
else {
zoom(delta, evt.clientX, evt.clientY);
}
}
evt.stopPropagation();
evt.preventDefault();
}
/**
* Event handler: key press.
*
* &lt;p&gt;Keyboard handling is split into two methods:
* {@link sozi.actions-onKeyPress} and {@link sozi.actions-onKeyDown}
* in order to get the same behavior across browsers.&lt;/p&gt;
*
* &lt;p&gt;This method handles character keys &quot;+&quot;, &quot;-&quot;, &quot;=&quot;, &quot;F&quot; and &quot;T&quot;.&lt;/p&gt;
*
* @param {Event} evt The DOM event object
*/
function onKeyPress(evt) {
// Keys with modifiers are ignored
if (evt.altKey || evt.ctrlKey || evt.metaKey) {
return;
}
switch (evt.charCode || evt.which) {
case 43: // +
zoom(1, window.innerWidth / 2, window.innerHeight / 2);
break;
case 45: // -
zoom(-1, window.innerWidth / 2, window.innerHeight / 2);
break;
case 61: // =
player.moveToCurrent();
break;
case 70: // F
case 102: // f
player.showAll();
break;
case 84: // T
case 116: // t
toggleFrameList();
break;
case 82: // R
rotate(-1);
break;
case 114: // r
rotate(1);
break;
default:
return;
}
evt.stopPropagation();
evt.preventDefault();
}
/**
* Event handler: key down.
*
* &lt;p&gt;Keyboard handling is split into two methods:
* {@link sozi.actions-onKeyPress} and {@link sozi.actions-onKeyDown}
* in order to get the same behavior across browsers.&lt;/p&gt;
*
* &lt;p&gt;This method handles navigation keys (arrows, page up/down, home, end)
* and the space and enter keys.&lt;/p&gt;
*
* @param {Event} evt The DOM event object
*/
function onKeyDown(evt) {
// Keys with Alt/Ctrl/Meta modifiers are ignored
if (evt.altKey || evt.ctrlKey || evt.metaKey) {
return;
}
switch (evt.keyCode) {
case 36: // Home
if (evt.shiftKey) {
player.jumpToFirst();
}
else {
player.moveToFirst();
}
break;
case 35: // End
if (evt.shiftKey) {
player.jumpToLast();
}
else {
player.moveToLast();
}
break;
case 38: // Arrow up
case 33: // Page up
case 37: // Arrow left
if (evt.shiftKey) {
player.jumpToPrevious();
}
else {
player.moveToPrevious();
}
break;
case 40: // Arrow down
case 34: // Page down
case 39: // Arrow right
case 13: // Enter
case 32: // Space
if (evt.shiftKey) {
player.jumpToNext();
}
else {
player.moveToNext();
}
break;
default:
// Ignore other keys and propagate the event
return;
}
// Stop event propagation for supported keys
evt.stopPropagation();
// In some versions of Chrome/Chromium, preventDefault() inhibits the &quot;keypress&quot; event
evt.preventDefault();
}
/**
* Dummy event handler: stop event propagation.
*
* @param {Event} evt The DOM event object
*/
function stopEvent(evt) {
evt.stopPropagation();
}
/**
* Event handler: document load.
*
* &lt;p&gt;This function sets up all other event handlers for the player.&lt;/p&gt;
*/
function onDisplayReady() {
// Prevent event propagation when clicking on a link
// FIXME does not work in Firefox when the &lt;a&gt; is referenced through a &lt;use&gt;
var links = document.getElementsByTagName(&quot;a&quot;);
for (var i = 0; i &lt; links.length; i += 1) {
links[i].addEventListener(&quot;click&quot;, stopEvent, false);
links[i].addEventListener(&quot;contextmenu&quot;, stopEvent, false);
}
// Mouse events are constrained to the player viewport
// see isPlayerEvent()
// TODO also use shift-click as an alternative for middle-click
var svgRoot = document.documentElement;
svgRoot.addEventListener(&quot;click&quot;, onClick, false);
svgRoot.addEventListener(&quot;mousedown&quot;, onMouseDown, false);
svgRoot.addEventListener(&quot;mouseup&quot;, onMouseUp, false);
svgRoot.addEventListener(&quot;contextmenu&quot;, onContextMenu, false);
svgRoot.addEventListener(&quot;DOMMouseScroll&quot;, onWheel, false); // Mozilla
window.onmousewheel = onWheel;
// Keyboard events are global to the SVG document
svgRoot.addEventListener(&quot;keypress&quot;, onKeyPress, false);
svgRoot.addEventListener(&quot;keydown&quot;, onKeyDown, false);
}
sozi.events.listen(&quot;sozi.display.ready&quot;, onDisplayReady); // @depend events.js
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.animation
* @namespace A general-purpose animation controller.
* @depend namespace.js
*/
namespace(this, &quot;sozi.animation&quot;, function (exports, window) {
/** @lends sozi.animation */
&quot;use strict&quot;;
/**
* The browser-specific function to request an animation frame.
*
* @function
*/
var requestAnimationFrame =
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame;
var getCurrentTime = function () {
return window.performance &amp;&amp; window.performance.now ?
window.performance.now() :
Date.now();
};
exports.setAnimationFrameHandlers = function (requestAnimationFrameFunction, getCurrentTimeFunction) {
requestAnimationFrame = requestAnimationFrameFunction;
getCurrentTime = getCurrentTimeFunction;
};
/**
* The default time step.
*
* &lt;p&gt;For browsers that do not support animation frames.&lt;/p&gt;
*
* @constant
* @type Number
*/
var TIME_STEP_MS = 40;
/**
* The handle provided by &lt;code&gt;setInterval()&lt;/code&gt;.
*
* &lt;p&gt;For browsers that do not support animation frames.&lt;/p&gt;
*/
var timer;
/**
* The list of running animators.
*
* @type Array
*/
var animatorList = [];
/**
* The main animation loop.
*
* &lt;p&gt;This function is called periodically and triggers the
* animation steps in all running animators.&lt;/p&gt;
*
* &lt;p&gt;If all animators are removed from the list of running animators,
* then the periodic calling is disabled.&lt;/p&gt;
*
* &lt;p&gt;This function can be called either through {@link sozi.animation-requestAnimationFrame}
* if the browser supports it, or through &lt;code&gt;setInterval()&lt;/code&gt;.&lt;/p&gt;
*/
function loop() {
if (animatorList.length &gt; 0) {
// If there is at least one animator,
// and if the browser provides animation frames,
// schedule this function to be called again in the next frame.
if (requestAnimationFrame) {
requestAnimationFrame(loop);
}
// Step all animators
animatorList.forEach(function (animator) {
// TODO use timestamp argument:
// browser compatibility issue with Date.now()
// and performance.now() timestamps.
animator.step(getCurrentTime());
});
}
else {
// If all animators have been removed,
// and if this function is called periodically
// through setInterval, disable the periodic calling.
if (!requestAnimationFrame) {
window.clearInterval(timer);
}
}
}
/**
* Start the animation loop.
*
* &lt;p&gt;This function delegates the periodic update of all animators
* to the {@link sozi.animation-loop} function, either through {@link sozi.animation-requestAnimationFrame}
* if the browser supports it, or through &lt;code&gt;setInterval()&lt;/code&gt;.&lt;/p&gt;
*/
function start() {
if (requestAnimationFrame) {
requestAnimationFrame(loop);
}
else {
timer = window.setInterval(function () {
loop(getCurrentTime());
}, TIME_STEP_MS);
}
}
/**
* Add a new animator object to the list of running animators.
*
* &lt;p&gt;If the animator list was empty before calling this function,
* then the animation loop is started.&lt;/p&gt;
*
* @param {sozi.animation.Animator} animator The animator object to add.
*/
function addAnimator(animator) {
animatorList.push(animator);
if (animatorList.length === 1) {
start();
}
}
/**
* Remove the given animator from the list of running animators.
*
* @param {sozi.animation.Animator} animator The animator object to add.
*/
function removeAnimator(animator) {
animatorList.splice(animatorList.indexOf(animator), 1);
}
/**
* @class
*
* An animator provides the logic for animating other objects.
*
* &lt;p&gt;The main purpose of an animator is to schedule the update
* operations in the animated objects.&lt;/p&gt;
*
* @memberOf sozi.animation
* @name Animator
* @depend proto.js
*/
exports.Animator = sozi.proto.Object.subtype({
/** @lends sozi.animation.Animator */
/**
* Construct a new animator.
*/
construct: function () {
/**
* The animation duration, in milliseconds.
* @type Number
*/
this.durationMs = 0;
/**
* A &quot;payload&quot; object that can be used by {@link sozi.animation.Animator.onStep}
* and {@link sozi.animation.Animator.onDone}.
*/
this.data = null;
/**
* The start time of the animation.
* @type Number
*/
this.initialTime = 0;
/**
* The current state of this animator.
* @type Boolean
*/
this.started = false;
},
/**
* Start the current animator.
*
* &lt;p&gt;The current animator is added to the list of running animators
* and is put in the &quot;started&quot; state.
* It will be removed from the list automatically when the given duration
* has elapsed.&lt;/p&gt;
*
* &lt;p&gt;Method {@link sozi.animation.Animator.onStep} is called once before starting the animation.&lt;/p&gt;
*
* @param {Number} durationMs The animation duration, in milliseconds
* @param data Some data that can be used in {@link sozi.animation.Animator.onStep}
* and {@link sozi.animation.Animator.onDone}
*/
start: function (durationMs, data) {
this.durationMs = durationMs;
this.data = data;
this.initialTime = getCurrentTime();
this.onStep(0);
if (!this.started) {
this.started = true;
addAnimator(this);
}
},
/**
* Stop the current animator.
*
* &lt;p&gt;The current animator is removed from the list of running animators
* and is put in the &quot;stopped&quot; state.&lt;/p&gt;
*/
stop: function () {
if (this.started) {
removeAnimator(this);
this.started = false;
}
},
/**
* Perform one animation step.
*
* &lt;p&gt;This function is called automatically by the {@link sozi.animation-loop} function.
* It calls {@link sozi.animation.Animator.onStep}.
* If the animation duration has elapsed, {@link sozi.animation.Animator.onDone} is called.&lt;/p&gt;
*
* @param {Number} currentTime The current time
*/
step: function (currentTime) {
var elapsedTime = currentTime - this.initialTime;
if (elapsedTime &gt;= this.durationMs) {
this.stop();
this.onStep(1);
this.onDone();
} else {
this.onStep(elapsedTime / this.durationMs);
}
},
/**
* This method is called automatically on each animation step.
*
* &lt;p&gt;The default implementation does nothing. Override it in a
* subclass or instance to provide your own implementation.&lt;p&gt;
*
* @param {Number} progress The elapsed fraction of the total duration (comprised between 0 and 1 included).
*/
onStep: function (progress) {
// Do nothing
},
/**
* This method is called automatically when the animation ends.
*
* &lt;p&gt;The default implementation does nothing. Override it in a
* subclass or instance to provide your own implementation.&lt;p&gt;
*/
onDone: function () {
// Do nothing
}
});
/*
* The acceleration profiles.
*
* Each profile is a function that operates in the interval [0, 1]
* and produces a result in the same interval.
*
* These functions are meant to be called in {@link sozi.animation.Animator.onStep}
* to transform the progress indicator according to the desired
* acceleration effect.
*/
exports.profiles = {
&quot;linear&quot;: function (x) {
return x;
},
&quot;accelerate&quot;: function (x) {
return Math.pow(x, 3);
},
&quot;strong-accelerate&quot;: function (x) {
return Math.pow(x, 5);
},
&quot;decelerate&quot;: function (x) {
return 1 - Math.pow(1 - x, 3);
},
&quot;strong-decelerate&quot;: function (x) {
return 1 - Math.pow(1 - x, 5);
},
&quot;accelerate-decelerate&quot;: function (x) {
var xs = x &lt;= 0.5 ? x : 1 - x,
y = Math.pow(2 * xs, 3) / 2;
return x &lt;= 0.5 ? y : 1 - y;
},
&quot;strong-accelerate-decelerate&quot;: function (x) {
var xs = x &lt;= 0.5 ? x : 1 - x,
y = Math.pow(2 * xs, 5) / 2;
return x &lt;= 0.5 ? y : 1 - y;
},
&quot;decelerate-accelerate&quot;: function (x) {
var xs = x &lt;= 0.5 ? x : 1 - x,
y = (1 - Math.pow(1 - 2 * xs, 2)) / 2;
return x &lt;= 0.5 ? y : 1 - y;
},
&quot;strong-decelerate-accelerate&quot;: function (x) {
var xs = x &lt;= 0.5 ? x : 1 - x,
y = (1 - Math.pow(1 - 2 * xs, 3)) / 2;
return x &lt;= 0.5 ? y : 1 - y;
},
&quot;immediate-beginning&quot;: function (x) {
return 1;
},
&quot;immediate-end&quot;: function (x) {
return x === 1 ? 1 : 0;
},
&quot;immediate-middle&quot;: function (x) {
return x &gt;= 0.5 ? 1 : 0;
}
};
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.display
* @namespace Display management.
* @depend namespace.js
*/
namespace(this, &quot;sozi.display&quot;, function (exports, window) {
&quot;use strict&quot;;
// Constant: the Sozi namespace
var SVG_NS = &quot;http://www.w3.org/2000/svg&quot;;
var XLINK_NS = &quot;http://www.w3.org/1999/xlink&quot;;
// The global document object
var document = window.document;
// The initial bounding box of the whole document,
// assigned in onDocumentReady()
var initialBBox;
var lastWindowWidth;
var lastWindowHeight;
exports.viewPorts = {};
var primaryViewport;
/**
* @depend proto.js
*/
exports.CameraState = sozi.proto.Object.subtype({
construct : function () {
// Center coordinates
this.cx = this.cy = 0;
// Dimensions
this.width = this.height = 1;
// Rotation angle, in degrees
this.angle = 0;
// Clipping
this.clipped = true;
// Transition zoom
this.transitionZoomPercent = 0;
// Transition profile
this.transitionProfile = sozi.animation.profiles.linear;
// Transition path
this.transitionPath = null;
},
setCenter: function (cx, cy) {
this.cx = cx;
this.cy = cy;
return this;
},
setSize: function (width, height) {
this.width = width;
this.height = height;
return this;
},
setClipped: function (clipped) {
this.clipped = clipped;
return this;
},
/*
* Set the angle of the current camera state.
* The angle of the current state is normalized
* in the interval [-180 ; 180]
*/
setAngle: function (angle) {
this.angle = (angle + 180) % 360 - 180;
return this;
},
setRawAngle: function (angle) {
this.angle = angle;
return this;
},
setTransitionZoomPercent: function (zoomPercent) {
this.transitionZoomPercent = zoomPercent;
return this;
},
setTransitionProfile: function (profile) {
this.transitionProfile = profile;
return this;
},
setTransitionPath: function (svgPath) {
this.transitionPath = svgPath;
return this;
},
/*
* Set the current camera's properties to the given SVG element.
*
* If the element is a rectangle, the properties of the frames are based
* on the geometrical properties of the rectangle.
* Otherwise, the properties of the frame are based on the bounding box
* of the given element.
*
* Parameters:
* - svgElement: an element from the SVG DOM
*/
setAtElement: function (svgElement) {
// Read the raw bounding box of the given SVG element
var x, y, w, h;
if (svgElement.nodeName === &quot;rect&quot;) {
x = svgElement.x.baseVal.value;
y = svgElement.y.baseVal.value;
w = svgElement.width.baseVal.value;
h = svgElement.height.baseVal.value;
} else {
var b = svgElement.getBBox();
x = b.x;
y = b.y;
w = b.width;
h = b.height;
}
// Compute the raw coordinates of the center
// of the given SVG element
var c = document.documentElement.createSVGPoint();
c.x = x + w / 2;
c.y = y + h / 2;
// Compute the coordinates of the center of the given SVG element
// after its current transformation
var matrix = svgElement.getCTM();
c = c.matrixTransform(matrix);
// Compute the scaling factor applied to the given SVG element
var scale = Math.sqrt(matrix.a * matrix.a + matrix.b * matrix.b);
// Update the camera to match the bounding box information of the
// given SVG element after its current transformation
return this.setCenter(c.x, c.y)
.setSize(w * scale, h * scale)
.setAngle(Math.atan2(matrix.b, matrix.a) * 180 / Math.PI);
},
setAtState: function (other) {
return this.setCenter(other.cx, other.cy)
.setSize(other.width, other.height)
.setAngle(other.angle)
.setClipped(other.clipped)
.setTransitionZoomPercent(other.transitionZoomPercent)
.setTransitionProfile(other.transitionProfile)
.setTransitionPath(other.transitionPath);
},
interpolatableAttributes: [&quot;width&quot;, &quot;height&quot;, &quot;angle&quot;],
interpolate: function (initialState, finalState, ratio, useTransitionPath, reverseTransitionPath) {
var remaining = 1 - ratio;
for (var i = 0; i &lt; this.interpolatableAttributes.length; i += 1) {
var attr = this.interpolatableAttributes[i];
this[attr] = finalState[attr] * ratio + initialState[attr] * remaining;
}
var svgPath = reverseTransitionPath ? initialState.transitionPath : finalState.transitionPath;
if (useTransitionPath &amp;&amp; svgPath) {
var pathLength = svgPath.getTotalLength();
if (reverseTransitionPath) {
var startPoint = svgPath.getPointAtLength(pathLength);
var endPoint = svgPath.getPointAtLength(0);
var currentPoint = svgPath.getPointAtLength(pathLength * remaining);
}
else {
var startPoint = svgPath.getPointAtLength(0);
var endPoint = svgPath.getPointAtLength(pathLength);
var currentPoint = svgPath.getPointAtLength(pathLength * ratio);
}
this.cx = currentPoint.x + (finalState.cx - endPoint.x) * ratio + (initialState.cx - startPoint.x) * remaining;
this.cy = currentPoint.y + (finalState.cy - endPoint.y) * ratio + (initialState.cy - startPoint.y) * remaining;
}
else {
this.cx = finalState.cx * ratio + initialState.cx * remaining;
this.cy = finalState.cy * ratio + initialState.cy * remaining;
}
}
});
exports.Camera = exports.CameraState.subtype({
construct: function (viewPort, idLayer) {
exports.CameraState.construct.call(this);
this.viewPort = viewPort;
// Clipping rectangle
this.svgClipRect = document.createElementNS(SVG_NS, &quot;rect&quot;);
// Clipping path
var svgClipPath = document.createElementNS(SVG_NS, &quot;clipPath&quot;);
svgClipPath.setAttribute(&quot;id&quot;, &quot;sozi-clip-path-&quot; + viewPort.id + &quot;-&quot; + idLayer);
svgClipPath.appendChild(this.svgClipRect);
viewPort.svgGroup.appendChild(svgClipPath);
// The group that will support the clipping operation
var svgClippedGroup = document.createElementNS(SVG_NS, &quot;g&quot;);
svgClippedGroup.setAttribute(&quot;clip-path&quot;, &quot;url(#sozi-clip-path-&quot; + viewPort.id + &quot;-&quot; + idLayer + &quot;)&quot;);
viewPort.svgGroup.appendChild(svgClippedGroup);
if (viewPort.isPrimary) {
// This group will support transformations
// we keep the layer group clean since it can be referenced
// from &lt;use&gt; elements
this.svgLayer = document.createElementNS(SVG_NS, &quot;g&quot;);
this.svgLayer.appendChild(document.getElementById(idLayer));
}
else {
// A &lt;use&gt; element referencing the target layer
this.svgLayer = document.createElementNS(SVG_NS, &quot;use&quot;);
this.svgLayer.setAttributeNS(XLINK_NS, &quot;href&quot;, &quot;#&quot; + idLayer);
}
svgClippedGroup.appendChild(this.svgLayer);
},
setAtState: function (other) {
return exports.CameraState.setAtState.call(this, other).update();
},
getScale: function () {
return Math.min(this.viewPort.width / this.width, this.viewPort.height / this.height);
},
rotate: function (angle) {
return this.setAngle(this.angle + angle).update();
},
zoom: function (factor, x, y) {
return this.setSize(this.width / factor, this.height / factor)
.drag(
(1 - factor) * (x - this.viewPort.width / 2),
(1 - factor) * (y - this.viewPort.height / 2)
);
},
drag: function (deltaX, deltaY) {
var scale = this.getScale();
var angleRad = this.angle * Math.PI / 180;
var si = Math.sin(angleRad);
var co = Math.cos(angleRad);
return this.setCenter(
this.cx - (deltaX * co - deltaY * si) / scale,
this.cy - (deltaX * si + deltaY * co) / scale
).setClipped(false).update();
},
update: function () {
var scale = this.getScale();
// Compute the size and location of the frame on the screen
var width = this.width * scale;
var height = this.height * scale;
var x = (this.viewPort.width - width) / 2;
var y = (this.viewPort.height - height) / 2;
// Adjust the location and size of the clipping rectangle and the frame rectangle
this.svgClipRect.setAttribute(&quot;x&quot;, this.clipped ? x : 0);
this.svgClipRect.setAttribute(&quot;y&quot;, this.clipped ? y : 0);
this.svgClipRect.setAttribute(&quot;width&quot;, this.clipped ? width : this.viewPort.width);
this.svgClipRect.setAttribute(&quot;height&quot;, this.clipped ? height : this.viewPort.height);
// Compute and apply the geometrical transformation to the layer group
var translateX = -this.cx + this.width / 2 + x / scale;
var translateY = -this.cy + this.height / 2 + y / scale;
this.svgLayer.setAttribute(&quot;transform&quot;,
&quot;scale(&quot; + scale + &quot;)&quot; +
&quot;translate(&quot; + translateX + &quot;,&quot; + translateY + &quot;)&quot; +
&quot;rotate(&quot; + (-this.angle) + ',' + this.cx + &quot;,&quot; + this.cy + &quot;)&quot;
);
return this;
}
});
/**
* @depend proto.js
*/
exports.ViewPort = sozi.proto.Object.subtype({
construct: function (id, idLayerList, primary) {
this.id = id;
exports.viewPorts[id] = this;
this.isPrimary = !!primary;
if (this.isPrimary) {
if (primaryViewport) {
throw &quot;Failed to create a primary viewport. A primary viewport already exists.&quot;;
}
else {
primaryViewport = this;
}
}
// TODO add a clip path for the viewport
this.svgGroup = document.createElementNS(SVG_NS, &quot;g&quot;);
this.svgGroup.setAttribute(&quot;class&quot;, &quot;sozi-viewport&quot;);
this.svgGroup.setAttribute(&quot;id&quot;, &quot;sozi-viewport-&quot; + id);
document.documentElement.appendChild(this.svgGroup);
this.setLocation(0, 0).setSize(window.innerWidth, window.innerHeight);
// Create a camera for each layer
this.cameras = {};
idLayerList.forEach(function (idLayer) {
this.cameras[idLayer] = exports.Camera.instance(this, idLayer);
}, this);
},
setSize: function (width, height) {
this.width = width;
this.height = height;
return this;
},
setLocation: function (x, y) {
this.x = x;
this.y = y;
return this;
},
contains: function (x, y) {
return x &gt;= this.x &amp;&amp; x &lt; this.x + this.width &amp;&amp;
y &gt;= this.y &amp;&amp; y &lt; this.y + this.height;
},
/*
* Returns the geometrical properties of the SVG document
*
* Returns:
* - The default size, translation and rotation for the document's bounding box
*/
getDocumentState: function () {
// This object defines the bounding box of the whole document
var camera = exports.CameraState.instance()
.setCenter(initialBBox.x + initialBBox.width / 2,
initialBBox.y + initialBBox.height / 2)
.setSize(initialBBox.width, initialBBox.height)
.setClipped(false);
// Copy the document's bounding box to all layers
var result = {};
for (var idLayer in this.cameras) {
result[idLayer] = camera;
}
return result;
},
/*
* Apply geometrical transformations to the image according to the current
* geometrical attributes of this Display.
*
* This method is called automatically when the window is resized.
*/
update: function () {
this.svgGroup.setAttribute(&quot;transform&quot;, &quot;translate(&quot; + this.x + &quot;,&quot; + this.y + &quot;)&quot;);
for (var idLayer in this.cameras) {
this.cameras[idLayer].update();
}
return this;
},
/*
* Transform the SVG document to show the given frame.
*
* Parameters:
* - frame: the frame to show
*/
showFrame: function (frame) {
for (var idLayer in frame.states) {
this.cameras[idLayer].setAtState(frame.states[idLayer]);
}
return this;
},
/*
* Apply an additional translation to the SVG document based on onscreen coordinates.
*
* Parameters:
* - deltaX: the horizontal displacement, in pixels
* - deltaY: the vertical displacement, in pixels
*/
drag: function (deltaX, deltaY) {
for (var idLayer in this.cameras) {
this.cameras[idLayer].drag(deltaX, deltaY);
}
return this;
},
/*
* Zooms the display with the given factor.
*
* The zoom is centered around (x, y) with respect to the center of the display area.
*/
zoom: function (factor, x, y) {
for (var idLayer in this.cameras) {
this.cameras[idLayer].zoom(factor, x, y);
}
return this;
},
/*
* Rotate the display with the given angle.
*
* The rotation is centered around the center of the display area.
*/
rotate: function (angle) {
for (var idLayer in this.cameras) {
this.cameras[idLayer].rotate(angle);
}
return this;
},
/**
* The default handler for window resize events.
*
* @param widthRatio The horizontal resize ratio
* @param heightRatio The vertical resize ratio
*/
onWindowResize: function (widthRatio, heightRatio) {
this.setLocation(this.x * widthRatio, this.y * heightRatio)
.setSize(this.width * widthRatio, this.height * heightRatio)
.update();
}
});
/*
* Initializes the current Display.
*
* This method prepares the DOM representation of the current SVG document.
* All the image is embedded into a global &quot;g&quot; element on which transformations will be applied.
* A clipping rectangle is added.
*
* This method must be called when the document is ready to be manipulated.
*/
function onDocumentReady() {
var svgRoot = document.documentElement; // TODO check SVG tag
// Save the initial bounding box of the document
// and force its dimensions to the browser window
initialBBox = svgRoot.getBBox();
lastWindowWidth = window.innerWidth;
lastWindowHeight = window.innerHeight;
svgRoot.setAttribute(&quot;width&quot;, lastWindowWidth);
svgRoot.setAttribute(&quot;height&quot;, lastWindowHeight);
sozi.events.fire(&quot;sozi.display.ready&quot;);
}
/*
* Resizes the SVG document to fit the browser window.
*
* This method calls onWindowResize on all registered viewports.
*/
function resize() {
var svgRoot = document.documentElement;
svgRoot.setAttribute(&quot;width&quot;, window.innerWidth);
svgRoot.setAttribute(&quot;height&quot;, window.innerHeight);
for (var vp in exports.viewPorts) {
exports.viewPorts[vp].onWindowResize(window.innerWidth / lastWindowWidth, window.innerHeight / lastWindowHeight);
}
lastWindowWidth = window.innerWidth;
lastWindowHeight = window.innerHeight;
}
sozi.events.listen(&quot;sozi.document.ready&quot;, onDocumentReady); // @depend events.js
window.addEventListener(&quot;resize&quot;, resize, false);
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.document
* @namespace Document analysis.
* @depend namespace.js
*/
namespace(this, &quot;sozi.document&quot;, function (exports, window) {
&quot;use strict&quot;;
// An alias to the global document object
var document = window.document;
// Constant: the Sozi namespace
var SOZI_NS = &quot;http://sozi.baierouge.fr&quot;;
// Constant: the default frame properties, if missing in the SVG document
var DEFAULTS = {
&quot;title&quot;: &quot;Untitled&quot;,
&quot;sequence&quot;: &quot;0&quot;,
&quot;hide&quot;: &quot;true&quot;,
&quot;clip&quot;: &quot;true&quot;,
&quot;show-in-frame-list&quot;: &quot;true&quot;,
&quot;timeout-enable&quot;: &quot;false&quot;,
&quot;timeout-ms&quot;: &quot;5000&quot;,
&quot;transition-duration-ms&quot;: &quot;1000&quot;,
&quot;transition-zoom-percent&quot;: &quot;0&quot;,
&quot;transition-profile&quot;: &quot;linear&quot;,
&quot;transition-path-hide&quot;: &quot;true&quot;
};
var DRAWABLE_TAGS = [ &quot;g&quot;, &quot;image&quot;, &quot;path&quot;, &quot;rect&quot;, &quot;circle&quot;,
&quot;ellipse&quot;, &quot;line&quot;, &quot;polyline&quot;, &quot;polygon&quot;, &quot;text&quot;, &quot;clippath&quot; ];
// The definitions of all valid frames in the current document
exports.frames = [];
// The list of layer ids managed by Sozi
exports.idLayerList = [];
/*
* Returns the value of an attribute of a given Sozi SVG element.
*
* If the attribute is empty or does not exist,
* then a default value is returned (See DEFAULTS).
*/
function readAttribute(soziElement, attr) {
return soziElement.getAttributeNS(SOZI_NS, attr) || DEFAULTS[attr];
}
function readStateForLayer(frame, idLayer, soziElement) {
var state = frame.states[idLayer] =
frame.states[idLayer] || sozi.display.CameraState.instance();
if (typeof state.transitionZoomPercent === &quot;undefined&quot; || soziElement.hasAttributeNS(SOZI_NS, &quot;transition-zoom-percent&quot;)) {
state.setTransitionZoomPercent(parseInt(readAttribute(soziElement, &quot;transition-zoom-percent&quot;), 10));
}
if (typeof state.transitionProfile === &quot;undefined&quot; || soziElement.hasAttributeNS(SOZI_NS, &quot;transition-profile&quot;)) {
state.setTransitionProfile(sozi.animation.profiles[readAttribute(soziElement, &quot;transition-profile&quot;)]);
}
if (typeof state.transitionPath === &quot;undefined&quot; || soziElement.hasAttributeNS(SOZI_NS, &quot;transition-path&quot;)) {
var svgPath = document.getElementById(soziElement.getAttributeNS(SOZI_NS, &quot;transition-path&quot;));
if (svgPath &amp;&amp; svgPath.nodeName === &quot;path&quot;) {
state.setTransitionPath(svgPath);
if (readAttribute(soziElement, &quot;transition-path-hide&quot;) === &quot;true&quot;) {
svgPath.style.visibility = &quot;hidden&quot;;
}
}
}
if (soziElement.hasAttributeNS(SOZI_NS, &quot;refid&quot;)) {
var svgElement = document.getElementById(soziElement.getAttributeNS(SOZI_NS, &quot;refid&quot;));
if (svgElement) {
state.setAtElement(svgElement);
if (readAttribute(soziElement, &quot;hide&quot;) === &quot;true&quot;) {
svgElement.style.visibility = &quot;hidden&quot;;
}
}
}
if (soziElement.hasAttributeNS(SOZI_NS, &quot;clip&quot;)) {
state.setClipped(readAttribute(soziElement, &quot;clip&quot;) === &quot;true&quot;);
}
}
/*
* Builds the list of frames from the current document.
*
* This method collects all elements with tag &quot;sozi:frame&quot; and
* retrieves their geometrical and animation attributes.
* SVG elements that should be hidden during the presentation are hidden.
*
* The resulting list is available in frames, sorted by frame indices.
*/
function readFrames() {
// Collect all group ids referenced in &lt;layer&gt; elements
var idLayerRefList = [];
var soziLayerList = document.getElementsByTagNameNS(SOZI_NS, &quot;layer&quot;);
for (var i = 0; i &lt; soziLayerList.length; i += 1) {
var idLayer = soziLayerList[i].getAttributeNS(SOZI_NS, &quot;group&quot;);
if (idLayer &amp;&amp; idLayerRefList.indexOf(idLayer) === -1) {
idLayerRefList.push(idLayer);
}
}
// Reorganize the document, grouping objects that do not belong
// to a group referenced in &lt;layer&gt; elements
var svgRoot = document.documentElement;
var SVG_NS = &quot;http://www.w3.org/2000/svg&quot;;
// Create the first wrapper group
var svgWrapper = document.createElementNS(SVG_NS, &quot;g&quot;);
// For each child of the root SVG element
var svgElementList = Array.prototype.slice.call(svgRoot.childNodes);
svgElementList.forEach(function (svgElement, index) {
if (!svgElement.getAttribute) {
// Remove text elements
svgRoot.removeChild(svgElement);
}
else if (idLayerRefList.indexOf(svgElement.getAttribute(&quot;id&quot;)) !== -1) {
// If the current element is a referenced layer ...
if (svgWrapper.firstChild) {
// ... and if there were other non-referenced elements before it,
// append the wrapper group to the &lt;defs&gt; element
svgWrapper.setAttribute(&quot;id&quot;, &quot;sozi-wrapper-&quot; + index);
exports.idLayerList.push(&quot;sozi-wrapper-&quot; + index);
svgRoot.insertBefore(svgWrapper, svgElement);
// Prepare a new wrapper element
svgWrapper = document.createElementNS(SVG_NS, &quot;g&quot;);
}
// ... append the current element to the &lt;defs&gt; element
exports.idLayerList.push(svgElement.getAttribute(&quot;id&quot;));
}
else if (DRAWABLE_TAGS.indexOf(svgElement.localName.toLowerCase()) !== -1) {
// If the current element is not a referenced layer
// and is drawable, move it to the current wrapper element
svgRoot.removeChild(svgElement);
svgWrapper.appendChild(svgElement);
}
});
// Append last wrapper if needed
if (svgWrapper.firstChild) {
svgWrapper.setAttribute(&quot;id&quot;, &quot;sozi-wrapper-&quot; + svgElementList.length);
exports.idLayerList.push(&quot;sozi-wrapper-&quot; + svgElementList.length);
svgRoot.appendChild(svgWrapper);
}
// Analyze &lt;frame&gt; elements sorted by sequence number
var soziFrameList = Array.prototype.slice.call(document.getElementsByTagNameNS(SOZI_NS, &quot;frame&quot;));
soziFrameList.sort(
function (a, b) {
var seqA = parseInt(readAttribute(a, &quot;sequence&quot;), 10);
var seqB = parseInt(readAttribute(b, &quot;sequence&quot;), 10)
return seqA - seqB;
}
);
soziFrameList.forEach(function (soziFrame, indexFrame) {
var newFrame = {
id: soziFrame.getAttribute(&quot;id&quot;),
title: readAttribute(soziFrame, &quot;title&quot;),
showInFrameList: readAttribute(soziFrame, &quot;show-in-frame-list&quot;) === &quot;true&quot;,
sequence: parseInt(readAttribute(soziFrame, &quot;sequence&quot;), 10),
timeoutEnable: readAttribute(soziFrame, &quot;timeout-enable&quot;) === &quot;true&quot;,
timeoutMs: parseInt(readAttribute(soziFrame, &quot;timeout-ms&quot;), 10),
transitionDurationMs: parseInt(readAttribute(soziFrame, &quot;transition-duration-ms&quot;), 10),
states: {}
};
// Get the default properties for all layers, either from
// the current &lt;frame&gt; element or from the corresponding
// layer in the previous frame.
// Those properties can later be overriden by &lt;layer&gt; elements
exports.idLayerList.forEach(function (idLayer) {
if (indexFrame === 0 || idLayer.search(&quot;sozi-wrapper-[0-9]+&quot;) !== -1) {
// In the first frame, or in wrapper layers,
// read layer attributes from the &lt;frame&gt; element
readStateForLayer(newFrame, idLayer, soziFrame);
}
else {
// After the first frame, in referenced layers,
// copy attributes from the corresponding layer in the previous frame
var currentState = newFrame.states[idLayer] = sozi.display.CameraState.instance();
var previousState = exports.frames[exports.frames.length - 1].states[idLayer];
currentState.setAtState(previousState);
}
});
// Collect and analyze &lt;layer&gt; elements in the current &lt;frame&gt; element
var soziLayerList = Array.prototype.slice.call(soziFrame.getElementsByTagNameNS(SOZI_NS, &quot;layer&quot;));
soziLayerList.forEach(function (soziLayer) {
var idLayer = soziLayer.getAttributeNS(SOZI_NS, &quot;group&quot;);
if (idLayer &amp;&amp; exports.idLayerList.indexOf(idLayer) !== -1) {
readStateForLayer(newFrame, idLayer, soziLayer);
}
});
// If the &lt;frame&gt; element has at least one valid layer,
// add it to the frame list
for (var idLayer in newFrame.states) {
if (newFrame.states.hasOwnProperty(idLayer)) {
exports.frames.push(newFrame);
break;
}
}
});
}
/**
* Return the frame with the given id.
*
* @return The index of the frame with the given id. -1 if not found.
*/
exports.getFrameIndexForId = function (idFrame) {
for (var indexFrame = 0; indexFrame &lt; exports.frames.length; indexFrame += 1) {
if (exports.frames[indexFrame].id === idFrame) {
return indexFrame;
}
}
return - 1;
};
/*
* Event handler: document load.
*
* This function reads the frames from the document and fires
* the &quot;documentready&quot; event.
*
* @depend events.js
*/
function onLoad() {
document.documentElement.removeAttribute(&quot;viewBox&quot;);
readFrames();
sozi.events.fire(&quot;sozi.document.ready&quot;);
}
window.addEventListener(&quot;load&quot;, onLoad, false);
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.framelist
* @namespace Show the frame list.
* @depend namespace.js
*/
namespace(this, &quot;sozi.framelist&quot;, function (exports, window) {
&quot;use strict&quot;;
// An alias to the global document object
var document = window.document;
// Constant: the margin around the text of the frame list
var MARGIN = 5;
// The SVG group that will contain the frame list
var svgTocGroup;
// The SVG group that will contain the frame titles
var svgTitlesGroup;
// The current height of the frame list,
// computed during the initialization
var tocHeight = 0;
// The X coordinate of the frame list in its hidden state
var translateXHidden;
// The X coordinate of the frame list when it is completely visible
var translateXVisible;
// The initial X coordinate of the frame list before starting an animation.
// This variable is set before showing/hiding the frame list.
var translateXStart;
// The final X coordinate of the frame list for the starting animation.
// This variable is set before showing/hiding the frame list.
var translateXEnd;
// The current X coordinate of the frame list for the running animation.
// This variable is updated on each animation step.
var translateX;
// The animator object that will manage animations of the frame list
var animator;
// Constant: the duration of the showing/hiding animation, in milliseconds
var ANIMATION_TIME_MS = 300;
// Constant: the acceleration profile of the showing/hiding animation
var ANIMATION_PROFILE = &quot;decelerate&quot;;
// Constant: the SVG namespace
var SVG_NS = &quot;http://www.w3.org/2000/svg&quot;;
function onMouseOut(evt) {
var rel = evt.relatedTarget,
svgRoot = document.documentElement;
while (rel &amp;&amp; rel !== svgTocGroup &amp;&amp; rel !== svgRoot) {
rel = rel.parentNode;
}
if (rel !== svgTocGroup) {
exports.hide();
sozi.player.restart();
evt.stopPropagation();
}
}
function onClickArrowUp(evt) {
var ty = svgTitlesGroup.getCTM().f;
if (ty &lt;= -window.innerHeight / 2) {
ty += window.innerHeight / 2;
} else if (ty &lt; 0) {
ty = 0;
}
svgTitlesGroup.setAttribute(&quot;transform&quot;, &quot;translate(0,&quot; + ty + &quot;)&quot;);
evt.stopPropagation();
}
function onClickArrowDown(evt) {
var ty = svgTitlesGroup.getCTM().f;
if (ty + tocHeight &gt;= window.innerHeight * 3 / 2) {
ty -= window.innerHeight / 2;
} else if (ty + tocHeight &gt; window.innerHeight + 2 * MARGIN) {
ty = window.innerHeight - tocHeight - 4 * MARGIN;
}
svgTitlesGroup.setAttribute(&quot;transform&quot;, &quot;translate(0,&quot; + ty + &quot;)&quot;);
evt.stopPropagation();
}
/*
* Create a function that responds to clicks on frame list entries.
*/
function makeClickHandler(index) {
return function (evt) {
sozi.player.previewFrame(index);
evt.stopPropagation();
};
}
/*
* The default event handler, to prevent event propagation
* through the frame list.
*/
function defaultEventHandler(evt) {
evt.stopPropagation();
}
/*
* Adds a table of contents to the document.
*
* The table of contents is a rectangular region with the list of frame titles.
* Clicking on a title moves the presentation to the corresponding frame.
*
* The table of contents is hidden by default.
*/
function onPlayerReady() {
svgTocGroup = document.createElementNS(SVG_NS, &quot;g&quot;);
svgTocGroup.setAttribute(&quot;id&quot;, &quot;sozi-toc&quot;);
document.documentElement.appendChild(svgTocGroup);
svgTitlesGroup = document.createElementNS(SVG_NS, &quot;g&quot;);
svgTocGroup.appendChild(svgTitlesGroup);
// The background rectangle of the frame list
var tocBackground = document.createElementNS(SVG_NS, &quot;rect&quot;);
tocBackground.setAttribute(&quot;id&quot;, &quot;sozi-toc-background&quot;);
tocBackground.setAttribute(&quot;x&quot;, MARGIN);
tocBackground.setAttribute(&quot;y&quot;, MARGIN);
tocBackground.setAttribute(&quot;rx&quot;, MARGIN);
tocBackground.setAttribute(&quot;ry&quot;, MARGIN);
tocBackground.addEventListener(&quot;click&quot;, defaultEventHandler, false);
tocBackground.addEventListener(&quot;mousedown&quot;, defaultEventHandler, false);
tocBackground.addEventListener(&quot;mouseout&quot;, onMouseOut, false);
svgTitlesGroup.appendChild(tocBackground);
var tocWidth = 0;
sozi.document.frames.forEach(function (frame, frameIndex) {
if (frame.showInFrameList) {
var text = document.createElementNS(SVG_NS, &quot;text&quot;);
text.appendChild(document.createTextNode(frame.title));
text.setAttribute(&quot;id&quot;, &quot;sozi-toc-&quot; + frame.id);
svgTitlesGroup.appendChild(text);
if (frameIndex === sozi.player.currentFrameIndex) {
text.setAttribute(&quot;class&quot;, &quot;sozi-toc-current&quot;);
}
var textWidth = text.getBBox().width;
tocHeight += text.getBBox().height;
if (textWidth &gt; tocWidth) {
tocWidth = textWidth;
}
text.setAttribute(&quot;x&quot;, 2 * MARGIN);
text.setAttribute(&quot;y&quot;, tocHeight + MARGIN);
text.addEventListener(&quot;click&quot;, makeClickHandler(frameIndex), false);
text.addEventListener(&quot;mousedown&quot;, defaultEventHandler, false);
}
});
// The &quot;up&quot; button
var tocUp = document.createElementNS(SVG_NS, &quot;path&quot;);
tocUp.setAttribute(&quot;class&quot;, &quot;sozi-toc-arrow&quot;);
tocUp.setAttribute(&quot;d&quot;, &quot;M&quot; + (tocWidth + 3 * MARGIN) + &quot;,&quot; + (5 * MARGIN) +
&quot; l&quot; + (4 * MARGIN) + &quot;,0&quot; +
&quot; l-&quot; + (2 * MARGIN) + &quot;,-&quot; + (3 * MARGIN) +
&quot; z&quot;);
tocUp.addEventListener(&quot;click&quot;, onClickArrowUp, false);
tocUp.addEventListener(&quot;mousedown&quot;, defaultEventHandler, false);
svgTocGroup.appendChild(tocUp);
// The &quot;down&quot; button
var tocDown = document.createElementNS(SVG_NS, &quot;path&quot;);
tocDown.setAttribute(&quot;class&quot;, &quot;sozi-toc-arrow&quot;);
tocDown.setAttribute(&quot;d&quot;, &quot;M&quot; + (tocWidth + 3 * MARGIN) + &quot;,&quot; + (7 * MARGIN) +
&quot; l&quot; + (4 * MARGIN) + &quot;,0&quot; +
&quot; l-&quot; + (2 * MARGIN) + &quot;,&quot; + (3 * MARGIN) +
&quot; z&quot;);
tocDown.addEventListener(&quot;click&quot;, onClickArrowDown, false);
tocDown.addEventListener(&quot;mousedown&quot;, defaultEventHandler, false);
svgTocGroup.appendChild(tocDown);
tocBackground.setAttribute(&quot;width&quot;, tocWidth + 7 * MARGIN);
tocBackground.setAttribute(&quot;height&quot;, tocHeight + 2 * MARGIN);
translateXHidden = -tocWidth - 9 * MARGIN;
translateXVisible = 0;
translateX = translateXEnd = translateXHidden;
svgTocGroup.setAttribute(&quot;transform&quot;, &quot;translate(&quot; + translateXHidden + &quot;,0)&quot;);
animator = sozi.animation.Animator.instance().augment({
onStep: function (progress) {
var profileProgress = sozi.animation.profiles[ANIMATION_PROFILE](progress),
remaining = 1 - profileProgress;
translateX = translateXEnd * profileProgress + translateXStart * remaining;
svgTocGroup.setAttribute(&quot;transform&quot;, &quot;translate(&quot; + translateX + &quot;,0)&quot;);
}
});
}
/*
* Highlight the current frame title in the frame list.
*
* This handler is called on each frame change,
* even when the frame list is hidden.
*/
function onFrameChange(index) {
var currentElementList = Array.prototype.slice.call(document.getElementsByClassName(&quot;sozi-toc-current&quot;));
currentElementList.forEach(function (svgElement) {
svgElement.removeAttribute(&quot;class&quot;);
});
var frame = sozi.document.frames[index];
if (frame.showInFrameList) {
document.getElementById(&quot;sozi-toc-&quot; + frame.id).setAttribute(&quot;class&quot;, &quot;sozi-toc-current&quot;);
}
}
/*
* Makes the table of contents visible.
*/
exports.show = function () {
// Bring frame list to front
document.documentElement.appendChild(svgTocGroup);
translateXStart = translateX;
translateXEnd = translateXVisible;
animator.start(ANIMATION_TIME_MS); // FIXME depends on current elapsed time
};
/*
* Makes the table of contents invisible.
*/
exports.hide = function () {
translateXStart = translateX;
translateXEnd = translateXHidden;
animator.start(ANIMATION_TIME_MS); // FIXME depends on current elapsed time
};
/*
* Returns true if the table of contents is visible, false otherwise.
*/
exports.isVisible = function () {
return translateXEnd === translateXVisible;
};
// @depend events.js
sozi.events.listen(&quot;sozi.player.ready&quot;, onPlayerReady);
sozi.events.listen(&quot;sozi.player.cleanup&quot;, exports.hide);
sozi.events.listen(&quot;sozi.player.framechange&quot;, onFrameChange);
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.framenumber
* @namespace Show the frame number.
* @depend namespace.js
*/
namespace(this, &quot;sozi.framenumber&quot;, function (exports, window) {
&quot;use strict&quot;;
// An alias to the global document object
var document = window.document;
// The SVG group containing the frame number
var svgGroup;
// The SVG text element and its text node containing the frame number
var svgText, svgTextNode;
// The SVG circle enclosing the frame number
var svgCircle;
// Constant: the SVG namespace
var SVG_NS = &quot;http://www.w3.org/2000/svg&quot;;
function adjust() {
var textBBox = svgText.getBBox(),
d = Math.max(textBBox.width, textBBox.height) * 0.75,
t = d * 1.25;
svgCircle.setAttribute(&quot;r&quot;, d);
svgGroup.setAttribute(&quot;transform&quot;, &quot;translate(&quot; + t + &quot;,&quot; + t + &quot;)&quot;);
}
function onPlayerReady() {
svgGroup = document.createElementNS(SVG_NS, &quot;g&quot;);
svgText = document.createElementNS(SVG_NS, &quot;text&quot;);
svgCircle = document.createElementNS(SVG_NS, &quot;circle&quot;);
svgGroup.setAttribute(&quot;id&quot;, &quot;sozi-framenumber&quot;);
svgCircle.setAttribute(&quot;cx&quot;, 0);
svgCircle.setAttribute(&quot;cy&quot;, 0);
svgGroup.appendChild(svgCircle);
svgTextNode = document.createTextNode(sozi.player.currentFrameIndex + 1);
svgText.setAttribute(&quot;text-anchor&quot;, &quot;middle&quot;);
svgText.setAttribute(&quot;dominant-baseline&quot;, &quot;central&quot;);
svgText.setAttribute(&quot;x&quot;, 0);
svgText.setAttribute(&quot;y&quot;, 0);
svgText.appendChild(svgTextNode);
svgGroup.appendChild(svgText);
document.documentElement.appendChild(svgGroup);
adjust();
}
function onFrameChange(index) {
svgTextNode.nodeValue = index + 1;
}
// @depend events.js
sozi.events.listen(&quot;sozi.player.ready&quot;, onPlayerReady);
sozi.events.listen(&quot;sozi.player.framechange&quot;, onFrameChange);
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.links
* @namespace Links fix for Webkit.
* @depend namespace.js
*/
namespace(this, &quot;sozi.links&quot;, function (exports, window) {
&quot;use strict&quot;;
var SVG_NS = &quot;http://www.w3.org/2000/svg&quot;;
var XLINK_NS = &quot;http://www.w3.org/1999/xlink&quot;;
function getClickHandler(index) {
return function (evt) {
sozi.player.moveToFrame(index);
evt.preventDefault();
evt.stopPropagation();
};
}
/*
* Event handler: document ready.
*
* This function adds an event listener to each internal link.
* Clicking on a link that targets a frame of this document
* will call sozi.player.moveToFrame().
*/
function onDocumentReady() {
var links = window.document.getElementsByTagNameNS(SVG_NS, &quot;a&quot;);
for (var i = 0; i &lt; links.length; i += 1) {
var href = links[i].getAttributeNS(XLINK_NS, &quot;href&quot;);
if (href &amp;&amp; href[0] === &quot;#&quot;) {
links[i].addEventListener(&quot;click&quot;, getClickHandler(sozi.location.getFrameIndexForHash(href)), false);
}
}
}
sozi.events.listen(&quot;sozi.document.ready&quot;, onDocumentReady); // @depend events.js
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.location
* @namespace Manage the URL in the address bar of the browser window.
* @depend namespace.js
*/
namespace(this, &quot;sozi.location&quot;, function (exports, window) {
&quot;use strict&quot;;
var changedFromWithin = false;
/*
* Returns the frame index corresponding to the URL hash.
*
* This is a shortcut for sozi.location.getFrameIndexForHash(window.location.hash)
*/
exports.getFrameIndex = function () {
return exports.getFrameIndexForHash(window.location.hash);
};
/*
* Returns the frame index corresponding to the given URL hash.
*
* The URL hash can be either a frame index or a frame id.
* In the URL, the frame index starts a 1.
* This method converts it into a 0-based index.
*
* If the URL hash is not a positive integer, then 0 is returned.
* It the URL hash is an integer greater than the last frame index, then
* the last frame index is returned.
*/
exports.getFrameIndexForHash = function (hash) {
var indexOrId = hash ? hash.slice(1) : &quot;1&quot;;
var index;
if (/^[0-9]+$/.test(indexOrId)) {
index = parseInt(indexOrId, 10) - 1;
}
else {
index = sozi.document.getFrameIndexForId(indexOrId);
}
if (index &lt; 0) {
return 0;
}
else if (index &gt;= sozi.document.frames.length) {
return sozi.document.frames.length - 1;
}
else {
return index;
}
};
/*
* Event handler: hash change.
*
* This function is called when the URL hash is changed.
* If the hash was changed manually in the address bar, and if it corresponds to
* a valid frame number, then the presentation moves to that frame.
*
* The hashchange event can be triggered externally, by the user modifying the URL,
* or internally, by the script modifying window.location.hash.
*/
function onHashChange() {
var index = exports.getFrameIndex();
if (!changedFromWithin) {
sozi.player.moveToFrame(index);
}
changedFromWithin = false;
}
/*
* Event handler: frame change.
*
* This function is called when the presentation has reached a new frame.
* The URL hash is set to the current frame id.
*/
function onFrameChange(index) {
changedFromWithin = true;
window.location.hash = &quot;#&quot; + sozi.document.frames[index].id;
}
window.addEventListener(&quot;hashchange&quot;, onHashChange, false);
sozi.events.listen(&quot;sozi.player.framechange&quot;, onFrameChange); // @depend events.js
});
/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
/**
* @name sozi.player
* @namespace Presentation player.
* @depend namespace.js
*/
namespace(this, &quot;sozi.player&quot;, function (exports, window) {
&quot;use strict&quot;;
var viewPort;
// The animator object used to animate transitions
var animator;
// The handle returned by setTimeout() for frame timeout
var nextFrameTimeout;
// Constants: default animation properties
// for out-of-sequence transitions
var DEFAULT_DURATION_MS = 500;
var DEFAULT_ZOOM_PERCENT = -10;
var DEFAULT_PROFILE = &quot;linear&quot;;
// The source frame index for the current transition
var sourceFrameIndex = 0;
// The index of the visible frame
exports.currentFrameIndex = 0;
// The state of the presentation.
// If false, no automatic transition will be fired.
var playing = false;
// The state of the current frame.
// If true, an automatic transition will be fired after the current timeout.
var waiting = false;
/*
* Starts waiting before moving to the next frame.
*
* It the current frame has a timeout set, this method
* will register a timer to move to the next frame automatically
* after the specified time.
*
* If the current frame is the last, the presentation will
* move to the first frame.
*/
function waitTimeout() {
if (sozi.document.frames[exports.currentFrameIndex].timeoutEnable) {
waiting = true;
var index = (exports.currentFrameIndex + 1) % sozi.document.frames.length;
nextFrameTimeout = window.setTimeout(function () {
exports.moveToFrame(index);
},
sozi.document.frames[exports.currentFrameIndex].timeoutMs
);
}
}
/*
* Starts the presentation from the given frame index (0-based).
*
* This method sets the &quot;playing&quot; flag, shows the desired frame
* and calls waitTimeout.
*/
exports.startFromIndex = function (index) {
playing = true;
waiting = false;
sourceFrameIndex = index;
exports.currentFrameIndex = index;
viewPort.showFrame(sozi.document.frames[index]);
waitTimeout();
};
exports.restart = function () {
exports.startFromIndex(exports.currentFrameIndex);
};
/*
* Stops the presentation.
*
* This method clears the &quot;playing&quot;.
* If the presentation was in &quot;waiting&quot; mode due to a timeout
* in the current frame, then it stops waiting.
* The current animation is stopped in its current state.
*/
exports.stop = function () {
animator.stop();
if (waiting) {
window.clearTimeout(nextFrameTimeout);
waiting = false;
}
playing = false;
sourceFrameIndex = exports.currentFrameIndex;
};
function getZoomData(zoomPercent, s0, s1) {
var result = {
ss: ((zoomPercent &lt; 0) ? Math.max(s0, s1) : Math.min(s0, s1)) * (100 - zoomPercent) / 100,
ts: 0.5,
k: 0
};
if (zoomPercent !== 0) {
var a = s0 - s1;
var b = s0 - result.ss;
var c = s1 - result.ss;
if (a !== 0) {
var d = Math.sqrt(b * c);
var u = (b - d) / a;
var v = (b + d) / a;
result.ts = (u &gt; 0 &amp;&amp; u &lt;= 1) ? u : v;
}
result.k = b / result.ts / result.ts;
}
return result;
}
/*
* Jump to a frame with the given index (0-based).
*
* This method does not animate the transition from the current
* state of the display to the desired frame.
*
* The presentation is stopped: if a timeout has been set for the
* target frame, it will be ignored.
*
* The URL hash is set to the given frame index (1-based).
*/
exports.jumpToFrame = function (index) {
exports.stop();
sozi.events.fire(&quot;sozi.player.cleanup&quot;);
sourceFrameIndex = index;
exports.currentFrameIndex = index;
viewPort.showFrame(sozi.document.frames[index]);
sozi.events.fire(&quot;sozi.player.framechange&quot;, index);
};
/*
* Returns an associative array where keys are layer names
* and values are objects in the form { initialState: finalState: profile: zoomWidth: zoomHeight:}
*/
exports.getAnimationData = function (initialState, finalState, zoomPercent, profile, useTransitionPath, reverseTransitionPath) {
var data = {};
for (var idLayer in initialState) {
data[idLayer] = {
initialState: sozi.display.CameraState.instance(),
finalState: sozi.display.CameraState.instance(),
useTransitionPath: useTransitionPath,
reverseTransitionPath: reverseTransitionPath
};
data[idLayer].profile = profile || finalState[idLayer].transitionProfile;
data[idLayer].initialState.setAtState(initialState[idLayer]);
// If the current layer is referenced in final state, copy the final properties
// else, copy initial state to final state for the current layer.
if (finalState.hasOwnProperty(idLayer)) {
data[idLayer].finalState.setAtState(finalState[idLayer]);
}
else {
data[idLayer].finalState.setAtState(initialState[idLayer]);
}
// Keep the smallest angle difference between initial state and final state
// TODO this should be handled in the interpolation function
if (data[idLayer].finalState.angle - data[idLayer].initialState.angle &gt; 180) {
data[idLayer].finalState.setRawAngle(data[idLayer].finalState.angle - 360);
}
else if (data[idLayer].finalState.angle - data[idLayer].initialState.angle &lt; -180) {
data[idLayer].initialState.setRawAngle(data[idLayer].initialState.angle - 360);
}
var zp = zoomPercent || finalState[idLayer].transitionZoomPercent;
if (zp &amp;&amp; finalState.hasOwnProperty(idLayer)) {
data[idLayer].zoomWidth = getZoomData(zp,
initialState[idLayer].width,
finalState[idLayer].width);
data[idLayer].zoomHeight = getZoomData(zp,
initialState[idLayer].height,
finalState[idLayer].height);
}
}
return data;
};
exports.previewFrame = function (index) {
exports.currentFrameIndex = index;
animator.start(DEFAULT_DURATION_MS,
exports.getAnimationData(viewPort.cameras, sozi.document.frames[index].states,
DEFAULT_ZOOM_PERCENT, sozi.animation.profiles[DEFAULT_PROFILE]),
false, false);
sozi.events.fire(&quot;sozi.player.framechange&quot;, index);
};
/*
* Moves to a frame with the given index (0-based).
*
* This method animates the transition from the current
* state of the display to the desired frame.
*
* If the given frame index corresponds to the next frame in the list,
* the transition properties of the next frame are used.
* Otherwise, default transition properties are used.
*/
exports.moveToFrame = function (index) {
if (waiting) {
window.clearTimeout(nextFrameTimeout);
waiting = false;
}
var durationMs, zoomPercent, profile, useTransitionPath, reverseTransitionPath;
if (index === (exports.currentFrameIndex - 1) % sozi.document.frames.length) {
durationMs = sozi.document.frames[exports.currentFrameIndex].transitionDurationMs;
zoomPercent = undefined; // Set for each layer
profile = undefined; // Set for each layer
useTransitionPath = true;
reverseTransitionPath = true;
}
else if (index === (exports.currentFrameIndex + 1) % sozi.document.frames.length) {
durationMs = sozi.document.frames[index].transitionDurationMs;
zoomPercent = undefined; // Set for each layer
profile = undefined; // Set for each layer
useTransitionPath = true;
reverseTransitionPath = false;
}
else {
durationMs = DEFAULT_DURATION_MS;
zoomPercent = DEFAULT_ZOOM_PERCENT;
profile = sozi.animation.profiles[DEFAULT_PROFILE];
useTransitionPath = false;
reverseTransitionPath = false;
}
sozi.events.fire(&quot;sozi.player.cleanup&quot;);
playing = true;
exports.currentFrameIndex = index;
animator.start(durationMs, exports.getAnimationData(
viewPort.cameras, sozi.document.frames[index].states,
zoomPercent, profile,
useTransitionPath, reverseTransitionPath));
sozi.events.fire(&quot;sozi.player.framechange&quot;, index);
};
/**
* Jumps to the first frame of the presentation.
*/
exports.jumpToFirst = function () {
exports.jumpToFrame(0);
};
/**
* Moves to the first frame of the presentation.
*/
exports.moveToFirst = function () {
exports.moveToFrame(0);
};
/**
* Jumps to the previous frame.
*/
exports.jumpToPrevious = function () {
var index = exports.currentFrameIndex;
if (!animator.started || sourceFrameIndex &lt;= exports.currentFrameIndex) {
index -= 1;
}
if (index &gt;= 0) {
exports.jumpToFrame(index);
}
};
/*
* Moves to the previous frame.
*/
exports.moveToPrevious = function () {
for (var index = exports.currentFrameIndex - 1; index &gt;= 0; index -= 1) {
var frame = sozi.document.frames[index];
if (!frame.timeoutEnable || frame.timeoutMs !== 0) {
exports.moveToFrame(index);
break;
}
}
};
/**
* Jumps to the next frame.
*/
exports.jumpToNext = function () {
var index = exports.currentFrameIndex;
if (!animator.started || sourceFrameIndex &gt;= exports.currentFrameIndex) {
index += 1;
}
if (index &lt; sozi.document.frames.length) {
exports.jumpToFrame(index);
}
};
/**
* Moves to the next frame.
*/
exports.moveToNext = function () {
if (exports.currentFrameIndex &lt; sozi.document.frames.length - 1 || sozi.document.frames[exports.currentFrameIndex].timeoutEnable) {
exports.moveToFrame((exports.currentFrameIndex + 1) % sozi.document.frames.length);
}
};
/**
* Jumps to the last frame of the presentation.
*/
exports.jumpToLast = function () {
exports.jumpToFrame(sozi.document.frames.length - 1);
};
/**
* Moves to the last frame of the presentation.
*/
exports.moveToLast = function () {
exports.moveToFrame(sozi.document.frames.length - 1);
};
/*
* Restores the current frame.
*
* This method restores the display to fit the current frame,
* e.g. after the display has been zoomed or dragged.
*/
exports.moveToCurrent = function () {
exports.moveToFrame(exports.currentFrameIndex);
};
/*
* Shows all the document in the browser window.
*/
exports.showAll = function () {
exports.stop();
sozi.events.fire(&quot;sozi.player.cleanup&quot;);
animator.start(DEFAULT_DURATION_MS,
exports.getAnimationData(viewPort.cameras, viewPort.getDocumentState(),
DEFAULT_ZOOM_PERCENT, sozi.animation.profiles[DEFAULT_PROFILE],
false, false
)
);
};
/*
* Event handler: display ready.
*/
function onDisplayReady() {
viewPort = sozi.display.ViewPort.instance(&quot;player&quot;, sozi.document.idLayerList, true);
exports.startFromIndex(sozi.location.getFrameIndex());
// Hack to fix the blank screen bug in Chrome/Chromium
// See https://github.com/senshu/Sozi/issues/109
window.setTimeout(viewPort.bind(viewPort.update), 1);
sozi.events.fire(&quot;sozi.player.ready&quot;);
}
// TODO move the zoom code to display.js
exports.onAnimationStep = function (progress, data) {
for (var idLayer in data) {
var camera = viewPort.cameras[idLayer];
camera.interpolate(
data[idLayer].initialState,
data[idLayer].finalState,
data[idLayer].profile(progress),
data[idLayer].useTransitionPath,
data[idLayer].reverseTransitionPath
);
var ps;
if (data[idLayer].zoomWidth &amp;&amp; data[idLayer].zoomWidth.k !== 0) {
ps = progress - data[idLayer].zoomWidth.ts;
camera.width = data[idLayer].zoomWidth.k * ps * ps + data[idLayer].zoomWidth.ss;
}
if (data[idLayer].zoomHeight &amp;&amp; data[idLayer].zoomHeight.k !== 0) {
ps = progress - data[idLayer].zoomHeight.ts;
camera.height = data[idLayer].zoomHeight.k * ps * ps + data[idLayer].zoomHeight.ss;
}
camera.setClipped(data[idLayer].finalState.clipped);
}
viewPort.update();
};
/**
* @depend animation.js
*/
animator = sozi.animation.Animator.instance().augment({
/*
* Event handler: animation step.
*
* This method is called periodically by animator after the animation
* has been started, and until the animation time is elapsed.
*
* Parameter data provides the following information:
* - initialState and finalState contain the geometrical properties of the display
* at the start and end of the animation.
* - profile is a reference to the speed profile function to use.
* - zoomWidth and zoomHeight are the parameters of the zooming polynomial if the current
* animation has a non-zero zooming effect.
*
* Parameter progress is a float number between 0 (start of the animation)
* and 1 (end of the animation).
*/
onStep: function (progress) {
exports.onAnimationStep(progress, this.data);
},
/*
* Event handler: animation done.
*
* This method is called by animator when the current animation is finished.
*
* If the animation was a transition in the normal course of the presentation,
* then we call the waitTimeout method to process the timeout property of the current frame.
*/
onDone: function () {
for (var idLayer in this.data) {
viewPort.cameras[idLayer].setAtState(this.data[idLayer].finalState);
}
viewPort.update();
sourceFrameIndex = exports.currentFrameIndex;
if (playing) {
waitTimeout();
}
}
});
sozi.events.listen(&quot;sozi.display.ready&quot;, onDisplayReady); // @depend events.js
});
/*
@depend framenumber.js
@depend framelist.js
@depend actions.js
@depend player.js
@depend display.js
@depend document.js
@depend location.js
@depend links.js
*/
</script>
<script
id="show_hide_layers">
var objList = [
{id: &quot;layer_software&quot;, show_in_frames: &quot;i &gt;= 5&quot;},
{id: &quot;layer_cabinet_covers&quot;, show_in_frames: &quot;i &gt;= 1 &amp;&amp; i &lt; 16&quot;},
{id: &quot;layer_cabinet_wood&quot;, show_in_frames: &quot;i &gt;= 22 &amp;&amp; i &lt; 24&quot;},
{id: &quot;layer_hardware_components&quot;, show_in_frames: &quot;i &gt;= 1 &amp;&amp; i &lt; 22 || i == 29&quot;},
{id: &quot;layer_hardware_overview&quot;, show_in_frames: &quot;i &gt;= 16 &amp;&amp; i &lt; 22 || i == 29&quot;},
{id: &quot;layer_hardware_details&quot;, show_in_frames: &quot;i &gt;= 16 &amp;&amp; i &lt; 22 || i == 29&quot;},
{id: &quot;layer_woodwork_details&quot;, show_in_frames: &quot;i &gt;= 22 &amp;&amp; i &lt; 24&quot;},
{id: &quot;layer_frames&quot;, show_in_frames: &quot;i &gt; 23 &amp;&amp; i != 27&quot;},
{id: &quot;image_fry&quot;, show_in_frames: &quot;i == 27&quot;},
{id: &quot;group_software_screen&quot;, transform_in_frames: &quot;i &gt;= 15&quot;, transform: &quot;translate(-4 40) rotate(-2) skewY(-4.6)&quot;, else_transform: &quot;skewY(0)&quot;},
{id: &quot;group_software_ux&quot;, transform_in_frames: &quot;i &gt;= 15&quot;, transform: &quot;translate(-4 62) rotate(-2) skewY(-7)&quot;, else_transform: &quot;skewY(0)&quot;},
{id: &quot;group_software_flowchart&quot;, transform_in_frames: &quot;i &gt;= 15&quot;, transform: &quot;translate(-20 80) rotate(-2) skewY(-7)&quot;, else_transform: &quot;skewY(0)&quot;},
];
function show_hide_transform_layers(index) {
for (var o = 0; o &lt; objList.length; o ++) {
var i = index+1;
if (&quot;show_in_frames&quot; in objList[o])
{
document.getElementById(objList[o].id).style.visibility = eval(objList[o].show_in_frames) ? &quot;visible&quot; : &quot;hidden&quot;;
}
if (&quot;transform_in_frames&quot; in objList[o])
{
if (eval(objList[o].transform_in_frames))
{
document.getElementById(objList[o].id).setAttribute(&quot;transform&quot;,objList[o].transform);
}
else
{
document.getElementById(objList[o].id).setAttribute(&quot;transform&quot;,objList[o].else_transform);
}
}
}
}
sozi.events.listen(&quot;sozi.display.ready&quot;, function () {show_hide_transform_layers(sozi.player.currentFrameIndex);});
sozi.events.listen(&quot;sozi.player.framechange&quot;, show_hide_transform_layers);
</script>
<style
id="sozi-style"
ns1:version="13.11-30213629">/*
* Sozi - A presentation tool using the SVG standard
*
* Copyright (C) 2010-2013 Guillaume Savaton
*
* This program is dual licensed under the terms of the MIT license
* or the GNU General Public License (GPL) version 3.
* A copy of both licenses is provided in the doc/ folder of the
* official release of Sozi.
*
* See http://sozi.baierouge.fr/wiki/en:license for details.
*/
#sozi-toc text {
fill: #eff;
font-family: Verdana, sans-serif;
font-size: 16pt;
}
#sozi-toc text:hover {
fill: #0cf;
cursor: pointer;
}
#sozi-toc text.sozi-toc-current {
fill: #fa4;
}
#sozi-toc-background {
stroke: #222;
stroke-opacity: 0.1;
stroke-width: 10;
fill: #222;
fill-opacity: 0.9;
}
.sozi-toc-arrow {
fill: #eff;
fill-opacity: 0.75;
stroke: none;
}
.sozi-toc-arrow:hover {
fill: #0cf;
}
#sozi-framenumber circle {
stroke: #222;
stroke-opacity: 0.1;
stroke-width: 4;
fill: #222;
fill-opacity: 0.9;
}
#sozi-framenumber text {
fill: #eff;
font-family: Verdana, sans-serif;
font-size: 12pt;
}
</style>
<ns1:frame
id="frame_title"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="true"
ns1:clip="true"
ns1:hide="true"
ns1:sequence="1"
ns1:title="Title"
ns1:refid="rect_title" />
<ns1:frame
ns1:refid="rect4519"
ns1:title="What?"
ns1:sequence="2"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="true"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_what" />
<ns1:frame
ns1:refid="rect4671"
ns1:title="Why!"
ns1:sequence="3"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="true"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_why" />
<ns1:frame
id="frame_design"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="4"
ns1:title="design approach"
ns1:refid="rect4671-3" />
<ns1:frame
id="frame_software_architecture"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="true"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="5"
ns1:title="Software Architecture"
ns1:refid="rect_software_architecture" />
<ns1:frame
ns1:refid="box_libgphoto2"
ns1:title="libgphoto2"
ns1:sequence="6"
ns1:hide="false"
ns1:clip="false"
ns1:show-in-frame-list="false"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_libgphoto2" />
<ns1:frame
id="frame_gstreamer"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="false"
ns1:sequence="7"
ns1:title="Gstreamer"
ns1:refid="box_gstreamer" />
<ns1:frame
ns1:refid="box_GTK"
ns1:title="GTK+"
ns1:sequence="8"
ns1:hide="false"
ns1:clip="false"
ns1:show-in-frame-list="false"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_GTK" />
<ns1:frame
ns1:refid="rect_software_ux"
ns1:title="User Interface"
ns1:sequence="9"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="true"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_software_ux" />
<ns1:frame
ns1:refid="rect_software_ux_1"
ns1:title="Software UX Init+Preview"
ns1:sequence="10"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="false"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_software_ux_1" />
<ns1:frame
ns1:refid="rect_software_ux_2"
ns1:title="Software UX Countdown+Take Photo"
ns1:sequence="11"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="false"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_software_ux_2" />
<ns1:frame
id="frame_software_ux_3"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="12"
ns1:title="Software UX Print+Upload"
ns1:refid="rect_software_ux_3" />
<ns1:frame
id="frame_software_flowchart"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="true"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="13"
ns1:title="Software Flowchart"
ns1:refid="rect_software_flowchart" />
<ns1:frame
id="frame_gst_1"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="true"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="14"
ns1:title="GStreamer Pipelines"
ns1:refid="rect_gst_1" />
<ns1:frame
id="frame_sw_hw_transition"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="15"
ns1:title="Software-Hardware Transition"
ns1:refid="rect_sw_hw_transition" />
<ns1:frame
id="frame_hardware"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="true"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="16"
ns1:title="Hardware Components"
ns1:refid="rect_hardware" />
<ns1:frame
ns1:refid="rect4671-3-6-8"
ns1:title="Camera"
ns1:sequence="17"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="false"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_camera" />
<ns1:frame
id="frame_touchscreen"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="18"
ns1:title="Touchscreen"
ns1:refid="rect4671-3-6-7-5" />
<ns1:frame
id="frame_printer"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="19"
ns1:title="Printer"
ns1:refid="rect4671-3-6-7" />
<ns1:frame
ns1:refid="rect4671-3-6-7-4"
ns1:title="PC components"
ns1:sequence="20"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="false"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_pc" />
<ns1:frame
ns1:refid="rect4671-3-6-7-4-8"
ns1:title="Arduino"
ns1:sequence="21"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="false"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_arduino" />
<ns1:frame
id="frame_cabinet"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="true"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="22"
ns1:title="Cabinet Woodwork"
ns1:refid="rect_cabinet" />
<ns1:frame
id="frame_3dprints"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="true"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="23"
ns1:title="3d-printed parts"
ns1:refid="rect_3dprints" />
<ns1:frame
ns1:refid="rect_problems"
ns1:title="Issues"
ns1:sequence="24"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="true"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_problems" />
<ns1:frame
id="frame_improvements"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="25"
ns1:title="Improvements"
ns1:refid="rect_improvements" />
<ns1:frame
id="frame_costs"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="true"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="26"
ns1:title="Costs"
ns1:refid="rect_costs" />
<ns1:frame
id="frame_fry"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="27"
ns1:title="Shut up and take my money"
ns1:refid="rect_fry" />
<ns1:frame
ns1:refid="rect_questions"
ns1:title="Questions"
ns1:sequence="28"
ns1:hide="true"
ns1:clip="false"
ns1:show-in-frame-list="true"
ns1:timeout-enable="false"
ns1:timeout-ms="5000.0"
ns1:transition-duration-ms="1000.0"
ns1:transition-zoom-percent="0.0"
ns1:transition-profile="linear"
ns1:transition-path-hide="true"
id="frame_questions" />
<ns1:frame
id="frame_final"
ns1:transition-path-hide="true"
ns1:transition-profile="linear"
ns1:transition-zoom-percent="0.0"
ns1:transition-duration-ms="1000.0"
ns1:timeout-ms="5000.0"
ns1:timeout-enable="false"
ns1:show-in-frame-list="false"
ns1:clip="false"
ns1:hide="true"
ns1:sequence="29"
ns1:title="Final"
ns1:refid="rect_final_overview" />
</svg>