<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
 -->
<!-- Title: classes Pages: 1 -->
<svg width="894pt" height="746pt"
 viewBox="0.00 0.00 894.00 746.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 742)">
<title>classes</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-742 890,-742 890,4 -4,4"/>
<!-- EventsMixin -->
<g id="node1" class="node">
<title>EventsMixin</title>
<polygon fill="#c69ee0" stroke="#c69ee0" points="180,-572 103,-572 103,-536 180,-536 180,-572"/>
<text text-anchor="middle" x="141.5" y="-551.5" font-family="Sans" font-size="10.00" fill="#000000">EventsMixin</text>
</g>
<!-- HoldMixin -->
<g id="node2" class="node">
<title>HoldMixin</title>
<polygon fill="#c69ee0" stroke="#c69ee0" points="330,-614 264,-614 264,-578 330,-578 330,-614"/>
<text text-anchor="middle" x="297" y="-593.5" font-family="Sans" font-size="10.00" fill="#000000">HoldMixin</text>
</g>
<!-- HoldMixin&#45;&gt;EventsMixin -->
<g id="edge8" class="edge">
<title>HoldMixin&#45;&gt;EventsMixin</title>
<path fill="none" stroke="black" d="M263.82,-587.2C242.34,-581.32 213.73,-573.49 189.69,-566.91"/>
<polygon fill="black" stroke="black" points="190.61,-563.54 180.05,-564.27 188.77,-570.29 190.61,-563.54"/>
</g>
<!-- CompositeDevice -->
<g id="node3" class="node">
<title>CompositeDevice</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="193,-252 90,-252 90,-216 193,-216 193,-252"/>
<text text-anchor="middle" x="141.5" y="-231.5" font-family="Sans" font-size="10.00" fill="#000000">CompositeDevice</text>
</g>
<!-- Device -->
<g id="node5" class="node">
<title>Device</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="54,-225 0,-225 0,-189 54,-189 54,-225"/>
<text text-anchor="middle" x="27" y="-204.5" font-family="Sans" font-size="10.00" fill="#000000">Device</text>
</g>
<!-- CompositeDevice&#45;&gt;Device -->
<g id="edge4" class="edge">
<title>CompositeDevice&#45;&gt;Device</title>
<path fill="none" stroke="black" d="M89.84,-221.84C81.15,-219.76 72.28,-217.63 64.07,-215.66"/>
<polygon fill="black" stroke="black" points="64.62,-212.19 54.08,-213.26 62.99,-219 64.62,-212.19"/>
</g>
<!-- CompositeOutputDevice -->
<g id="node4" class="node">
<title>CompositeOutputDevice</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="365,-360 229,-360 229,-324 365,-324 365,-360"/>
<text text-anchor="middle" x="297" y="-339.5" font-family="Sans" font-size="10.00" fill="#000000">CompositeOutputDevice</text>
</g>
<!-- CompositeOutputDevice&#45;&gt;CompositeDevice -->
<g id="edge5" class="edge">
<title>CompositeOutputDevice&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M270.31,-323.92C244.63,-305.86 204.99,-277.97 176.67,-258.04"/>
<polygon fill="black" stroke="black" points="178.47,-255.03 168.28,-252.14 174.44,-260.75 178.47,-255.03"/>
</g>
<!-- LEDCollection -->
<g id="node6" class="node">
<title>LEDCollection</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="503,-576 419,-576 419,-540 503,-540 503,-576"/>
<text text-anchor="middle" x="461" y="-555.5" font-family="Sans" font-size="10.00" fill="#000000">LEDCollection</text>
</g>
<!-- LEDCollection&#45;&gt;CompositeOutputDevice -->
<g id="edge13" class="edge">
<title>LEDCollection&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M418.83,-544.27C412.27,-540.72 406,-536.35 401,-531 370.16,-498.02 386.28,-475.82 365,-436 351.98,-411.63 333.55,-386.24 319.31,-368"/>
<polygon fill="black" stroke="black" points="322.05,-365.82 313.1,-360.15 316.56,-370.17 322.05,-365.82"/>
</g>
<!-- ButtonBoard -->
<g id="node7" class="node">
<title>ButtonBoard</title>
<polygon fill="#2980b9" stroke="#2980b9" points="499.5,-630 422.5,-630 422.5,-594 499.5,-594 499.5,-630"/>
<text text-anchor="middle" x="461" y="-609.5" font-family="Sans" font-size="10.00" fill="#ffffff">ButtonBoard</text>
</g>
<!-- ButtonBoard&#45;&gt;HoldMixin -->
<g id="edge2" class="edge">
<title>ButtonBoard&#45;&gt;HoldMixin</title>
<path fill="none" stroke="black" d="M422.43,-608.29C397.86,-605.86 365.74,-602.69 340.28,-600.18"/>
<polygon fill="black" stroke="black" points="340.47,-596.68 330.18,-599.18 339.78,-603.64 340.47,-596.68"/>
</g>
<!-- ButtonBoard&#45;&gt;CompositeDevice -->
<g id="edge1" class="edge">
<title>ButtonBoard&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M422.36,-599.83C414.59,-596.01 406.97,-591.14 401,-585 372.41,-555.58 388.25,-533.81 365,-500 317.45,-430.85 282.23,-433.89 229,-369 200.45,-334.2 173.45,-289.49 157.44,-261.28"/>
<polygon fill="black" stroke="black" points="160.39,-259.39 152.44,-252.39 154.29,-262.82 160.39,-259.39"/>
</g>
<!-- CamJamKitRobot -->
<g id="node8" class="node">
<title>CamJamKitRobot</title>
<polygon fill="#2980b9" stroke="#2980b9" points="511,-144 411,-144 411,-108 511,-108 511,-144"/>
<text text-anchor="middle" x="461" y="-123.5" font-family="Sans" font-size="10.00" fill="#ffffff">CamJamKitRobot</text>
</g>
<!-- Robot -->
<g id="node9" class="node">
<title>Robot</title>
<polygon fill="#2980b9" stroke="#2980b9" points="324,-198 270,-198 270,-162 324,-162 324,-198"/>
<text text-anchor="middle" x="297" y="-177.5" font-family="Sans" font-size="10.00" fill="#ffffff">Robot</text>
</g>
<!-- CamJamKitRobot&#45;&gt;Robot -->
<g id="edge3" class="edge">
<title>CamJamKitRobot&#45;&gt;Robot</title>
<path fill="none" stroke="black" d="M410.96,-142.35C386.13,-150.62 356.54,-160.49 333.87,-168.04"/>
<polygon fill="black" stroke="black" points="332.68,-164.75 324.3,-171.23 334.9,-171.39 332.68,-164.75"/>
</g>
<!-- Robot&#45;&gt;CompositeDevice -->
<g id="edge24" class="edge">
<title>Robot&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M269.96,-189.16C251.54,-195.64 226.07,-204.6 202.74,-212.81"/>
<polygon fill="black" stroke="black" points="201.51,-209.53 193.24,-216.15 203.83,-216.13 201.51,-209.53"/>
</g>
<!-- Energenie -->
<g id="node10" class="node">
<title>Energenie</title>
<polygon fill="#2980b9" stroke="#2980b9" points="174,-198 109,-198 109,-162 174,-162 174,-198"/>
<text text-anchor="middle" x="141.5" y="-177.5" font-family="Sans" font-size="10.00" fill="#ffffff">Energenie</text>
</g>
<!-- Energenie&#45;&gt;Device -->
<g id="edge6" class="edge">
<title>Energenie&#45;&gt;Device</title>
<path fill="none" stroke="black" d="M108.86,-187.59C94.95,-190.93 78.54,-194.87 64.15,-198.32"/>
<polygon fill="black" stroke="black" points="63,-195 54.09,-200.74 64.63,-201.81 63,-195"/>
</g>
<!-- FishDish -->
<g id="node11" class="node">
<title>FishDish</title>
<polygon fill="#2980b9" stroke="#2980b9" points="490,-522 432,-522 432,-486 490,-486 490,-522"/>
<text text-anchor="middle" x="461" y="-501.5" font-family="Sans" font-size="10.00" fill="#ffffff">FishDish</text>
</g>
<!-- FishDish&#45;&gt;CompositeOutputDevice -->
<g id="edge7" class="edge">
<title>FishDish&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M431.98,-494.48C421.61,-490.14 410.15,-484.31 401,-477 390.63,-468.72 343.89,-405.3 317.07,-368.4"/>
<polygon fill="black" stroke="black" points="319.74,-366.12 311.04,-360.08 314.08,-370.23 319.74,-366.12"/>
</g>
<!-- JamHat -->
<g id="node12" class="node">
<title>JamHat</title>
<polygon fill="#2980b9" stroke="#2980b9" points="488,-468 434,-468 434,-432 488,-432 488,-468"/>
<text text-anchor="middle" x="461" y="-447.5" font-family="Sans" font-size="10.00" fill="#ffffff">JamHat</text>
</g>
<!-- JamHat&#45;&gt;CompositeOutputDevice -->
<g id="edge9" class="edge">
<title>JamHat&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M433.76,-439.59C423.28,-435.02 411.29,-429.28 401,-423 374.03,-406.55 346.01,-384.11 326.02,-367.02"/>
<polygon fill="black" stroke="black" points="328.09,-364.19 318.24,-360.29 323.51,-369.48 328.09,-364.19"/>
</g>
<!-- LEDBarGraph -->
<g id="node13" class="node">
<title>LEDBarGraph</title>
<polygon fill="#2980b9" stroke="#2980b9" points="645,-684 564,-684 564,-648 645,-648 645,-684"/>
<text text-anchor="middle" x="604.5" y="-663.5" font-family="Sans" font-size="10.00" fill="#ffffff">LEDBarGraph</text>
</g>
<!-- LEDBarGraph&#45;&gt;LEDCollection -->
<g id="edge10" class="edge">
<title>LEDBarGraph&#45;&gt;LEDCollection</title>
<path fill="none" stroke="black" d="M588.27,-647.72C572.75,-629.96 547.29,-603.09 521,-585 518.13,-583.02 515.09,-581.13 511.97,-579.33"/>
<polygon fill="black" stroke="black" points="513.47,-576.17 503,-574.51 510.15,-582.33 513.47,-576.17"/>
</g>
<!-- LEDBoard -->
<g id="node14" class="node">
<title>LEDBoard</title>
<polygon fill="#2980b9" stroke="#2980b9" points="636.5,-576 572.5,-576 572.5,-540 636.5,-540 636.5,-576"/>
<text text-anchor="middle" x="604.5" y="-555.5" font-family="Sans" font-size="10.00" fill="#ffffff">LEDBoard</text>
</g>
<!-- LEDBoard&#45;&gt;LEDCollection -->
<g id="edge11" class="edge">
<title>LEDBoard&#45;&gt;LEDCollection</title>
<path fill="none" stroke="black" d="M572.45,-558C555.13,-558 533.12,-558 513.31,-558"/>
<polygon fill="black" stroke="black" points="513.19,-554.5 503.19,-558 513.19,-561.5 513.19,-554.5"/>
</g>
<!-- LEDCharDisplay -->
<g id="node15" class="node">
<title>LEDCharDisplay</title>
<polygon fill="#2980b9" stroke="#2980b9" points="652,-522 557,-522 557,-486 652,-486 652,-522"/>
<text text-anchor="middle" x="604.5" y="-501.5" font-family="Sans" font-size="10.00" fill="#ffffff">LEDCharDisplay</text>
</g>
<!-- LEDCharDisplay&#45;&gt;LEDCollection -->
<g id="edge12" class="edge">
<title>LEDCharDisplay&#45;&gt;LEDCollection</title>
<path fill="none" stroke="black" d="M556.78,-521.83C542.78,-527.17 527.36,-533.06 513.1,-538.5"/>
<polygon fill="black" stroke="black" points="511.53,-535.35 503.44,-542.19 514.03,-541.89 511.53,-535.35"/>
</g>
<!-- LEDMultiCharDisplay -->
<g id="node16" class="node">
<title>LEDMultiCharDisplay</title>
<polygon fill="#2980b9" stroke="#2980b9" points="520.5,-414 401.5,-414 401.5,-378 520.5,-378 520.5,-414"/>
<text text-anchor="middle" x="461" y="-393.5" font-family="Sans" font-size="10.00" fill="#ffffff">LEDMultiCharDisplay</text>
</g>
<!-- LEDMultiCharDisplay&#45;&gt;CompositeOutputDevice -->
<g id="edge14" class="edge">
<title>LEDMultiCharDisplay&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M405.61,-377.87C391.64,-373.21 376.49,-368.16 362.08,-363.36"/>
<polygon fill="black" stroke="black" points="362.84,-359.93 352.25,-360.08 360.63,-366.57 362.84,-359.93"/>
</g>
<!-- PhaseEnableRobot -->
<g id="node17" class="node">
<title>PhaseEnableRobot</title>
<polygon fill="#2980b9" stroke="#2980b9" points="350.5,-144 243.5,-144 243.5,-108 350.5,-108 350.5,-144"/>
<text text-anchor="middle" x="297" y="-123.5" font-family="Sans" font-size="10.00" fill="#ffffff">PhaseEnableRobot</text>
</g>
<!-- PhaseEnableRobot&#45;&gt;CompositeDevice -->
<g id="edge15" class="edge">
<title>PhaseEnableRobot&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M243.4,-143.53C238.29,-146.29 233.38,-149.44 229,-153 206.62,-171.2 214.36,-187.62 193,-207 191.9,-208 190.75,-208.98 189.56,-209.93"/>
<polygon fill="black" stroke="black" points="187.42,-207.16 181.34,-215.84 191.5,-212.85 187.42,-207.16"/>
</g>
<!-- PiHutXmasTree -->
<g id="node18" class="node">
<title>PiHutXmasTree</title>
<polygon fill="#2980b9" stroke="#2980b9" points="780,-684 689,-684 689,-648 780,-648 780,-684"/>
<text text-anchor="middle" x="734.5" y="-663.5" font-family="Sans" font-size="10.00" fill="#ffffff">PiHutXmasTree</text>
</g>
<!-- PiHutXmasTree&#45;&gt;LEDBoard -->
<g id="edge16" class="edge">
<title>PiHutXmasTree&#45;&gt;LEDBoard</title>
<path fill="none" stroke="black" d="M700.56,-647.75C696.23,-644.98 691.93,-642.03 688,-639 666.2,-622.23 644.11,-600.21 628.27,-583.36"/>
<polygon fill="black" stroke="black" points="630.83,-580.97 621.46,-576.02 625.7,-585.73 630.83,-580.97"/>
</g>
<!-- PiLiter -->
<g id="node19" class="node">
<title>PiLiter</title>
<polygon fill="#2980b9" stroke="#2980b9" points="761.5,-630 707.5,-630 707.5,-594 761.5,-594 761.5,-630"/>
<text text-anchor="middle" x="734.5" y="-609.5" font-family="Sans" font-size="10.00" fill="#ffffff">PiLiter</text>
</g>
<!-- PiLiter&#45;&gt;LEDBoard -->
<g id="edge17" class="edge">
<title>PiLiter&#45;&gt;LEDBoard</title>
<path fill="none" stroke="black" d="M707.29,-600.94C689.61,-593.48 665.94,-583.5 645.87,-575.03"/>
<polygon fill="black" stroke="black" points="647.22,-571.8 636.64,-571.14 644.5,-578.25 647.22,-571.8"/>
</g>
<!-- PiLiterBarGraph -->
<g id="node20" class="node">
<title>PiLiterBarGraph</title>
<polygon fill="#2980b9" stroke="#2980b9" points="781,-738 688,-738 688,-702 781,-702 781,-738"/>
<text text-anchor="middle" x="734.5" y="-717.5" font-family="Sans" font-size="10.00" fill="#ffffff">PiLiterBarGraph</text>
</g>
<!-- PiLiterBarGraph&#45;&gt;LEDBarGraph -->
<g id="edge18" class="edge">
<title>PiLiterBarGraph&#45;&gt;LEDBarGraph</title>
<path fill="none" stroke="black" d="M690.52,-701.87C678.95,-696.98 666.34,-691.67 654.46,-686.66"/>
<polygon fill="black" stroke="black" points="655.7,-683.38 645.13,-682.72 652.98,-689.83 655.7,-683.38"/>
</g>
<!-- PiStop -->
<g id="node21" class="node">
<title>PiStop</title>
<polygon fill="#2980b9" stroke="#2980b9" points="878.5,-630 824.5,-630 824.5,-594 878.5,-594 878.5,-630"/>
<text text-anchor="middle" x="851.5" y="-609.5" font-family="Sans" font-size="10.00" fill="#ffffff">PiStop</text>
</g>
<!-- TrafficLights -->
<g id="node22" class="node">
<title>TrafficLights</title>
<polygon fill="#2980b9" stroke="#2980b9" points="772,-576 697,-576 697,-540 772,-540 772,-576"/>
<text text-anchor="middle" x="734.5" y="-555.5" font-family="Sans" font-size="10.00" fill="#ffffff">TrafficLights</text>
</g>
<!-- PiStop&#45;&gt;TrafficLights -->
<g id="edge19" class="edge">
<title>PiStop&#45;&gt;TrafficLights</title>
<path fill="none" stroke="black" d="M824.4,-599.75C811.79,-593.82 796.27,-586.54 781.75,-579.72"/>
<polygon fill="black" stroke="black" points="782.93,-576.41 772.39,-575.32 779.96,-582.74 782.93,-576.41"/>
</g>
<!-- TrafficLights&#45;&gt;LEDBoard -->
<g id="edge33" class="edge">
<title>TrafficLights&#45;&gt;LEDBoard</title>
<path fill="none" stroke="black" d="M696.82,-558C681.19,-558 662.87,-558 646.77,-558"/>
<polygon fill="black" stroke="black" points="646.55,-554.5 636.55,-558 646.55,-561.5 646.55,-554.5"/>
</g>
<!-- PiTraffic -->
<g id="node23" class="node">
<title>PiTraffic</title>
<polygon fill="#2980b9" stroke="#2980b9" points="879,-576 824,-576 824,-540 879,-540 879,-576"/>
<text text-anchor="middle" x="851.5" y="-555.5" font-family="Sans" font-size="10.00" fill="#ffffff">PiTraffic</text>
</g>
<!-- PiTraffic&#45;&gt;TrafficLights -->
<g id="edge20" class="edge">
<title>PiTraffic&#45;&gt;TrafficLights</title>
<path fill="none" stroke="black" d="M823.83,-558C811.44,-558 796.34,-558 782.16,-558"/>
<polygon fill="black" stroke="black" points="782.04,-554.5 772.04,-558 782.04,-561.5 782.04,-554.5"/>
</g>
<!-- Pibrella -->
<g id="node24" class="node">
<title>Pibrella</title>
<polygon fill="#2980b9" stroke="#2980b9" points="488,-360 434,-360 434,-324 488,-324 488,-360"/>
<text text-anchor="middle" x="461" y="-339.5" font-family="Sans" font-size="10.00" fill="#ffffff">Pibrella</text>
</g>
<!-- Pibrella&#45;&gt;CompositeOutputDevice -->
<g id="edge21" class="edge">
<title>Pibrella&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M433.97,-342C417.91,-342 396.39,-342 375.22,-342"/>
<polygon fill="black" stroke="black" points="375.21,-338.5 365.21,-342 375.21,-345.5 375.21,-338.5"/>
</g>
<!-- PololuDRV8835Robot -->
<g id="node25" class="node">
<title>PololuDRV8835Robot</title>
<polygon fill="#2980b9" stroke="#2980b9" points="521,-36 401,-36 401,0 521,0 521,-36"/>
<text text-anchor="middle" x="461" y="-15.5" font-family="Sans" font-size="10.00" fill="#ffffff">PololuDRV8835Robot</text>
</g>
<!-- PololuDRV8835Robot&#45;&gt;PhaseEnableRobot -->
<g id="edge22" class="edge">
<title>PololuDRV8835Robot&#45;&gt;PhaseEnableRobot</title>
<path fill="none" stroke="black" d="M413.69,-36.09C409.18,-38.74 404.86,-41.71 401,-45 379.05,-63.71 387.38,-80.8 365,-99 363.22,-100.45 361.36,-101.82 359.42,-103.14"/>
<polygon fill="black" stroke="black" points="357.35,-100.3 350.6,-108.47 360.96,-106.29 357.35,-100.3"/>
</g>
<!-- PumpkinPi -->
<g id="node26" class="node">
<title>PumpkinPi</title>
<polygon fill="#2980b9" stroke="#2980b9" points="768.5,-522 700.5,-522 700.5,-486 768.5,-486 768.5,-522"/>
<text text-anchor="middle" x="734.5" y="-501.5" font-family="Sans" font-size="10.00" fill="#ffffff">PumpkinPi</text>
</g>
<!-- PumpkinPi&#45;&gt;LEDBoard -->
<g id="edge23" class="edge">
<title>PumpkinPi&#45;&gt;LEDBoard</title>
<path fill="none" stroke="black" d="M700.2,-518.05C683.7,-525.01 663.64,-533.47 646.23,-540.82"/>
<polygon fill="black" stroke="black" points="644.72,-537.65 636.87,-544.77 647.44,-544.1 644.72,-537.65"/>
</g>
<!-- RotaryEncoder -->
<g id="node27" class="node">
<title>RotaryEncoder</title>
<polygon fill="#2980b9" stroke="#2980b9" points="341,-545 253,-545 253,-509 341,-509 341,-545"/>
<text text-anchor="middle" x="297" y="-524.5" font-family="Sans" font-size="10.00" fill="#ffffff">RotaryEncoder</text>
</g>
<!-- RotaryEncoder&#45;&gt;EventsMixin -->
<g id="edge26" class="edge">
<title>RotaryEncoder&#45;&gt;EventsMixin</title>
<path fill="none" stroke="black" d="M252.83,-534.59C233.26,-538.04 210.06,-542.12 190,-545.65"/>
<polygon fill="black" stroke="black" points="189.37,-542.2 180.13,-547.38 190.58,-549.1 189.37,-542.2"/>
</g>
<!-- RotaryEncoder&#45;&gt;CompositeDevice -->
<g id="edge25" class="edge">
<title>RotaryEncoder&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M271.65,-508.79C257.61,-497.25 240.51,-481.27 229,-464 185.19,-398.27 159.5,-307.31 148.64,-261.99"/>
<polygon fill="black" stroke="black" points="151.99,-260.95 146.31,-252.01 145.18,-262.54 151.99,-260.95"/>
</g>
<!-- RyanteckRobot -->
<g id="node28" class="node">
<title>RyanteckRobot</title>
<polygon fill="#2980b9" stroke="#2980b9" points="506.5,-90 415.5,-90 415.5,-54 506.5,-54 506.5,-90"/>
<text text-anchor="middle" x="461" y="-69.5" font-family="Sans" font-size="10.00" fill="#ffffff">RyanteckRobot</text>
</g>
<!-- RyanteckRobot&#45;&gt;Robot -->
<g id="edge27" class="edge">
<title>RyanteckRobot&#45;&gt;Robot</title>
<path fill="none" stroke="black" d="M415.2,-89.21C410.15,-92.09 405.29,-95.35 401,-99 379.05,-117.71 387.38,-134.8 365,-153 355.91,-160.39 344.54,-165.98 333.75,-170.11"/>
<polygon fill="black" stroke="black" points="332.38,-166.88 324.1,-173.49 334.69,-173.49 332.38,-166.88"/>
</g>
<!-- SnowPi -->
<g id="node29" class="node">
<title>SnowPi</title>
<polygon fill="#2980b9" stroke="#2980b9" points="761.5,-468 707.5,-468 707.5,-432 761.5,-432 761.5,-468"/>
<text text-anchor="middle" x="734.5" y="-447.5" font-family="Sans" font-size="10.00" fill="#ffffff">SnowPi</text>
</g>
<!-- SnowPi&#45;&gt;LEDBoard -->
<g id="edge28" class="edge">
<title>SnowPi&#45;&gt;LEDBoard</title>
<path fill="none" stroke="black" d="M707.06,-462.99C700.42,-466.96 693.6,-471.69 688,-477 667.08,-496.85 673.02,-511.25 652,-531 649.9,-532.98 647.62,-534.87 645.25,-536.67"/>
<polygon fill="black" stroke="black" points="643.15,-533.87 636.9,-542.43 647.12,-539.63 643.15,-533.87"/>
</g>
<!-- StatusBoard -->
<g id="node30" class="node">
<title>StatusBoard</title>
<polygon fill="#2980b9" stroke="#2980b9" points="499,-306 423,-306 423,-270 499,-270 499,-306"/>
<text text-anchor="middle" x="461" y="-285.5" font-family="Sans" font-size="10.00" fill="#ffffff">StatusBoard</text>
</g>
<!-- StatusBoard&#45;&gt;CompositeOutputDevice -->
<g id="edge29" class="edge">
<title>StatusBoard&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M422.83,-300.39C404.77,-306.41 382.54,-313.82 361.88,-320.71"/>
<polygon fill="black" stroke="black" points="360.58,-317.45 352.2,-323.93 362.79,-324.09 360.58,-317.45"/>
</g>
<!-- StatusZero -->
<g id="node31" class="node">
<title>StatusZero</title>
<polygon fill="#2980b9" stroke="#2980b9" points="769.5,-414 699.5,-414 699.5,-378 769.5,-378 769.5,-414"/>
<text text-anchor="middle" x="734.5" y="-393.5" font-family="Sans" font-size="10.00" fill="#ffffff">StatusZero</text>
</g>
<!-- StatusZero&#45;&gt;LEDBoard -->
<g id="edge30" class="edge">
<title>StatusZero&#45;&gt;LEDBoard</title>
<path fill="none" stroke="black" d="M699.49,-412.36C695.22,-415.45 691.23,-419 688,-423 656.24,-462.39 683.94,-491.76 652,-531 649.94,-533.53 647.57,-535.88 645.02,-538.04"/>
<polygon fill="black" stroke="black" points="642.92,-535.24 636.94,-543.98 647.07,-540.88 642.92,-535.24"/>
</g>
<!-- TonalBuzzer -->
<g id="node32" class="node">
<title>TonalBuzzer</title>
<polygon fill="#2980b9" stroke="#2980b9" points="334.5,-90 259.5,-90 259.5,-54 334.5,-54 334.5,-90"/>
<text text-anchor="middle" x="297" y="-69.5" font-family="Sans" font-size="10.00" fill="#ffffff">TonalBuzzer</text>
</g>
<!-- TonalBuzzer&#45;&gt;CompositeDevice -->
<g id="edge31" class="edge">
<title>TonalBuzzer&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M259.17,-80.44C248.25,-84.49 237.08,-90.41 229,-99 194.34,-135.86 225.63,-168.33 193,-207 192.29,-207.84 191.56,-208.65 190.79,-209.44"/>
<polygon fill="black" stroke="black" points="188.49,-206.8 183.23,-216 193.08,-212.09 188.49,-206.8"/>
</g>
<!-- TrafficHat -->
<g id="node33" class="node">
<title>TrafficHat</title>
<polygon fill="#2980b9" stroke="#2980b9" points="492.5,-252 429.5,-252 429.5,-216 492.5,-216 492.5,-252"/>
<text text-anchor="middle" x="461" y="-231.5" font-family="Sans" font-size="10.00" fill="#ffffff">TrafficHat</text>
</g>
<!-- TrafficHat&#45;&gt;CompositeOutputDevice -->
<g id="edge32" class="edge">
<title>TrafficHat&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M429.28,-246.4C419.96,-250.6 409.85,-255.6 401,-261 374.03,-277.45 346.01,-299.89 326.02,-316.98"/>
<polygon fill="black" stroke="black" points="323.51,-314.52 318.24,-323.71 328.09,-319.81 323.51,-314.52"/>
</g>
<!-- TrafficLightsBuzzer -->
<g id="node34" class="node">
<title>TrafficLightsBuzzer</title>
<polygon fill="#2980b9" stroke="#2980b9" points="515,-198 407,-198 407,-162 515,-162 515,-198"/>
<text text-anchor="middle" x="461" y="-177.5" font-family="Sans" font-size="10.00" fill="#ffffff">TrafficLightsBuzzer</text>
</g>
<!-- TrafficLightsBuzzer&#45;&gt;CompositeOutputDevice -->
<g id="edge34" class="edge">
<title>TrafficLightsBuzzer&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M414.2,-198.17C409.55,-200.82 405.05,-203.77 401,-207 362.97,-237.39 331.14,-284.74 313.34,-314.53"/>
<polygon fill="black" stroke="black" points="310.1,-313.15 308.07,-323.54 316.14,-316.68 310.1,-313.15"/>
</g>
<!-- TrafficpHat -->
<g id="node35" class="node">
<title>TrafficpHat</title>
<polygon fill="#2980b9" stroke="#2980b9" points="886,-522 817,-522 817,-486 886,-486 886,-522"/>
<text text-anchor="middle" x="851.5" y="-501.5" font-family="Sans" font-size="10.00" fill="#ffffff">TrafficpHat</text>
</g>
<!-- TrafficpHat&#45;&gt;TrafficLights -->
<g id="edge35" class="edge">
<title>TrafficpHat&#45;&gt;TrafficLights</title>
<path fill="none" stroke="black" d="M816.93,-519.76C805.84,-524.97 793.3,-530.86 781.45,-536.42"/>
<polygon fill="black" stroke="black" points="779.7,-533.38 772.13,-540.8 782.67,-539.72 779.7,-533.38"/>
</g>
</g>
</svg>
