javaOCR/umlAndStateFlow.xmi
Blizzard Finnegan f7e71e7163
Update documentation, improve readability of code
No functional changes have been made, new build not required
2023-03-21 09:54:42 -04:00

1395 lines
172 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<XMI xmi.version="1.2" timestamp="2023-03-21T09:45:41" verified="false" xmlns:UML="http://schema.omg.org/spec/UML/1.4">
<XMI.header>
<XMI.documentation>
<XMI.exporter>umbrello uml modeller 2.32.3 http://umbrello.kde.org</XMI.exporter>
<XMI.exporterVersion>1.7.3</XMI.exporterVersion>
<XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding>
</XMI.documentation>
<XMI.metamodel xmi.name="UML" xmi.version="1.4" href="UML.xml"/>
</XMI.header>
<XMI.content>
<UML:Model xmi.id="m1" name="UML Model" isSpecification="false" isAbstract="false" isRoot="false" isLeaf="false">
<UML:Namespace.ownedElement>
<UML:Stereotype isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="folder" name="folder" namespace="m1" visibility="public"/>
<UML:Stereotype isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="enum" name="enum" namespace="m1" visibility="public"/>
<UML:Model isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="Logical_View" name="Logical View" namespace="m1" visibility="public">
<UML:Namespace.ownedElement>
<UML:Package isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="Datatypes" name="Datatypes" namespace="Logical_View" visibility="public" stereotype="folder">
<UML:Namespace.ownedElement>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uDoWSpaQhZYMj" name="char" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u6dG093IE5KRR" name="int" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uCO3HE6xCfnkW" name="float" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uCrL5Q2hyX5sQ" name="double" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ufLcoOmblD5xA" name="bool" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uC91Z5I6GvBha" name="string" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="upfnNUZyNFmjz" name="unsigned char" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ugNO2pJM1hFz7" name="signed char" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uKCE2OEBE2Raz" name="unsigned int" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uzJVMVJLwomgo" name="signed int" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uONsxKyOkUqSG" name="short int" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ufjpqsbculg16" name="unsigned short int" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uByu3v8UDLNuV" name="signed short int" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u6DR57G26MnPK" name="long int" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uwGdEGKab0jTL" name="signed long int" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uFMaK6PVQ2sTp" name="unsigned long int" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u12LSDcvfbGFa" name="long double" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uXdpgpHjS8pIQ" name="wchar_t" namespace="Datatypes" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uUFR10GCed46Q" name="boolean" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="udTQ2y9M1GLg9" name="byte" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="usyIvFLIaNduc" name="short" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uRiiCWnAy5RVe" name="long" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uMYRTkE3rxR2B" name="String" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uDhbC7HamBUXf" name="Integer" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uUBHYF2VTs95m" name="Character" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="umD3Y5YgpHTL5" name="Boolean" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uEXdFpDPOdfpV" name="Float" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uQwhrzourTSFc" name="Double" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uMX44yrUJSq2Z" name="Byte" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ujXLj0TVNtFs1" name="Short" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uppdevdmKoAeT" name="Long" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uN4zCdvj7rsZz" name="StringBuffer" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uBwekzeWX8icG" name="StringBuilder" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u8ik9hKNzgKcH" name="Lock" namespace="Datatypes" comment="java.util.concurrent.locks.Lock" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uyTBx9P7f4VjF" name="Scanner" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u53NpBDIiJKLh" name="FileBasedConfigurationBuilder" namespace="Datatypes" comment="org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ue50uK6Axr5uJ" name="INIConfiguration" namespace="Datatypes" comment="org.apache.commons.configuration2.INIConfiguration" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u1Ano2L3MNqB9" name="HSSFCellStyle" namespace="Datatypes" comment="org.apache.poi.hssf.usermodel.HSSFCellStyle" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="unYkf3XdlbOvG" name="HSSFSheet" namespace="Datatypes" comment="org.apache.poi.hssf.usermodel.HSSFSheet" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uCN5vhsamIMZS" name="HSSFWorkbook" namespace="Datatypes" comment="org.apache.poi.hssf.usermodel.HSSFWorkbook" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u3iolu1KBaeLC" name="DateTimeFormatter" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uI35GxgSf15Ke" name="BufferedWriter" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uBH80PyFvNP0W" name="PrintWriter" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uBxtki3mYxNXH" name="FileWriter" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="um5BRQatdPbwa" name="DigitalInput" namespace="Datatypes" comment="com.pi4j.io.gpio.digital.DigitalInput&#10;" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u21ZDyvoF16O4" name="DigitalOutput" namespace="Datatypes" comment="com.pi4j.io.gpio.digital.DigitalOutput" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uQwi67sMHYYH8" name="Context" namespace="Datatypes" comment="com.pi4j.context.Context&#10;&#10;Used for creating DigitalInput and DigitalOutput objects." visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="unl1k1K0LtpWx" name="Thread" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uOY0ocupt3vUN" name="FrameGrabber" namespace="Datatypes" comment="org.bytedeco.javacv.FrameGrabber&#10;&#10;OpenCV Camera object" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="usELT5EPkFTAY" name="Map" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uF3615aHJR1V4" name="List" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uTFuxlA0IbjaA" name="Mat" namespace="Datatypes" comment="org.bytedeco.opencv.opencv_core.Mat&#10;&#10;Image, stored in an OpenCV matrix" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uLtWoZg2r6vK5" name="File" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uM9KJKNeM6Kog" name="TessBaseAPI" namespace="Datatypes" comment="org.bytedeco.tesseract.TessBaseAPI&#10;&#10;API object type for interacting with Tesseract" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uBAEhogVaCinW" name="OpenCVFrameConverter " namespace="Datatypes" comment="org.bytedeco.javacv.OpenCVFrameConverter.ToMat" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uVfGuVVTLsk6z" name="Rect" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u3L4GKc1rVusd" name="Set" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uDuQErHgUBVcM" name="Throwable" namespace="Datatypes" visibility="public"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uDeZGb4yv2Oyh" name="E" namespace="Datatypes" comment="Generic type" visibility="public" isActive="false"/>
<UML:DataType isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="up5zdiYR8lCzx" name="F" namespace="Datatypes" comment="Generic Type" visibility="public" isActive="false"/>
</UML:Namespace.ownedElement>
</UML:Package>
<UML:Enumeration isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uWQfGitACJCjJ" name="ConfigProperties" namespace="Logical_View" visibility="public" stereotype="enum">
<UML:Enumeration.literal>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uvn8JayutLubu" name="ACTIVE" namespace="uWQfGitACJCjJ" comment="Whether a camera should be used when running tests." visibility="public" value="(&quot;Camera active&quot;,&quot;active&quot;,1.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u73SthAH5zOdg" name="COMPOSITE_FRAMES" namespace="uWQfGitACJCjJ" comment="Homw many frames to composite together while processing this camera's image." visibility="public" value="(&quot;Composite frame count&quot;,compositeCount&quot;,5.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uf89LbU8P2tU9" name="CROP" namespace="uWQfGitACJCjJ" comment="Whether or not to crop the image during processing." visibility="public" value="(&quot;Toggle crop&quot;,&quot;crop&quot;,1.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ucE3ge21K40yx" name="CROP_H" namespace="uWQfGitACJCjJ" comment="Height of the newly cropped image" visibility="public" value="(&quot;Crop Height&quot;,&quot;cropH&quot;,50.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ujmy3pgeQ26Qi" name="CROP_W" namespace="uWQfGitACJCjJ" comment="Width of the newly cropped image." visibility="public" value="(&quot;Crop Width&quot;,&quot;cropW&quot;,80.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="umY8MrEM1VFve" name="CROP_X" namespace="uWQfGitACJCjJ" comment="X coordinate of the top-left corner of the newly cropped image" visibility="public" value="(&quot;Crop X&quot;,&quot;cropX&quot;,275.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uDmhLJC7JhotK" name="CROP_Y" namespace="uWQfGitACJCjJ" comment="Y coordinate of the top-left corner of the newly cropped image." visibility="public" value="(&quot;Crop Y&quot;,&quot;cropY&quot;,205.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uRWCAbjEUsefQ" name="PRIME" namespace="uWQfGitACJCjJ" comment="Whether or not to press the button on the device twice when under test." visibility="public" value="(&quot;Prime device&quot;,&quot;prime&quot;,0.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uiMqHtn48FYKm" name="THRESHOLD" namespace="uWQfGitACJCjJ" comment="Whether or not to threshold the image during processing." visibility="public" value="(&quot;Toggle Threshold&quot;,&quot;threshold&quot;,1.0)"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ukyBP0PULsi35" name="THRESHOLD_VALUE" namespace="uWQfGitACJCjJ" comment="Where the threshold point should land." visibility="public" value="(&quot;Threshold value&quot;,&quot;thresholdValue&quot;,45.0)"/>
</UML:Enumeration.literal>
</UML:Enumeration>
<UML:Enumeration isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uhoYk9h6KpMug" name="MovementFacade.FinalState" namespace="Logical_View" comment="Final state of any one movement." visibility="public" stereotype="enum">
<UML:Enumeration.literal>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="unJPOlWUL5Dmv" name="FAILED" namespace="uhoYk9h6KpMug" visibility="public"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ulhOoUKvgvVVe" name="SAFE" namespace="uhoYk9h6KpMug" visibility="public"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u5jKNi1695At9" name="UNSAFE" namespace="uhoYk9h6KpMug" visibility="public"/>
</UML:Enumeration.literal>
</UML:Enumeration>
<UML:Enumeration isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uX8xl8SknIiop" name="Cli.Menus" namespace="Logical_View" visibility="private" stereotype="enum">
<UML:Enumeration.literal>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uXEgtMa6ojh5v" name="CAMERA" namespace="uX8xl8SknIiop" visibility="public"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uumycodD0FI2b" name="MAIN" namespace="uX8xl8SknIiop" visibility="public"/>
<UML:EnumerationLiteral isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uykUAZaKuvRtj" name="OTHER" namespace="uX8xl8SknIiop" visibility="public"/>
</UML:Enumeration.literal>
</UML:Enumeration>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uszTbwciTSOHV" name="TesseractFacade" namespace="Logical_View" visibility="public">
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="uMd0VTCwpENXT" name="api" comment="API object for Tesseract. Initialised using OCR_ENGINE_MODE, OCR_LANGUAGE, and OCR_LANGUAGE_LOCATION" visibility="private" ownerScope="classifier" type="uM9KJKNeM6Kog"/>
<UML:Attribute isSpecification="false" xmi.id="uUWwF5fgtv9QG" name="OCR_ENGINE_MODE" comment="OCR engine mode. &#10;&#10;From https://ai-facets.org/tesseract-ocr-best-practices/: &#10;0: Legacy engine only &#10;1: Neural nets Long Short-Term Memory (LSTM) engine only. This form of neural network has feedback, as well as feedforward within the design, allowing the neural network to learn from itself. &#10;2: Legacy + LSTM engines &#10;3: Default, based on what is available &#10;&#10;As I didn't write the training data, and don't actually know what kind of network the training set requires, this value is set to default." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="3"/>
<UML:Attribute isSpecification="false" xmi.id="uZhvZ4Q9CC10o" name="OCR_LANGUAGE" comment="OCR language name (if available by default), or training data filename." visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B" initialValue="&quot;Pro6_temp_test&quot;"/>
<UML:Attribute isSpecification="false" xmi.id="u0Q4w9Mkq75IR" name="OCR_LANGUAGE_LOCATION" comment="Location on the file system that the OCR languages are stored. This value requires that the folder &quot;tessdata&quot; be in the same location as your current working directory." visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B" initialValue="&quot;tessdata&quot;"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uZ4qzz259Z3S3" name="imageToDouble" comment="Converts an image file to a double." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="udXXVGkwYQRZR" type="uCrL5Q2hyX5sQ" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="umHhjQ5kMcwOQ" name="file" comment="File containing the image to be parsed." visibility="private" type="uLtWoZg2r6vK5" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uxutGWImUrqt7" name="OpenCVFacade" namespace="Logical_View" comment="Facade for the OpenCV package. Performs image capture as well as rudamentary image manipulation." visibility="public">
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="usQIEDGKPGhT9" name="CAMERA_CODEC" comment="FourCC code of the image generated by the camera being communicated with.&#10;&#10;The camera currently in use (Arducam 8MP Sony IMX219, SKU B0196) does not support UVC codec declaration, but this is required for OpenCV to function properly." visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B" initialValue="&quot;mjpg&quot;"/>
<UML:Attribute isSpecification="false" xmi.id="uT50OpN6jOap5" name="CAMERA_FILE_PREFIX" comment="Name of custom-created symlink for all cameras.&#10;&#10;This configuration must be done manually on initial install." visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B" initialValue="&quot;video-cam-&quot;"/>
<UML:Attribute isSpecification="false" xmi.id="uCsd18DlWrWRF" name="cameraMap" comment="Storage of all cameras.&#10;&#10;Key: String (camera name)&#10;Value: FrameGrabber (camera object)" visibility="private" ownerScope="classifier" type="usELT5EPkFTAY"/>
<UML:Attribute isSpecification="false" xmi.id="u6cDpzouIuCbE" name="IMG_HEIGHT" comment="Height of the image created by the camera.&#10;&#10;The camera currently in use (Arducam 8MP Sony IMX219, SKU B0196) does not support UVC codec declaration, but this is required for OpenCV to function properly." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="600"/>
<UML:Attribute isSpecification="false" xmi.id="uwNi7W5uRzqkt" name="IMG_WIDTH" comment="Width of the image created by the camera.&#10;&#10;The camera currently in use (Arducam 8MP Sony IMX219, SKU B0196) does not support UVC codec declaration, but this is required for OpenCV to function properly." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="800"/>
<UML:Attribute isSpecification="false" xmi.id="ucOvTSRQwQ2kr" name="MAT_CONVERTER" comment="Object used to convert between Mats, Frames, and IplImages. (This is currently only in use for saving to a file)." visibility="private" type="uBAEhogVaCinW"/>
<UML:Attribute isSpecification="false" xmi.id="uOMz2SVLu1Ltn" name="new_attribute" visibility="private" type="ug4xpByAYlb4g"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uPf65fmeKYRyL" name="completeProcess" comment="Process an image from the defined camera, using config defaults, and saving to [defaultImageLocation]/config/" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uQuU38Dl5N11o" type="uLtWoZg2r6vK5" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uR7jYl3RaxL2R" name="cameraName" comment="Name of the camera to start processing." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uN5CzQSYAnEuI" name="completeProcess" comment="Processes image from the given camera, using the config values." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u126wTnwMbCWG" type="uLtWoZg2r6vK5" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uMwpP9q2T4wYn" name="cameraName" comment="Name of the camera to take a picture from." visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="u1ND4CK4bXJtI" name="crop" comment="Whether to crop the image" visibility="private" type="uUFR10GCed46Q" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uRBQMxLH8OVnD" name="threshold" comment="Whether to threshold the image" visibility="private" type="uUFR10GCed46Q" value=""/>
<UML:Parameter isSpecification="false" xmi.id="u1Fh7xxnyMDrY" name="compositeFrames" comment="Number of frames to composite together" visibility="private" type="u6dG093IE5KRR" value=""/>
<UML:Parameter isSpecification="false" xmi.id="umNZq1QFVx6im" name="saveLocation" comment="Name of the outgoing file" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uC99YehW24GIL" name="completeProcess" comment="Process image from defined camera, using config defaults. Saves to a defined location. Assumes you want to both crop and threshold." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uzGpnpa2Z76mf" type="uLtWoZg2r6vK5" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="ukxbjrIFPdlty" name="cameraName" comment="Name of the camera to take a picture from." visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uqfsVlt6I02au" name="saveLocation" comment="Name of the outgoing file" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uDDmEZMsSRNys" name="compose" comment="Compose several images together.&#10;Crops and thresholds image dependent upon boolean toggles." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uAIUXP3ia1zFg" type="uTFuxlA0IbjaA" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="u0ORvqMC53t2d" name="images" comment="List&lt;Mat&gt; of images" visibility="private" type="uF3615aHJR1V4" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uAXF0IcZB524V" name="threshold" comment="Whether to put the image through a binary threshold" visibility="private" type="uUFR10GCed46Q" value=""/>
<UML:Parameter isSpecification="false" xmi.id="ulCCd0HNjjmPf" name="crop" comment="Whether to crop the image" visibility="private" type="uUFR10GCed46Q" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uhHv5Mw6l2Qh9" name="cameraName" comment="Name of the camera the images came from (used to determine crop sizing and threshold value)" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ucT7DSSA4bprm" name="crop" comment="Crop a given image, based on dimensions in the configuration." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uDIMYYQx1eQwO" type="uTFuxlA0IbjaA" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uVkJdNCzCj4Th" name="image" comment="image taken from the camera" visibility="private" type="uTFuxlA0IbjaA" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uPy29ybzmwI8g" name="cameraName" comment="name of the camera the image is from" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uwUQqQE7Opx6e" name="crop" comment="Crop the given image, based on dimentions defined in a Rect" visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uoEUaUEejKtUE" type="uTFuxlA0IbjaA" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="urC5MOrqjl0om" name="image" comment="Image taken from the camera" visibility="private" type="uTFuxlA0IbjaA" value=""/>
<UML:Parameter isSpecification="false" xmi.id="unFlHvwWKrTF3" name="roi" comment="The region of interest to crop the image to" visibility="private" type="uVfGuVVTLsk6z" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u62sIIBKT4rQR" name="getCameraNames" comment="Getter for all camera names.&#10;Returns a Set&lt;String&gt;" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uKdeYXMqbGjQk" type="u3L4GKc1rVusd" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u7dL91xr3ZtpB" name="newCamera" comment="Default camera creator function. Creates a camera, and adds it to the cameraMap. Uses values in constants." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="uDnb6QHMSSPtU" name="name" comment="name of the new camera" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="usHHETqhd8Wwk" name="location" comment="Location of the camera's reference file &#10;&#10;ex. &quot;/dev/video-cam-left&quot;" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uX2PuJKNHcwqe" name="newCamera" comment="Camera creation function, with custom width, height, and codec. Creates the camera as defined, and adds it to cameraMap." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="udmTjZ2q2Cv2z" name="name" comment="Name of the new camera" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uwWjTXEyCp5Sy" name="location" comment="Location of the camera's reference file&#10;&#10;ex. &quot;/dev/video-cam-left&quot;" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uypKW6wHGah1h" name="width" comment="Width of the camera's image, in pixels" visibility="private" type="u6dG093IE5KRR" value=""/>
<UML:Parameter isSpecification="false" xmi.id="ufb393jjo1gVk" name="height" comment="Height of the camera's image, in pixels" visibility="private" type="u6dG093IE5KRR" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uQgwbclt9sIJV" name="codec" comment="Codec the camera's stream is encoded in." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uc06GU5TBKCOt" name="saveImage" comment="Save input image at the location given" visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uM4Rm1KuzT6Ka" type="uLtWoZg2r6vK5" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uYW3QvXbdhgnr" name="image" comment="Image to be saved" visibility="private" type="uTFuxlA0IbjaA" value=""/>
<UML:Parameter isSpecification="false" xmi.id="ujKDeTmACNjnb" name="fileLocation" comment="Where to save the image" visibility="private" type="uAwVIyVVNjSlp" value=""/>
<UML:Parameter isSpecification="false" xmi.id="up5JIVVsnNiEo" name="cameraName" comment="Name of the camera the image came from." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u01Gb7GncAwwu" name="setCrop" comment="Set the crop size and location by way of a pop-up window." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="uF6ZQgcA7Nbkf" name="cameraName" comment="The name of the camera being configured." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uSEB1V0eCxOVI" name="showImage" comment="Show current processed image to the CLI user." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uTHVVfaCWgsOD" type="uLtWoZg2r6vK5" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uKWB5D84on7rM" name="cameraName" comment="The name of the camera being previewed." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uXqgLkMJUXyG9" name="takeBurst" comment="Take multiple pictures in quick succession." visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u3bkQlGIFizpz" type="uF3615aHJR1V4" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uiwK5jPtrdKCx" name="cameraName" comment="Name of the camera to take a picture with" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uuXVAJmIR1Ggc" name="frameCount" comment="Number of images to take" visibility="private" type="u6dG093IE5KRR" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u36iwSk1gAsEL" name="takePicture" comment="Wrapper function for native &quot;take picture&quot; function. Image is immediately converted to greyscale to improve RAM footprint." visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uIYN4pIvHp2Fw" type="uTFuxlA0IbjaA" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uiAjgs8P56QsS" name="cameraName" comment="Name of the camera to take a picture with." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uurFGK0TAq7zx" name="thresholdImage" comment="Put the given image throug ha binary threshold. This reduces the image from greyscale to only pure black and white pixels. &#10;&#10;Uses config values for theshold point." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uq3K7NPa5PffY" type="uTFuxlA0IbjaA" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uE6jLBtja2cZI" name="image" comment="Image taken from the camera" visibility="private" type="uTFuxlA0IbjaA" value=""/>
<UML:Parameter isSpecification="false" xmi.id="u3zbFvmc614rj" name="cameraName" comment="Name of the camera the image came from" visibility="private" type="uAwVIyVVNjSlp" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uekZfs8wb856g" name="thresholdImage" comment="Put the given image through a binary threshold, using the given threshold value." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ugvtWT8GZtUUu" type="uTFuxlA0IbjaA" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="unEzui9kYbZV7" name="image" comment="Image to threshold" visibility="private" type="uTFuxlA0IbjaA" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uN78KesBdRIZZ" name="thresholdValue" comment="Middle of the binary threshold.&#10;&#10;Acceptable values are between 0 and 255.&#10;&#10;Any pixels with a brightness above this value will be made 255 (white).&#10;Any pixels with a brightness below this value will be made 0 (black)." visibility="private" type="uCrL5Q2hyX5sQ" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uowtOePSx4RnM" name="OpenCVFrameConverter" namespace="Logical_View" visibility="public"/>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uaq5wFieCACsK" name="ErrorLogging" namespace="Logical_View" visibility="public">
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="u6zsQtVXJeK9I" name="bw" comment="Object used for buffering file write functions, for improved efficiency." visibility="private" ownerScope="classifier" type="uI35GxgSf15Ke"/>
<UML:Attribute isSpecification="false" xmi.id="uWQEWtZl7G4tJ" name="dateTime" comment="Object used to format the UNIX timestamps in log files into standard ISO format." visibility="private" ownerScope="classifier" type="u3iolu1KBaeLC"/>
<UML:Attribute isSpecification="false" xmi.id="umTPGzsTewAMH" name="fileDatetime" comment="Object used to format UNIX timestamps into a readable, filesystem-safe values." visibility="public" ownerScope="classifier" type="u3iolu1KBaeLC"/>
<UML:Attribute isSpecification="false" xmi.id="uPCAY3ou1J05g" name="fileOut" comment="Object called to write to the log file." visibility="private" ownerScope="classifier" type="uBH80PyFvNP0W"/>
<UML:Attribute isSpecification="false" xmi.id="uwq5HGOI8zXHp" name="fw" comment="Object used to write streams of characters to the file." visibility="private" ownerScope="classifier" type="uBxtki3mYxNXH"/>
<UML:Attribute isSpecification="false" xmi.id="umM0MefO6Nslx" name="logFile" comment="Name of the location for the logfile." visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ubbXibbgDeWRE" name="logError" comment="Logs thrown error, including stack trace if available." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="uBSFjgYjCcXlx" name="error" comment="Error to be logged, including stack trace if available." visibility="private" type="uDuQErHgUBVcM" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uQk2yP91hB32b" name="logError" comment="Logs data manually defined by developer." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="uUpFwPvmqQ5Un" name="error" comment="Any data that the developer wishes to be logged." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uHA8XrxTWFz1A" name="closeLogs" comment="Closes all open logs." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
</UML:Classifier.feature>
</UML:Class>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uAwVIyVVNjSlp" name="String " namespace="Logical_View" visibility="public"/>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uiXctorvzHidz" name="MovementFacade" namespace="Logical_View" visibility="public">
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="urq8f5SKTIpyb" name="LOWER_LIMIT_ADDR" comment="Raspberry Pi GPIO address for the lower limit switch. " visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="24"/>
<UML:Attribute isSpecification="false" xmi.id="uRFPkG1OcyQzH" name="MOTOR_DIRECTION_ADDR" comment="Output pin address for motor direction control." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="27"/>
<UML:Attribute isSpecification="false" xmi.id="uXafv7Bqv1vlj" name="MOTOR_ENABLE_ADDR" comment="Output pin address for motor power control." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="22"/>
<UML:Attribute isSpecification="false" xmi.id="u5pOlwHMbAkbC" name="PISTON_ADDR" comment="Output pin address for piston control." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="25"/>
<UML:Attribute isSpecification="false" xmi.id="uHBe39GldXDOi" name="RUN_SWITCH_ADDR" comment="Input pin address for the run switch." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="10"/>
<UML:Attribute isSpecification="false" xmi.id="u8J4qyzhXYsg3" name="UPPER_LIMIT_ADDR" comment="Input pin address for the upper limit switch." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR" initialValue="23"/>
<UML:Attribute isSpecification="false" xmi.id="umpKaM853vbob" name="lowerLimit" comment="Lower limit switch object.&#10;Active-high." visibility="private" ownerScope="classifier" type="um5BRQatdPbwa"/>
<UML:Attribute isSpecification="false" xmi.id="utwJCIWg03ZAz" name="upperLimit" comment="Upper limit switch object.&#10;Active-high." visibility="private" ownerScope="classifier" type="um5BRQatdPbwa"/>
<UML:Attribute isSpecification="false" xmi.id="uyM1wKLI2qKzr" name="runSwitch" comment="Run switch object. Active-low." visibility="private" ownerScope="classifier" type="um5BRQatdPbwa"/>
<UML:Attribute isSpecification="false" xmi.id="uscGkGT6pA18U" name="motorEnable" comment="Motor enable object. Active-high." visibility="private" ownerScope="classifier" type="u21ZDyvoF16O4"/>
<UML:Attribute isSpecification="false" xmi.id="uhGnDpzud0eKy" name="motorDirection" comment="Motor direction GPIO pin object.&#10;&#10;High drives the motor upwards, low drives the motor downwards." visibility="private" ownerScope="classifier" type="u21ZDyvoF16O4"/>
<UML:Attribute isSpecification="false" xmi.id="uhGqwGvjvNDrF" name="pistonActivate" comment="Piston control GPIO pin object. &#10;&#10;High extends the piston, low retracts the piston." visibility="private" ownerScope="classifier" type="u21ZDyvoF16O4"/>
<UML:Attribute isSpecification="false" xmi.id="uwLa88M9lPXpz" name="pi4j" comment="Pi4J API interaction object. Used to initialise DigitalInput and DigitalOutput objects, closed on exit." visibility="private" ownerScope="classifier" type="uQwi67sMHYYH8"/>
<UML:Attribute isSpecification="false" xmi.id="uw8Hh3G5owLI9" name="lockObject" visibility="private" ownerScope="classifier" type="uM89bZm0VxiTF"/>
<UML:Attribute isSpecification="false" xmi.id="u5XZ0jcUH4n0l" name="SLOW_POLL_FACTOR" visibility="private" ownerScope="classifier" type="uCrL5Q2hyX5sQ"/>
<UML:Attribute isSpecification="false" xmi.id="uIj1qcUBEZ26g" name="runSwitchThread" visibility="private" ownerScope="classifier" type="unl1k1K0LtpWx"/>
<UML:Attribute isSpecification="false" xmi.id="u6ez9ZFRP3VOc" name="TRAVEL_DIST" visibility="private" ownerScope="classifier" type="uCrL5Q2hyX5sQ"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uJW8yFYg3muFK" name="inputBuilder" comment="DigitalInput builder function" visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uHYadjLJgEFgX" type="um5BRQatdPbwa" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uvMQviEQZo2Eo" name="address" comment="BCM-formatted GPIO address" visibility="private" type="u6dG093IE5KRR" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uee8kI2xnR8SV" name="outputBuilder" comment="DigitalOutput builder function." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uQsTrKvIgAcA1" type="u21ZDyvoF16O4" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uRSxQiYkpY2WT" name="address" comment="BCM-formatted GPIO pin address" visibility="private" type="u6dG093IE5KRR" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uxvjOWjAixlgp" name="resetArm" comment="Function used to locate the fixture's motor. Always sends the motor back to the top limit switch, and counts the number of polls it takes to get there." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uwVffPf9Ww8iS" type="u6dG093IE5KRR" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uVMQYGF8r6f7y" name="findDistance" comment="Used to programmatically measure the distance between the upper and lower limit switches, in polls. This is done at initialisation to ensure safe travel with gotoLimit, goDown and goUp" visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uqtEpHdA20MJO" name="gotoLimit" comment="Sends the fixture to a given limit switch. Detects if the limit switch is active before activating the motor." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="uPu78CyGxcxSD" name="moveUp" comment="Whether to send the fixture up or down." visibility="private" type="uUFR10GCed46Q" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uG2ml0g1zFd1n" name="goDown" comment="Sends the fixture to the lower limit switch." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uwCf3NOOs6bOI" name="goUp" comment="Send the fixture to the upper limit switch." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u8UPYdPVsfJ9L" name="pressButton" comment="Extends the piston for 1 second, pushing the button on the DUT." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uKhEpTnM8aYgW" name="iterationMovement" comment="Function to move the fixture once for an iteration." visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="uZ2ov7YVrMOcR" name="prime" comment="Whether or not to wake up the DUT at the upswing of the fixture." visibility="private" type="uUFR10GCed46Q" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uQaAIayfZmRTr" name="closeGPIO" comment="Closes connections to GPIO pins, cleanly." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
</UML:Classifier.feature>
</UML:Class>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uibCosoM5C9ES" name="DataSaving" namespace="Logical_View" comment="Saves AOL data and images to Excel file for easy parsing." visibility="public">
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="uzC7XxxxgdanH" name="outputFile" comment="File object representing the location of the final output file." visibility="private" ownerScope="classifier" type="uLtWoZg2r6vK5"/>
<UML:Attribute isSpecification="false" xmi.id="uE7eAmAP3IyCz" name="outputSheet" comment="Sheet object defining what sheet within the workbook we are working within." visibility="private" ownerScope="classifier" type="uBxtki3mYxNXH"/>
<UML:Attribute isSpecification="false" xmi.id="u4x5QhxYlc4Q1" name="outputWorkbook" comment="Workbook object used for writing to the final Excel (XLSX) file." visibility="private" ownerScope="classifier" type="uCN5vhsamIMZS"/>
<UML:Attribute isSpecification="false" xmi.id="uMgVV2QK7nWJl" name="defaultStyle" comment="Style of a default cell" visibility="private" ownerScope="classifier" type="u1Ano2L3MNqB9"/>
<UML:Attribute isSpecification="false" xmi.id="umBpDgQHPWmCa" name="errorStyle" comment="LEGACY/FAILSAFE&#10;Style of cell if Tesseract can't read the image." visibility="private" ownerScope="classifier" type="u1Ano2L3MNqB9"/>
<UML:Attribute isSpecification="false" xmi.id="uvYBZ8VG7zmXM" name="failStyle" comment="Style of cell if the measurement falls outside of the fail range." visibility="private" ownerScope="classifier" type="u1Ano2L3MNqB9"/>
<UML:Attribute isSpecification="false" xmi.id="uVbaYwGBhwkJg" name="finalValuesStyle" comment="Style of the total cells (sets typing to 0.000%)" visibility="private" ownerScope="classifier" type="u1Ano2L3MNqB9"/>
<UML:Attribute isSpecification="false" xmi.id="uhHak0Hz9SDbD" name="targetTemp" comment="Target temperature for current testing with DUT" visibility="private" ownerScope="classifier" type="uCrL5Q2hyX5sQ"/>
<UML:Attribute isSpecification="false" xmi.id="uDq6GDbPZQ92T" name="failRange" comment="Range for a measurement to still be considered passable. Any deviation beyond this range will be marked as a fail." visibility="private" ownerScope="classifier" type="uCrL5Q2hyX5sQ"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uPYVGaXG16zfz" name="initWorkbook" comment="Prepares to write to XLSX file, with default fail values." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uOyMsgJQ3uhAt" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="u5InZFqzu01qE" name="filename" comment="Name of the output XLSX file" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="ussUg1YCy3NRT" name="camCount" comment="The number of cameras being tested. (Defines the number of columns being written to)" visibility="private" type="u6dG093IE5KRR" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uo6AU3IofbYX5" name="initWorkbook" comment="Prepares writer to write to XLSX file, with custom fail values." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="umV834GzpS94i" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uKmkfQTRVGLoC" name="filename" comment="Name of the file being written to. Must contain &quot;.xlsx&quot; at the end." visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uw43sVj5qbLdf" name="camCount" comment="Number of cameras being tested." visibility="private" type="u6dG093IE5KRR" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uaMjVr7aY2UHn" name="targetTemp" comment="Custom target temperature" visibility="private" type="uCrL5Q2hyX5sQ" value=""/>
<UML:Parameter isSpecification="false" xmi.id="u893tvV9CIwAn" name="failRange" comment="Custom fail range." visibility="private" type="uCrL5Q2hyX5sQ" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u9NyH522SeaSa" name="writeValues" comment="Writes lines to XLSX file" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="unzm4MyNzq6pJ" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="u4Ks6ez5d52QZ" name="cycle" visibility="private" type="u5zlGNA1TIUxI" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uRKyCXyK0f63Z" name="serials" visibility="private" type="usELT5EPkFTAY" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ujgCbuqZ9xilL" name="updateFormulas" comment="Add final totals to the excel document." visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="u6iuBFu0ia6vG" name="cameraCount" comment="The number of cameras being used." visibility="private" type="u6dG093IE5KRR" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uASDoshKBmmnI" name="Cli" namespace="Logical_View" visibility="public">
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="uUzCr6SEgyYZ9" name="cameraMenuOptionCount" comment="Number of options currently available in the camera configuration sub-menu." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR"/>
<UML:Attribute isSpecification="false" xmi.id="uJYu4rRYxz5ws" name="camerasConfigured" comment="Whether the user has manually configured the cameras" visibility="private" ownerScope="classifier" type="uUFR10GCed46Q"/>
<UML:Attribute isSpecification="false" xmi.id="uzuN6tEl319Xv" name="inputScanner" comment="Scanner used for reading user input." visibility="private" ownerScope="classifier" type="uyTBx9P7f4VjF"/>
<UML:Attribute isSpecification="false" xmi.id="uISY0qW0xwIqT" name="iterationCount" comment="Currently saved number of iterations to complete." visibility="private" ownerScope="classifier" type="u6dG093IE5KRR"/>
<UML:Attribute isSpecification="false" xmi.id="udfHHyUsieAgq" name="mainMenuOptionCount" comment="Number of options currently available in the main menu" visibility="private" ownerScope="classifier" type="u6dG093IE5KRR"/>
<UML:Attribute isSpecification="false" xmi.id="uUuRFZr3zxnGm" name="saveGPIO" visibility="private" ownerScope="classifier" type="uUFR10GCed46Q"/>
<UML:Attribute isSpecification="false" xmi.id="uWzO1KfycXL5N" name="serialsSet" comment="Whether the user has successfully set the serial numbers for all cameras." visibility="private" ownerScope="classifier" type="uUFR10GCed46Q"/>
<UML:Attribute isSpecification="false" xmi.id="uRu45R8iQt93b" name="version" comment="Complete build version number" visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uyVuteB0NjFu3" name="configureCameras" comment="Function that allows the user to modify config values." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ueXiZq5immd11" name="setActiveCameras" comment="Allows the user to modify which cameras are active." visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ugVhQ3rXtZwsn" name="setDUTSerials" comment="Allows the user to define serial numbers for the devices under test." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uqOvbu5MwQyvo" name="setIterationCount" comment="Allows the user to change the number of iterations runTests will take" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uO6c4HgKt99TZ" name="runTests" comment="Tests the DUTs for the set number of iterations, using the configured settings for each camera, if active. Saves values to XLSX file after every iteration." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
</UML:Classifier.feature>
</UML:Class>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ug4xpByAYlb4g" name="ConfigFacade" namespace="Logical_View" visibility="public">
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="uK88kcnvrmoo8" name="CONFIG_BUILDER" comment="Builder for the main Configuration object." visibility="private" ownerScope="classifier" type="u53NpBDIiJKLh"/>
<UML:Attribute isSpecification="false" xmi.id="uYWpaHvh5Ea8c" name="CONFIG_STORE" comment="Object used for reading and writing config values" visibility="private" ownerScope="classifier" type="ue50uK6Axr5uJ"/>
<UML:Attribute isSpecification="false" xmi.id="uzoFZpXOdvl6c" name="configFileLocation" comment="Location for the current config to be saved to" visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B"/>
<UML:Attribute isSpecification="false" xmi.id="u3udpeyVwdpDa" name="CONFIG_MAP" comment="Map of all config values relating to all cameras available to the system.&#10;&#10;Key: String of the name of the camera&#10;Value: Map&lt;ConfigProperties,Double&gt; of config values&#10;&#10;Config value map:&#10;Key: ConfigProperties object of the name of the config value&#10;Value: Double of the config value" visibility="private" ownerScope="classifier" type="usELT5EPkFTAY"/>
<UML:Attribute isSpecification="false" xmi.id="uuuHPOIAKL8w4" name="DUT_SERIALS" comment="Map&lt;String,String&gt; of serial numbers.&#10;&#10;Key: String of the camera the serial is associated with&#10;Value: String of the serial&#10;&#10;Note that this is NOT saved to config file, and needs to be set at runtime." visibility="private" ownerScope="classifier" type="usELT5EPkFTAY"/>
<UML:Attribute isSpecification="false" xmi.id="uy1aedRJTGkRH" name="imageSaveLocation" comment="Location to save images to&#10;&#10;Defaults to being set to &quot;images-&quot;, followed by the current UNIX timestamp, parsed by ErrorLogging's DateTimeFormatter" visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B"/>
<UML:Attribute isSpecification="false" xmi.id="ukpfsZ1jA7ptq" name="outputSaveLocation" comment="Location to save the output XLSX file to.&#10;&#10;Defaults to &quot;outputData/&quot;, followed by the current UNIX timestamp, formatted by ErrorLogging's DateTimeFormatter, followed by &quot;.xlsx&quot;" visibility="private" ownerScope="classifier" type="uMYRTkE3rxR2B"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ulFBJ7Xj4FHo2" name="getImgSaveLocation" comment="Getter for imageSaveLocation" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uxiP8D0r2aGiU" type="uMYRTkE3rxR2B" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uzbbqdUp01Lwd" name="getOutputSaveLocation" comment="Getter for outputSaveLocation" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uTQeRF5HMEMEn" type="uMYRTkE3rxR2B" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="udSCxWCrJnTGT" name="getSerial" comment="Getter for a given camera's serial. Contains safeties if fed invalid value." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uErIaoRFwjeKv" type="uMYRTkE3rxR2B" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uv5x5UvIC5KI7" name="cameraName" comment="name of the camera to get the serial of" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u4T9xVeA4FbwR" name="getSerials" comment="Getter for all serials simultaneously. Simply returns the DUT_SERIALS Map" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ui20ImTBDNDsC" type="usELT5EPkFTAY" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uEcXRa7ddJv27" name="getValue" comment="Get a config value for a given camera and config property." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uGjvIjlQX6smJ" type="uCrL5Q2hyX5sQ" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uFB42KFheOAva" name="cameraName" comment="Name of the camera to get a config value from" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="u5opjvEWBPXDY" name="property" comment="The config value to get the value of" visibility="private" type="uWQfGitACJCjJ" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uHFyReuYzlHTQ" name="init" comment="Forces calling of the static block, which initialises all config and camera values." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="upIArGqbH8mx4" name="loadConfig" comment="Loads config from the default file location" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uYPO1ZvUXh7WQ" type="uUFR10GCed46Q" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u78RFO4jh0MkX" name="loadConfig" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uszRz85SW6GV6" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uMQ1pC0d6ebfL" name="filename" comment="Load cofig from a user-defined file location" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uCCqp6UFmUyQ1" name="saveCurrentConfig" comment="Saves the currently stored config values to the default config file location." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u6E6RDtfX8LLB" type="uUFR10GCed46Q" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uAPxkDLLjHK1c" name="saveCurrentConfig" comment="Saves current config values stored in Map to config value at defined location." visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ujJS48Fb46GPi" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uWYoTyzvyTpF3" name="filename" comment="Location to store the file name." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uMTZvohhrmNdr" name="saveDefaultConfig" comment="Saves all default config values to the default config file location" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uxP0UtOILAxOE" type="uUFR10GCed46Q" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ugfPMBYLfMP4j" name="saveDefaultConfig" comment="Save the default config values to a defined file location" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u8tY4D4fVy8Zn" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="ui7RXLtWyBlKS" name="filename" comment="String of the path to the config file" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uiM7IsLx84uSj" name="saveSingleDefault" comment="Save defaults for a single camera's config. Used if a camera's section fails to import properly." visibility="private" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uO9udh69EuNSK" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="u8CPDQtvknRJZ" name="sectionName" comment="Name of the section to use for the config file. Generally, the name of the camera is best here." visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uMZJZTzMHcotL" name="setImgSaveLocation" comment="Setter for imageSaveLocation" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u8XuWBPhcm59f" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uaxFFAXxAfQEM" name="path" comment="New location to save images to" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u6MfKFmI49XW5" name="setOutputSaveLocation" comment="Set new outputSaveLocation" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uqkSM9TBK4dW9" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uTHrToi7wrE2L" name="path" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uhW0WK7Tw8jzd" name="setSerial" comment="Setter for a given camera's serial" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="uc8z62UudvfjS" name="cameraName" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uvdtZ6aVREsSB" name="serial" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="unEABXT4EkoL0" name="setValue" comment="Set a given config value" visibility="public" ownerScope="classifier" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ukh372KTfVlpM" type="uUFR10GCed46Q" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="u9TtRnOedkgzv" name="cameraName" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uCAEFKqXacTw1" name="property" visibility="private" type="uWQfGitACJCjJ" value=""/>
<UML:Parameter isSpecification="false" xmi.id="ul2ggZnW99rFO" name="propertyValue" visibility="private" type="uCrL5Q2hyX5sQ" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Dependency isSpecification="false" xmi.id="uXN1BN0GV1sOO" name="" namespace="Logical_View" visibility="public" client="uASDoshKBmmnI" supplier="uaq5wFieCACsK"/>
<UML:Association isSpecification="false" xmi.id="ufVuXCbh7WYK2" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="ufG3pSk1SKohW" name="" visibility="public" type="uiXctorvzHidz" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="ulIljB7WN0hpv" name="" visibility="public" type="uASDoshKBmmnI" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uFQHhlu4UvkaL" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uVV13Z0K0pfGl" name="" visibility="public" type="uibCosoM5C9ES" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uNT9oYKZWDwXm" name="" visibility="public" type="uASDoshKBmmnI" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uap4suMGCLeCk" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="udq3aHW0YgKwc" name="" visibility="public" type="uszTbwciTSOHV" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="ujQHEeP3d88rs" name="" visibility="public" type="uASDoshKBmmnI" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="ukKLaia3BwRNX" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uuYYYbWEpX3L3" name="" visibility="public" type="uASDoshKBmmnI" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uTTRn8PUCG6ad" name="" visibility="public" type="uaq5wFieCACsK" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uKW1u6KgeRDgn" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uSSO9X4xxvio2" name="" visibility="public" type="uibCosoM5C9ES" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uCrk9GVLqQO49" name="" visibility="public" type="uaq5wFieCACsK" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uc8C2BLIJHK0G" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="u7ONJuRnrjWI1" name="" visibility="public" type="uszTbwciTSOHV" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uzKjkK010ZEEC" name="" visibility="public" type="uaq5wFieCACsK" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uLs8aBwCPR9JO" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="u6T6s97Zkb5ER" name="" visibility="public" type="uxutGWImUrqt7" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uowALOxlNiLp9" name="" visibility="public" type="uaq5wFieCACsK" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uTXwkZwtw4Owy" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uLXW1uiVPaV1X" name="" visibility="public" type="uiXctorvzHidz" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uQS00xfmZ7MOQ" name="" visibility="public" type="uaq5wFieCACsK" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uKog7kDugs8CU" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uqmKcgUDUR4zh" name="" visibility="public" type="ug4xpByAYlb4g" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="ulEIGnd3tlnUp" name="" visibility="public" type="uaq5wFieCACsK" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uVrVd7A3nurBb" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uCUjAkl3ebguI" name="" visibility="public" type="uxutGWImUrqt7" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uFMIyq4h1Z9c1" name="" visibility="public" type="ug4xpByAYlb4g" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uioSMAcQvYPfi" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="u3nIVPSv3UA5j" name="" visibility="public" type="uiXctorvzHidz" aggregation="aggregate" isNavigable="true" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="ui4WogQYp8Bkg" name="" visibility="public" type="uhoYk9h6KpMug" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uUp8HrO15CIOb" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="u3X2XjZtVvr6k" name="" visibility="public" type="uASDoshKBmmnI" aggregation="aggregate" isNavigable="true" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uOEoKbTATGhYn" name="" visibility="public" type="uX8xl8SknIiop" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uZc4lhkas1Vfk" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uMNSmulO71Ugi" name="" visibility="public" type="ug4xpByAYlb4g" aggregation="composite" isNavigable="true" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uQgKbf2iZ9cWF" name="" visibility="public" type="uWQfGitACJCjJ" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="ulUdSMdHOaAMr" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="utkS04H8BCLRn" name="" visibility="public" type="ug4xpByAYlb4g" aggregation="aggregate" isNavigable="true" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uzuDnzIeFQJxG" name="" visibility="public" type="uxutGWImUrqt7" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uvPcP5cThe9rj" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uAuOIPHflkEc9" name="" visibility="public" type="ug4xpByAYlb4g" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="u4LYMCXHlVqQw" name="" visibility="public" type="uxutGWImUrqt7" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="uO3xvwmYWNdKR" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uepcDPWbhWz32" name="" visibility="public" type="ug4xpByAYlb4g" aggregation="aggregate" isNavigable="true" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uFwoPWPXU70RM" name="" visibility="public" type="uxutGWImUrqt7" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Dependency isSpecification="false" xmi.id="ucWLS2nI22dTr" name="" namespace="Logical_View" visibility="public" client="uxutGWImUrqt7" supplier="ug4xpByAYlb4g"/>
<UML:Dependency isSpecification="false" xmi.id="uz5F0wPS9mOfj" name="" namespace="Logical_View" visibility="public" client="uxutGWImUrqt7" supplier="ug4xpByAYlb4g"/>
<UML:Dependency isSpecification="false" xmi.id="u3dAqlz5DSrs6" name="" namespace="Logical_View" visibility="public" client="uxutGWImUrqt7" supplier="ug4xpByAYlb4g"/>
<UML:Dependency isSpecification="false" xmi.id="uP0Nsf579P77J" name="" namespace="Logical_View" visibility="public" client="ug4xpByAYlb4g" supplier="uxutGWImUrqt7"/>
<UML:Dependency isSpecification="false" xmi.id="u3X2FwLg3QzNS" name="" namespace="Logical_View" visibility="public" client="uxutGWImUrqt7" supplier="ug4xpByAYlb4g"/>
<UML:Association isSpecification="false" xmi.id="uEHQtFiKt4wTh" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uYDCTWWrXQLXh" name="" visibility="public" type="uhoYk9h6KpMug" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uOO4WzH2mhUVJ" name="" visibility="public" type="uASDoshKBmmnI" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uPZ2OxFSIzrmJ" name="Pair" namespace="Logical_View" visibility="public">
<UML:ModelElement.templateParameter>
<UML:TemplateParameter isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uxIGOhPnoqNim" name="E" namespace="uPZ2OxFSIzrmJ" visibility="public"/>
<UML:TemplateParameter isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uX3HQOqEHkSlc" name="F" namespace="uPZ2OxFSIzrmJ" visibility="public"/>
</UML:ModelElement.templateParameter>
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="uHrDkKm3PeH1s" name="first" visibility="private" type="uxIGOhPnoqNim"/>
<UML:Attribute isSpecification="false" xmi.id="uf9kGRTI07FJX" name="second" visibility="private" type="uX3HQOqEHkSlc"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uK3JECu9yEtUu" name="first" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uvOFalOvpkuie" type="uxIGOhPnoqNim" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uDPnfslulO3qC" name="second" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uDeDpdJkfTMUR" type="uX3HQOqEHkSlc" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u5zlGNA1TIUxI" name="Cycle" namespace="Logical_View" visibility="public">
<UML:Classifier.feature>
<UML:Attribute isSpecification="false" xmi.id="ufcCmNjB6gcIk" name="cycleNumber" visibility="private" type="u6dG093IE5KRR"/>
<UML:Attribute isSpecification="false" xmi.id="uch8O6Cvr89Gy" name="cycleValues" visibility="private" type="usELT5EPkFTAY"/>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uBSyBvgUpupEZ" name="addCamera" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" xmi.id="uJCfconGkavVp" name="cameraName" visibility="private" type="uMYRTkE3rxR2B" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uSYpxKiK4dzSi" name="image" visibility="private" type="uLtWoZg2r6vK5" value=""/>
<UML:Parameter isSpecification="false" xmi.id="uoenRF9It65hI" name="parsedValue" visibility="private" type="uQwhrzourTSFc" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uy9jwgXEd8dlG" name="getCameras" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uxvzGh2wYMawm" type="u3L4GKc1rVusd" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="ugiwF5RHovUV1" name="getCycleNumber" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uWahzHBbLCVeg" type="u6dG093IE5KRR" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uYhXJlitbQ0Wd" name="getImage" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uLEzjJsoSxvzm" type="uLtWoZg2r6vK5" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uUt39HtI13XYD" name="cameraName" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="u92Y4zCRcnIuQ" name="getValue" visibility="public" isQuery="false" isOverride="false" isVirtual="false" isInline="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uzWDqi37BCYrG" type="uQwhrzourTSFc" kind="return"/>
<UML:Parameter isSpecification="false" xmi.id="uaabTl9urHKEP" name="cameraName" visibility="private" type="uMYRTkE3rxR2B" value=""/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Association isSpecification="false" xmi.id="uf4XoD9xly9mQ" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uE12fE6r4HCgp" name="" visibility="public" type="u5zlGNA1TIUxI" aggregation="aggregate" isNavigable="true" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uS75s6Pp15MvI" name="" visibility="public" type="uPZ2OxFSIzrmJ" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="ujgxL9aiQMXct" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uOefcXjfWLN4N" name="" visibility="public" type="u5zlGNA1TIUxI" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uBWiE1JRd7YAa" name="" visibility="public" type="uASDoshKBmmnI" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="ukfbHRahfLOes" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uuh6ofZ1co0zO" name="" visibility="public" type="u5zlGNA1TIUxI" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="ug9hcvzILFIzE" name="" visibility="public" type="uibCosoM5C9ES" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Class isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="uM89bZm0VxiTF" name="Object" namespace="Logical_View" visibility="public"/>
<UML:Association isSpecification="false" xmi.id="ubaqaNPrCNdJV" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="ueJvl4sP5FN1F" name="" visibility="public" type="uxutGWImUrqt7" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="ur0zfXiTu3KPc" name="" visibility="public" type="uASDoshKBmmnI" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Association isSpecification="false" xmi.id="u8i7cy4F8o8oG" name="" namespace="Logical_View" visibility="public">
<UML:Association.connection>
<UML:AssociationEnd isSpecification="false" xmi.id="uhmmsS3mkSj4R" name="" visibility="public" type="ug4xpByAYlb4g" aggregation="none" isNavigable="false" visibility="public" changeability="changeable"/>
<UML:AssociationEnd isSpecification="false" xmi.id="uPYCMzg0ExCTQ" name="" visibility="public" type="uASDoshKBmmnI" aggregation="none" isNavigable="true" visibility="public" changeability="changeable"/>
</UML:Association.connection>
</UML:Association>
<UML:Dependency isSpecification="false" xmi.id="uZdiWkHbT8Gao" name="" namespace="Logical_View" visibility="public" client="uxutGWImUrqt7" supplier="ug4xpByAYlb4g"/>
</UML:Namespace.ownedElement>
<XMI.extension xmi.extender="umbrello">
<diagrams resolution="96">
<diagram xmi.id="ugFPcmQ7CwNNq" name="class diagram" type="1" documentation="" backgroundcolor="#ffffff" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" griddotcolor="#f7f7f7" linecolor="#ff0000" linewidth="0" textcolor="#000000" usefillcolor="1" showattribassocs="1" showatts="1" showattsig="1" showops="1" showopsig="1" showpackage="1" showpubliconly="0" showscope="1" showstereotype="1" localid="-1" showgrid="0" snapgrid="1" snapcsgrid="1" snapx="25" snapy="25" zoom="26" canvasheight="2150" canvaswidth="4250" isopen="1">
<widgets>
<classwidget xmi.id="uszTbwciTSOHV" localid="uQnxDuwCJOmuk" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-750" y="-2050" width="325" height="125" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
<classwidget xmi.id="uxutGWImUrqt7" localid="u3FvK74CP9OuR" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-2725" y="-2575" width="800" height="450" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
<classwidget xmi.id="uiXctorvzHidz" localid="uLiRb2YG1VG8K" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-1700" y="-2600" width="300" height="525" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
<classwidget xmi.id="uaq5wFieCACsK" localid="utTVEj0tLPGMU" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-1150" y="-1475" width="250" height="200" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
<classwidget xmi.id="ug4xpByAYlb4g" localid="uLPr6mHfmL3pP" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-3800" y="-2750" width="600" height="450" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
<enumwidget xmi.id="uhoYk9h6KpMug" localid="uDk5BfSOCFAmP" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-1325" y="-2375" width="225" height="150" isinstance="0" showstereotype="1" showpackage="1"/>
<classwidget xmi.id="uibCosoM5C9ES" localid="uLRmfkjwNcYQ8" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-175" y="-1700" width="625" height="275" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
<classwidget xmi.id="uASDoshKBmmnI" localid="uNMJwVle2L3hj" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-1150" y="-3425" width="225" height="275" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
<classwidget xmi.id="uPZ2OxFSIzrmJ" localid="uoQ3aLFZBrsk3" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="300" y="-2400" width="100" height="150" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
<enumwidget xmi.id="uWQfGitACJCjJ" localid="uvgQlVPQtZNew" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-3675" y="-2100" width="450" height="250" isinstance="0" showstereotype="1" showpackage="1"/>
<enumwidget xmi.id="uX8xl8SknIiop" localid="uYhQlSESoApG7" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-300" y="-3375" width="100" height="125" isinstance="0" showstereotype="1" showpackage="1"/>
<classwidget xmi.id="u5zlGNA1TIUxI" localid="uBKxmsOFUymPc" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-250" y="-2425" width="450" height="150" isinstance="0" showstereotype="1" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601" showstereotype="1"/>
</widgets>
<messages/>
<associations>
<assocwidget xmi.id="uf4XoD9xly9mQ" localid="uS3V59A9qFGq8" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uf4XoD9xly9mQ" type="501" widgetaid="u5zlGNA1TIUxI" widgetbid="uPZ2OxFSIzrmJ" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="200" starty="-2297.32"/>
<endpoint endx="300" endy="-2297.32"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ubaqaNPrCNdJV" localid="uUCwJJtopztpb" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="ubaqaNPrCNdJV" type="512" widgetaid="uxutGWImUrqt7" widgetbid="uASDoshKBmmnI" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-1925" starty="-2575"/>
<endpoint endx="-1150" endy="-3275.73"/>
<point x="-1575" y="-3275"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ujgxL9aiQMXct" localid="uEwT4Oypx2uvP" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="ujgxL9aiQMXct" type="512" widgetaid="u5zlGNA1TIUxI" widgetbid="uASDoshKBmmnI" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-176.253" starty="-2425"/>
<endpoint endx="-925" endy="-3204.8"/>
<point x="-175" y="-3200"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ukfbHRahfLOes" localid="ulv0BU9dhG1PO" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="ukfbHRahfLOes" type="512" widgetaid="u5zlGNA1TIUxI" widgetbid="uibCosoM5C9ES" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-100" starty="-2275"/>
<endpoint endx="-100" endy="-1700"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uFQHhlu4UvkaL" localid="urt4vcFgpRPqJ" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uFQHhlu4UvkaL" type="512" widgetaid="uibCosoM5C9ES" widgetbid="uASDoshKBmmnI" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-175" starty="-1700"/>
<endpoint endx="-925" endy="-3179.01"/>
<point x="-625" y="-3175"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ufVuXCbh7WYK2" localid="uugEkN7L2q5id" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="ufVuXCbh7WYK2" type="512" widgetaid="uiXctorvzHidz" widgetbid="uASDoshKBmmnI" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-1476.66" starty="-2600"/>
<endpoint endx="-1150" endy="-3202.65"/>
<point x="-1475" y="-3200"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ukKLaia3BwRNX" localid="uEZ6cctkhKgWz" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="ukKLaia3BwRNX" type="512" widgetaid="uASDoshKBmmnI" widgetbid="uaq5wFieCACsK" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-950" starty="-3150"/>
<endpoint endx="-950" endy="-1475"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uKW1u6KgeRDgn" localid="uACEtNHjr8EWw" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uKW1u6KgeRDgn" type="512" widgetaid="uibCosoM5C9ES" widgetbid="uaq5wFieCACsK" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-175" starty="-1453.15"/>
<endpoint endx="-900" endy="-1453.15"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uLs8aBwCPR9JO" localid="us7dScq2zCSEF" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uLs8aBwCPR9JO" type="512" widgetaid="uxutGWImUrqt7" widgetbid="uaq5wFieCACsK" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-1925" starty="-2125"/>
<endpoint endx="-1150" endy="-1425.58"/>
<point x="-1450" y="-1425"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uZc4lhkas1Vfk" localid="uxMrddTD3o582" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uZc4lhkas1Vfk" type="510" widgetaid="ug4xpByAYlb4g" widgetbid="uWQfGitACJCjJ" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-3351.13" starty="-2300"/>
<endpoint endx="-3351.13" endy="-2100"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uc8C2BLIJHK0G" localid="uljndW77L3tNW" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uc8C2BLIJHK0G" type="512" widgetaid="uszTbwciTSOHV" widgetbid="uaq5wFieCACsK" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-750" starty="-1925"/>
<endpoint endx="-900" endy="-1475"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uap4suMGCLeCk" localid="uBy6q1R7CpMMX" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uap4suMGCLeCk" type="512" widgetaid="uszTbwciTSOHV" widgetbid="uASDoshKBmmnI" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-750" starty="-2050"/>
<endpoint endx="-925" endy="-3150"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uTXwkZwtw4Owy" localid="u9vjc6YYUqofM" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uTXwkZwtw4Owy" type="512" widgetaid="uiXctorvzHidz" widgetbid="uaq5wFieCACsK" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-1400" starty="-2127.94"/>
<endpoint endx="-1076.87" endy="-1475"/>
<point x="-1075" y="-2125"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uUp8HrO15CIOb" localid="uZHrr1jcAn3eT" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uUp8HrO15CIOb" type="501" widgetaid="uASDoshKBmmnI" widgetbid="uX8xl8SknIiop" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-925" starty="-3382.14"/>
<endpoint endx="-300" endy="-3375"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uioSMAcQvYPfi" localid="uDj4Cxv3puzua" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uioSMAcQvYPfi" type="501" widgetaid="uiXctorvzHidz" widgetbid="uhoYk9h6KpMug" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-1400" starty="-2257.26"/>
<endpoint endx="-1325" endy="-2257.26"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uKog7kDugs8CU" localid="upqldLOvq0Uox" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uKog7kDugs8CU" type="512" widgetaid="ug4xpByAYlb4g" widgetbid="uaq5wFieCACsK" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-3200" starty="-2300"/>
<endpoint endx="-1150" endy="-1378.88"/>
<point x="-2250" y="-1375"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uZdiWkHbT8Gao" localid="up89hD4TNH275" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="uZdiWkHbT8Gao" type="502" widgetaid="uxutGWImUrqt7" widgetbid="ug4xpByAYlb4g" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-2725" starty="-2575"/>
<endpoint endx="-3200" endy="-2575"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="u8i7cy4F8o8oG" localid="u9MiUXVSeTKwi" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" xmi.id="u8i7cy4F8o8oG" type="512" widgetaid="ug4xpByAYlb4g" widgetbid="uASDoshKBmmnI" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-3200" starty="-2750"/>
<endpoint endx="-1150" endy="-3301.53"/>
<point x="-1875" y="-3300"/>
</linepath>
</assocwidget>
</associations>
</diagram>
<diagram xmi.id="uucBDfma2hRQg" name="activity diagram" type="6" documentation="" backgroundcolor="#ffffff" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" griddotcolor="#f7f7f7" linecolor="#ff0000" linewidth="0" textcolor="#000000" usefillcolor="1" showattribassocs="1" showatts="1" showattsig="1" showops="1" showopsig="1" showpackage="1" showpubliconly="0" showscope="1" showstereotype="1" localid="-1" showgrid="0" snapgrid="0" snapcsgrid="0" snapx="25" snapy="25" zoom="70" canvasheight="661.5" canvaswidth="1616.27" isopen="0">
<widgets>
<activitywidget xmi.id="uepLzsA8b3T2G" localid="u5XRXcu6W6hx8" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9284" y="-11755" width="106" height="28" isinstance="0" showstereotype="1" activityname="Initialisation" documentation="import config, initialise cameras if available, initialise GPIO objects, measure travel time between limit switches" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="u4qhkcGWjx0Z2" localid="uh3sr8Nu68Btz" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-8984.87" y="-11471.3" width="85" height="28" isinstance="0" showstereotype="1" activityname="Show Help" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="utaWvp4BKKTSY" localid="u48aLE7dXqRpC" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9433.47" y="-11750.7" width="15" height="15" isinstance="0" showstereotype="1" activityname="" documentation="" precondition="" postcondition="" activitytype="0"/>
<activitywidget xmi.id="uZOnS5TAVhjv7" localid="u07ckx4k2Lw0d" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9379.47" y="-11334.7" width="186" height="28" isinstance="0" showstereotype="1" activityname="Modify Test Iteration Count" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="uoZpsEuPGbfss" localid="uFwuKkq1BJA2Q" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9031.28" y="-11374.4" width="78" height="28" isinstance="0" showstereotype="1" activityname="Run Tests" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="uarZBweRU7wd6" localid="uG6PU1egku7Dn" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-10256.9" y="-11565.9" width="145" height="28" isinstance="0" showstereotype="1" activityname="Change Crop Region" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="umiDjfUhbMOwt" localid="uUQIrRvJaBGpK" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9129.49" y="-11581.1" width="50" height="28" isinstance="0" showstereotype="1" activityname="Exit" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="upwxIMLgN3hSA" localid="urpbh9yI266fy" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9530.67" y="-11415.8" width="136" height="28" isinstance="0" showstereotype="1" activityname="Serial Config Menu" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="u6XadL9ZPQwHa" localid="u9daJY7N39uLh" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9283" y="-11670" width="89" height="28" isinstance="0" showstereotype="1" activityname="Main Menu" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="uCqKX6TCSCpXM" localid="uJYOkWFEJlU7O" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-8994.43" y="-11571.8" width="15" height="15" isinstance="0" showstereotype="1" activityname="" documentation="" precondition="" postcondition="" activitytype="2"/>
<activitywidget xmi.id="u7jJyZeXXFARP" localid="uBAR1XGySOalu" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9246.58" y="-11577.7" width="20" height="20" isinstance="0" showstereotype="1" activityname="" documentation="" precondition="" postcondition="" activitytype="4"/>
<activitywidget xmi.id="u2aoq9GDhbpaK" localid="ushpUPxiXmNzZ" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-10064.4" y="-11482.6" width="190" height="28" isinstance="0" showstereotype="1" activityname="Single Camera Config Menu" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="uvK8RZBDYcUat" localid="uaafnHGQySOhV" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9949.96" y="-11713.8" width="93" height="28" isinstance="0" showstereotype="1" activityname="Toggle Crop" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="ua9DlygPIIB8m" localid="ugX8ADiDQcicO" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9705.82" y="-11295.9" width="127" height="28" isinstance="0" showstereotype="1" activityname="Set Camera Serial" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="uSGoWtxQCg0k2" localid="upcptR2V91bVU" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-10148.7" y="-11712.7" width="168" height="28" isinstance="0" showstereotype="1" activityname="Change Threshold Value" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="udjrjPXZeOKKH" localid="uqVJoINGOmVB0" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="0" x="-9591.98" y="-11470.4" width="20" height="20" isinstance="0" showstereotype="1" activityname="" documentation="" precondition="" postcondition="" activitytype="4"/>
<activitywidget xmi.id="ubZ4pDJ3kcyxb" localid="uRQS22kU7J4A2" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9636.16" y="-11543.5" width="149" height="28" isinstance="0" showstereotype="1" activityname="Camera Config Menu" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="uyKzq99c7CWsm" localid="uQjv0Pxq2yg6m" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9166.86" y="-11308.1" width="136" height="28" isinstance="0" showstereotype="1" activityname="Set Active Cameras" documentation="" precondition="" postcondition="" activitytype="1"/>
<forkjoin xmi.id="u6WQ1b7oGA4c2" localid="u5kZV3v2HF6PH" textcolor="#000000" linecolor="#000000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#000000" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9212.54" y="-11154.4" width="40" height="10" isinstance="0" showstereotype="1" drawvertical="0"/>
<activitywidget xmi.id="uU845hGQ6nmrY" localid="uirPMk1U3Vw6f" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-10279.8" y="-11654.4" width="218" height="28" isinstance="0" showstereotype="1" activityname="Change Composite Frame Count" documentation="" precondition="" postcondition="" activitytype="1"/>
<forkjoin xmi.id="uny0qCP8Z5lMr" localid="uuxo1VUioypl2" textcolor="#000000" linecolor="#000000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#000000" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-10491" y="-11599.6" width="10" height="40" isinstance="0" showstereotype="1" drawvertical="1"/>
<activitywidget xmi.id="usB5uQzBGoXUG" localid="uGHCBbVWAxUG7" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="0" x="-9982.01" y="-11554.9" width="20" height="20" isinstance="0" showstereotype="1" activityname="" documentation="" precondition="" postcondition="" activitytype="4"/>
<activitywidget xmi.id="uP7MbJInaiZnU" localid="ukTj3tsaXdQfA" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9722.71" y="-11621.7" width="85" height="28" isinstance="0" showstereotype="1" activityname="Show Help" documentation="" precondition="" postcondition="" activitytype="1"/>
<activitywidget xmi.id="uT7gc9aQzA8Gc" localid="utxieKBUsD7Bu" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9470.12" y="-11334.6" width="20" height="20" isinstance="0" showstereotype="1" activityname="" documentation="" precondition="" postcondition="" activitytype="4"/>
<activitywidget xmi.id="urSjINbD3NuEq" localid="uZP6Fqm3pIj4p" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9891.56" y="-11663.2" width="162" height="28" isinstance="0" showstereotype="1" activityname="Toggle Threshold Value" documentation="" precondition="" postcondition="" activitytype="1"/>
</widgets>
<messages/>
<associations>
<assocwidget xmi.id="uVuEoV7VVslZm" localid="u6FnJ2KZYMaU4" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="usB5uQzBGoXUG" widgetbid="uU845hGQ6nmrY" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="u8tfKLSfEeQ0z" localid="uL2zJqkXRlSda" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-10031.6" y="-11589.1" width="15" height="22" isinstance="0" showstereotype="1" text="2" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9982.01" starty="-11554.9"/>
<endpoint endx="-10061.8" endy="-11626.4"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ucAQSnDX1iCeI" localid="uMlCIJS5wSfRY" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u7jJyZeXXFARP" widgetbid="upwxIMLgN3hSA" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="u1J42eHj8Jo3e" localid="uc2BPmYy2TWsA" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9321.66" y="-11492.5" width="15" height="22" isinstance="0" showstereotype="1" text="2" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9246.58" starty="-11557.7"/>
<endpoint endx="-9394.67" endy="-11415.8"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uOswRI3dgjSqU" localid="uOg2UL0tHRbRH" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u7jJyZeXXFARP" widgetbid="ubZ4pDJ3kcyxb" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uaBzcyq3dDvsX" localid="un4krfVsdE5HE" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9366.87" y="-11551.3" width="15" height="22" isinstance="0" showstereotype="1" text="1" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9246.58" starty="-11557.7"/>
<endpoint endx="-9487.16" endy="-11543.5"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uJeEq1iTO8TUz" localid="uHYgej2ECpHrI" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uepLzsA8b3T2G" widgetbid="u6XadL9ZPQwHa" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-9239" starty="-11727"/>
<endpoint endx="-9239" endy="-11670"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uRxhObQe22315" localid="ud2JAkT3pj69i" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u6XadL9ZPQwHa" widgetbid="u7jJyZeXXFARP" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="umvl5boqP2AMn" localid="ugJ9byaXxZhfz" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9236.58" y="-11617.9" width="133" height="22" isinstance="0" showstereotype="1" text="User chooses option" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9236.58" starty="-11642"/>
<endpoint endx="-9236.58" endy="-11577.7"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ufw8h0pvAry48" localid="ucnmpmtTjEZ9y" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="udjrjPXZeOKKH" widgetbid="u2aoq9GDhbpaK" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uDgI0PCrxMTYv" localid="ucnZ7OuAbr2wT" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9781.08" y="-11482.2" width="102" height="22" isinstance="0" showstereotype="1" text="Camera Name*" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9591.98" starty="-11461.9"/>
<endpoint endx="-9874.4" endy="-11461.9"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ul84pW7ZMFjdn" localid="uJXSKHSyS0Oo2" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u7jJyZeXXFARP" widgetbid="u4qhkcGWjx0Z2" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="u4oP5dUolHnpE" localid="uWkrONugKPvMT" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9079.93" y="-11502.3" width="15" height="22" isinstance="0" showstereotype="1" text="6" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9226.58" starty="-11557.7"/>
<endpoint endx="-8984.87" endy="-11471.3"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uYeLO5zspuyYa" localid="uW0pRKNgAxcPd" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uny0qCP8Z5lMr" widgetbid="u2aoq9GDhbpaK" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-10487.5" starty="-11559.6"/>
<endpoint endx="-10064.4" endy="-11464.1"/>
<point x="-10487.5" y="-11464.1"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uRLZBkDQTMnLl" localid="umij5ZfkjzWUl" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="utaWvp4BKKTSY" widgetbid="uepLzsA8b3T2G" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-9418.47" starty="-11742"/>
<endpoint endx="-9284" endy="-11742"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uYNaS4eheOegc" localid="u1DRhihdyCOxP" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u7jJyZeXXFARP" widgetbid="umiDjfUhbMOwt" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="u1BZ2oV5E0HM4" localid="u1agndzX0wq2h" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9186.87" y="-11581.4" width="15" height="22" isinstance="0" showstereotype="1" text="7" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9226.58" starty="-11559.6"/>
<endpoint endx="-9129.49" endy="-11559.6"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="u85lKuLRrK4pH" localid="uwMBnhVKetq5Y" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u6WQ1b7oGA4c2" widgetbid="u6XadL9ZPQwHa" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-9185.17" starty="-11144.4"/>
<endpoint endx="-9194" endy="-11665.3"/>
<point x="-9185.17" y="-11117.9"/>
<point x="-8882.64" y="-11118.6"/>
<point x="-8881.23" y="-11665.3"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uMEIbmvoSkIWZ" localid="uyfPvVby2W1ur" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="usB5uQzBGoXUG" widgetbid="uP7MbJInaiZnU" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uT09pcmOmuZqS" localid="u9uR6EQwVNGRR" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9878.94" y="-11587" width="15" height="22" isinstance="0" showstereotype="1" text="6" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9962.01" starty="-11554.9"/>
<endpoint endx="-9722.71" endy="-11593.7"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="u8ptsCUBhMdup" localid="uxo5M1AD1bTJ9" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uarZBweRU7wd6" widgetbid="uny0qCP8Z5lMr" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-10256.9" starty="-11559.6"/>
<endpoint endx="-10481" endy="-11559.6"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uK6SwyJgSJXIu" localid="u2FVMk0M5QeQQ" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uyKzq99c7CWsm" widgetbid="u6WQ1b7oGA4c2" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-9119.74" starty="-11280.1"/>
<endpoint endx="-9195.03" endy="-11154.4"/>
<point x="-9119.74" y="-11241.7"/>
<point x="-9195.03" y="-11241.7"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="u4K5VWreV7NKM" localid="unuWzIDLWcGEi" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uZOnS5TAVhjv7" widgetbid="u6WQ1b7oGA4c2" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-9255.53" starty="-11306.7"/>
<endpoint endx="-9194.32" endy="-11154.4"/>
<point x="-9255.53" y="-11248.8"/>
<point x="-9194.32" y="-11248.1"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uVTE5n08foSwS" localid="uUBane5StnIbk" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="umiDjfUhbMOwt" widgetbid="uCqKX6TCSCpXM" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Direct">
<startpoint startx="-9079.49" starty="-11564.9"/>
<endpoint endx="-8994.43" endy="-11564.9"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uvYCvX1CMFaNr" localid="uEJcZ32CpEAGm" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u7jJyZeXXFARP" widgetbid="uoZpsEuPGbfss" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="u2ivOI3KJhwBd" localid="u6Yd8nsk1cV0n" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9099.69" y="-11475.7" width="15" height="22" isinstance="0" showstereotype="1" text="5" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9226.58" starty="-11557.7"/>
<endpoint endx="-9031.28" endy="-11374.4"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uYZuCLvuXOGOJ" localid="ug8HQSIkv4ufq" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="usB5uQzBGoXUG" widgetbid="uarZBweRU7wd6" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="u0GRkZZBh5k2W" localid="uDViwIvvX7F4U" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-10062.3" y="-11558.3" width="15" height="22" isinstance="0" showstereotype="1" text="1" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9982.01" starty="-11554.9"/>
<endpoint endx="-10111.9" endy="-11554.9"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uBJqX8anhRfMr" localid="uMayJl11AWhyZ" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="usB5uQzBGoXUG" widgetbid="urSjINbD3NuEq" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uLuQbp6wqR73c" localid="ub8PXWYSgifsk" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9911.31" y="-11619" width="15" height="22" isinstance="0" showstereotype="1" text="5" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9962.01" starty="-11554.9"/>
<endpoint endx="-9891.56" endy="-11635.2"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uazzIp8t3oEkj" localid="unHGXXmekCQ7E" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uU845hGQ6nmrY" widgetbid="uny0qCP8Z5lMr" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-10216.6" starty="-11626.4"/>
<endpoint endx="-10481" endy="-11569.6"/>
<point x="-10216.6" y="-11569.6"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="urgsvmrp9psXZ" localid="u5wJE8r1oxMls" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u4qhkcGWjx0Z2" widgetbid="u6WQ1b7oGA4c2" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-8941.03" starty="-11443.3"/>
<endpoint endx="-9176.73" endy="-11154.4"/>
<point x="-8941.03" y="-11212.2"/>
<point x="-9176.73" y="-11213.6"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uHTBMhoTYPi57" localid="u7LLN529OeV8y" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="usB5uQzBGoXUG" widgetbid="uSGoWtxQCg0k2" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="u86XKUOA5hLaU" localid="uNf5W4q2kX1Iw" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9994.67" y="-11619.8" width="15" height="22" isinstance="0" showstereotype="1" text="3" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9982.01" starty="-11554.9"/>
<endpoint endx="-9982.01" endy="-11684.7"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uYQ1u9jJgYyNw" localid="uqxAq3e2ROH7r" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u7jJyZeXXFARP" widgetbid="uZOnS5TAVhjv7" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uFletKtjC0Iu1" localid="uNwfov4DeqcpH" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9265.22" y="-11453.3" width="15" height="22" isinstance="0" showstereotype="1" text="3" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9244.47" starty="-11557.7"/>
<endpoint endx="-9244.47" endy="-11334.7"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uYQq8lYKSwB14" localid="uwhms1NxvTmlb" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uSGoWtxQCg0k2" widgetbid="uny0qCP8Z5lMr" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-10148.7" starty="-11696.9"/>
<endpoint endx="-10481" endy="-11577.3"/>
<point x="-10285.6" y="-11696.9"/>
<point x="-10284.2" y="-11577.3"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ugOdJqMfrrfs1" localid="uxn2eFjS76SBQ" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="usB5uQzBGoXUG" widgetbid="ubZ4pDJ3kcyxb" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uCq8YHcpBUgrN" localid="uIzJLHw7kbau0" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9850.44" y="-11545.6" width="15" height="22" isinstance="0" showstereotype="1" text="7" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9962.01" starty="-11543.5"/>
<endpoint endx="-9636.16" endy="-11543.5"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="usg4WSbrywyGW" localid="uYJsCJ98I4N4B" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="urSjINbD3NuEq" widgetbid="uny0qCP8Z5lMr" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-9836.69" starty="-11663.2"/>
<endpoint endx="-10481" endy="-11592.8"/>
<point x="-9836.69" y="-11746.9"/>
<point x="-10315.1" y="-11743.4"/>
<point x="-10315.8" y="-11592.8"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uTA1gHYr2bJWt" localid="uj04uSWcb3wGp" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uT7gc9aQzA8Gc" widgetbid="u6WQ1b7oGA4c2" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uktjbmrcnfFO9" localid="uYB0ZTQ4X0DYt" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9460.27" y="-11288.1" width="118" height="22" isinstance="0" showstereotype="1" text="Exit to Main Menu" pretext="" posttext="" role="703"/>
<linepath layout="Polyline">
<startpoint startx="-9460.27" starty="-11314.6"/>
<endpoint endx="-9204.88" endy="-11154.4"/>
<point x="-9460.27" y="-11224.1"/>
<point x="-9204.88" y="-11222"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uSsftcVamen7k" localid="uvfpzKaCi7d6e" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="upwxIMLgN3hSA" widgetbid="uT7gc9aQzA8Gc" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uIMQivEgvnACf" localid="uTEhbR1SRfxuQ" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9452.94" y="-11378.8" width="133" height="22" isinstance="0" showstereotype="1" text="User chooses option" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9468.72" starty="-11387.8"/>
<endpoint endx="-9468.72" endy="-11334.6"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uYaYI3tPmZ459" localid="uuVlbDfLkOAkw" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="ubZ4pDJ3kcyxb" widgetbid="udjrjPXZeOKKH" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uyRPCmU2dLH0H" localid="uoKilSLQuNz04" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9583.23" y="-11510.5" width="133" height="22" isinstance="0" showstereotype="1" text="User chooses option" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9581.69" starty="-11515.5"/>
<endpoint endx="-9581.69" endy="-11470.4"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uFUhAwYT5E9x9" localid="uHUdHYcl3dlWU" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u7jJyZeXXFARP" widgetbid="uyKzq99c7CWsm" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uHI88XvNy64ci" localid="uikXdok4PrRPK" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9202.58" y="-11467.8" width="15" height="22" isinstance="0" showstereotype="1" text="4" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9226.58" starty="-11557.7"/>
<endpoint endx="-9166.86" endy="-11308.1"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uAeP93AwWMfjb" localid="uBi5rUAHTjxhB" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="u2aoq9GDhbpaK" widgetbid="usB5uQzBGoXUG" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uwEsaX3gvxBaR" localid="uEdNv4QwjJRjA" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9977.55" y="-11517.2" width="133" height="22" isinstance="0" showstereotype="1" text="User chooses option" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9973.34" starty="-11482.6"/>
<endpoint endx="-9973.34" endy="-11534.9"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uN93Ipxa0IXQ1" localid="uBmrb89H3CJr7" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uP7MbJInaiZnU" widgetbid="uny0qCP8Z5lMr" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-9682.6" starty="-11621.7"/>
<endpoint endx="-10481" endy="-11598.4"/>
<point x="-9682.6" y="-11768.7"/>
<point x="-10336.2" y="-11769.4"/>
<point x="-10336.2" y="-11598.4"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uYu0Y3uV5GBf9" localid="uMs366d9wAyg0" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uT7gc9aQzA8Gc" widgetbid="ua9DlygPIIB8m" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="ursNF5WFON1WS" localid="uQC1WiFw1ZbpH" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9587.79" y="-11329.9" width="95" height="22" isinstance="0" showstereotype="1" text="Camera Name" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9470.12" starty="-11314.6"/>
<endpoint endx="-9578.82" endy="-11295.9"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uwUENNDJ2fYIg" localid="u8d6FiyVgw52V" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="udjrjPXZeOKKH" widgetbid="u6WQ1b7oGA4c2" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uemzr0qehjH9p" localid="ugTQHcbrXn106" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9722.01" y="-11435.6" width="118" height="22" isinstance="0" showstereotype="1" text="Exit to Main Menu" pretext="" posttext="" role="703"/>
<linepath layout="Polyline">
<startpoint startx="-9581.29" starty="-11450.4"/>
<endpoint endx="-9212.54" endy="-11154.4"/>
<point x="-9581.29" y="-11416.9"/>
<point x="-9740.3" y="-11412.7"/>
<point x="-9741.7" y="-11177.7"/>
<point x="-9213.32" y="-11177"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uxoniCAPh3JAs" localid="u4xiBhyK4cGhU" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uoZpsEuPGbfss" widgetbid="u6WQ1b7oGA4c2" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-9012.1" starty="-11346.4"/>
<endpoint endx="-9184.47" endy="-11154.4"/>
<point x="-9012.1" y="-11233.3"/>
<point x="-9184.47" y="-11232.6"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="urLPTIk7Sosfb" localid="uPeqBjOElkh6u" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="uvK8RZBDYcUat" widgetbid="uny0qCP8Z5lMr" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-9938.7" starty="-11713.8"/>
<endpoint endx="-10481" endy="-11585.1"/>
<point x="-9938.7" y="-11732.1"/>
<point x="-10303.9" y="-11730.7"/>
<point x="-10304.6" y="-11585.1"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uth9OTGI05SmL" localid="u4QpuEePix73S" textcolor="#000000" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="usB5uQzBGoXUG" widgetbid="uvK8RZBDYcUat" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<floatingtext xmi.id="uwF4ZcOgzlDSE" localid="ufJBxbhDDvdPD" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" x="-9955.99" y="-11620.4" width="15" height="22" isinstance="0" showstereotype="1" text="4" pretext="" posttext="" role="703"/>
<linepath layout="Direct">
<startpoint startx="-9962.01" starty="-11554.9"/>
<endpoint endx="-9949.96" endy="-11685.8"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uMOTSe06b3KZt" localid="uIZh9j5FRAxDm" textcolor="none" linecolor="#ff0000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" autoresize="1" seqnum="" type="515" visibilityA="0" visibilityB="0" changeabilityA="900" changeabilityB="900" roleAdoc="" roleBdoc="" documentation="" widgetaid="ua9DlygPIIB8m" widgetbid="upwxIMLgN3hSA" indexa="1" totalcounta="2" indexb="1" totalcountb="2">
<linepath layout="Polyline">
<startpoint startx="-9629.83" starty="-11295.9"/>
<endpoint endx="-9530.67" endy="-11398.6"/>
<point x="-9629.83" y="-11398.6"/>
</linepath>
</assocwidget>
</associations>
</diagram>
</diagrams>
</XMI.extension>
</UML:Model>
<UML:Model isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="Use_Case_View" name="Use Case View" namespace="m1" visibility="public">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="Component_View" name="Component View" namespace="m1" visibility="public">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="Deployment_View" name="Deployment View" namespace="m1" visibility="public">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model isSpecification="false" isLeaf="false" isRoot="false" isAbstract="false" xmi.id="Entity_Relationship_Model" name="Entity Relationship Model" namespace="m1" visibility="public">
<UML:Namespace.ownedElement/>
<XMI.extension xmi.extender="umbrello">
<diagrams resolution="96">
<diagram xmi.id="uA5y206JETUkH" name="entity relationship diagram" type="9" documentation="" backgroundcolor="#ffffff" fillcolor="#ffffc0" font="Noto Sans,10,-1,5,50,0,0,0,0,0,Regular" griddotcolor="#f7f7f7" linecolor="#ff0000" linewidth="0" textcolor="#000000" usefillcolor="1" showattribassocs="1" showatts="1" showattsig="1" showops="1" showopsig="1" showpackage="1" showpubliconly="0" showscope="1" showstereotype="1" localid="-1" showgrid="0" snapgrid="0" snapcsgrid="0" snapx="25" snapy="25" zoom="100" canvasheight="0" canvaswidth="0" isopen="1">
<widgets/>
<messages/>
<associations/>
</diagram>
</diagrams>
</XMI.extension>
</UML:Model>
</UML:Namespace.ownedElement>
</UML:Model>
</XMI.content>
<XMI.extensions xmi.extender="umbrello">
<docsettings viewid="ugFPcmQ7CwNNq" documentation="" uniqueid="uK41Ehf3kCXwA"/>
<listview>
<listitem id="Views" type="800" open="1">
<listitem id="Component_View" type="821" open="1"/>
<listitem id="Deployment_View" type="827" open="1"/>
<listitem id="Entity_Relationship_Model" type="836" open="1">
<listitem id="uA5y206JETUkH" type="834" label="entity relationship diagram" open="0"/>
</listitem>
<listitem id="Logical_View" type="801" open="1">
<listitem id="uucBDfma2hRQg" type="809" label="activity diagram" open="0"/>
<listitem id="ugFPcmQ7CwNNq" type="807" label="class diagram" open="0"/>
<listitem id="uASDoshKBmmnI" type="813" open="0">
<listitem id="uUzCr6SEgyYZ9" type="814" open="0"/>
<listitem id="uJYu4rRYxz5ws" type="814" open="0"/>
<listitem id="uyVuteB0NjFu3" type="815" open="0"/>
<listitem id="uzuN6tEl319Xv" type="814" open="0"/>
<listitem id="uISY0qW0xwIqT" type="814" open="0"/>
<listitem id="udfHHyUsieAgq" type="814" open="0"/>
<listitem id="uO6c4HgKt99TZ" type="815" open="0"/>
<listitem id="uUuRFZr3zxnGm" type="814" open="0"/>
<listitem id="uWzO1KfycXL5N" type="814" open="0"/>
<listitem id="ueXiZq5immd11" type="815" open="0"/>
<listitem id="ugVhQ3rXtZwsn" type="815" open="0"/>
<listitem id="uqOvbu5MwQyvo" type="815" open="0"/>
<listitem id="uRu45R8iQt93b" type="814" open="0"/>
</listitem>
<listitem id="uX8xl8SknIiop" type="831" open="0">
<listitem id="uXEgtMa6ojh5v" type="839" open="0"/>
<listitem id="uumycodD0FI2b" type="839" open="0"/>
<listitem id="uykUAZaKuvRtj" type="839" open="0"/>
</listitem>
<listitem id="ug4xpByAYlb4g" type="813" open="0">
<listitem id="uK88kcnvrmoo8" type="814" open="0"/>
<listitem id="u3udpeyVwdpDa" type="814" open="0"/>
<listitem id="uYWpaHvh5Ea8c" type="814" open="0"/>
<listitem id="uzoFZpXOdvl6c" type="814" open="0"/>
<listitem id="uuuHPOIAKL8w4" type="814" open="0"/>
<listitem id="ulFBJ7Xj4FHo2" type="815" open="0"/>
<listitem id="uzbbqdUp01Lwd" type="815" open="0"/>
<listitem id="udSCxWCrJnTGT" type="815" open="0"/>
<listitem id="u4T9xVeA4FbwR" type="815" open="0"/>
<listitem id="uEcXRa7ddJv27" type="815" open="0"/>
<listitem id="uy1aedRJTGkRH" type="814" open="0"/>
<listitem id="uHFyReuYzlHTQ" type="815" open="0"/>
<listitem id="upIArGqbH8mx4" type="815" open="0"/>
<listitem id="u78RFO4jh0MkX" type="815" open="0"/>
<listitem id="ukpfsZ1jA7ptq" type="814" open="0"/>
<listitem id="uCCqp6UFmUyQ1" type="815" open="0"/>
<listitem id="uAPxkDLLjHK1c" type="815" open="0"/>
<listitem id="uMTZvohhrmNdr" type="815" open="0"/>
<listitem id="ugfPMBYLfMP4j" type="815" open="0"/>
<listitem id="uiM7IsLx84uSj" type="815" open="0"/>
<listitem id="uMZJZTzMHcotL" type="815" open="0"/>
<listitem id="u6MfKFmI49XW5" type="815" open="0"/>
<listitem id="uhW0WK7Tw8jzd" type="815" open="0"/>
<listitem id="unEABXT4EkoL0" type="815" open="0"/>
</listitem>
<listitem id="uWQfGitACJCjJ" type="831" open="0">
<listitem id="uvn8JayutLubu" type="839" open="0"/>
<listitem id="u73SthAH5zOdg" type="839" open="0"/>
<listitem id="uf89LbU8P2tU9" type="839" open="0"/>
<listitem id="ucE3ge21K40yx" type="839" open="0"/>
<listitem id="ujmy3pgeQ26Qi" type="839" open="0"/>
<listitem id="umY8MrEM1VFve" type="839" open="0"/>
<listitem id="uDmhLJC7JhotK" type="839" open="0"/>
<listitem id="uRWCAbjEUsefQ" type="839" open="0"/>
<listitem id="uiMqHtn48FYKm" type="839" open="0"/>
<listitem id="ukyBP0PULsi35" type="839" open="0"/>
</listitem>
<listitem id="u5zlGNA1TIUxI" type="813" open="0">
<listitem id="uBSyBvgUpupEZ" type="815" open="0"/>
<listitem id="ufcCmNjB6gcIk" type="814" open="0"/>
<listitem id="uch8O6Cvr89Gy" type="814" open="0"/>
<listitem id="uy9jwgXEd8dlG" type="815" open="0"/>
<listitem id="ugiwF5RHovUV1" type="815" open="0"/>
<listitem id="uYhXJlitbQ0Wd" type="815" open="0"/>
<listitem id="u92Y4zCRcnIuQ" type="815" open="0"/>
</listitem>
<listitem id="uibCosoM5C9ES" type="813" open="0">
<listitem id="uMgVV2QK7nWJl" type="814" open="0"/>
<listitem id="umBpDgQHPWmCa" type="814" open="0"/>
<listitem id="uDq6GDbPZQ92T" type="814" open="0"/>
<listitem id="uvYBZ8VG7zmXM" type="814" open="0"/>
<listitem id="uVbaYwGBhwkJg" type="814" open="0"/>
<listitem id="uo6AU3IofbYX5" type="815" open="0"/>
<listitem id="uPYVGaXG16zfz" type="815" open="0"/>
<listitem id="uzC7XxxxgdanH" type="814" open="0"/>
<listitem id="uE7eAmAP3IyCz" type="814" open="0"/>
<listitem id="u4x5QhxYlc4Q1" type="814" open="0"/>
<listitem id="uhHak0Hz9SDbD" type="814" open="0"/>
<listitem id="ujgCbuqZ9xilL" type="815" open="0"/>
<listitem id="u9NyH522SeaSa" type="815" open="0"/>
</listitem>
<listitem id="Datatypes" type="830" open="0">
<listitem id="uUFR10GCed46Q" type="829" open="1"/>
<listitem id="umD3Y5YgpHTL5" type="829" open="1"/>
<listitem id="uI35GxgSf15Ke" type="829" open="1"/>
<listitem id="udTQ2y9M1GLg9" type="829" open="1"/>
<listitem id="uMX44yrUJSq2Z" type="829" open="1"/>
<listitem id="uDoWSpaQhZYMj" type="829" open="1"/>
<listitem id="uUBHYF2VTs95m" type="829" open="1"/>
<listitem id="uQwi67sMHYYH8" type="829" open="1"/>
<listitem id="u3iolu1KBaeLC" type="829" open="1"/>
<listitem id="um5BRQatdPbwa" type="829" open="1"/>
<listitem id="u21ZDyvoF16O4" type="829" open="1"/>
<listitem id="uCrL5Q2hyX5sQ" type="829" open="1"/>
<listitem id="uQwhrzourTSFc" type="829" open="1"/>
<listitem id="uLtWoZg2r6vK5" type="829" open="1"/>
<listitem id="u53NpBDIiJKLh" type="829" open="1"/>
<listitem id="uBxtki3mYxNXH" type="829" open="1"/>
<listitem id="uCO3HE6xCfnkW" type="829" open="1"/>
<listitem id="uEXdFpDPOdfpV" type="829" open="1"/>
<listitem id="uOY0ocupt3vUN" type="829" open="1"/>
<listitem id="u1Ano2L3MNqB9" type="829" open="1"/>
<listitem id="unYkf3XdlbOvG" type="829" open="1"/>
<listitem id="uCN5vhsamIMZS" type="829" open="1"/>
<listitem id="ue50uK6Axr5uJ" type="829" open="1"/>
<listitem id="u6dG093IE5KRR" type="829" open="1"/>
<listitem id="uDhbC7HamBUXf" type="829" open="1"/>
<listitem id="uF3615aHJR1V4" type="829" open="1"/>
<listitem id="u8ik9hKNzgKcH" type="829" open="1"/>
<listitem id="uRiiCWnAy5RVe" type="829" open="1"/>
<listitem id="uppdevdmKoAeT" type="829" open="1"/>
<listitem id="usELT5EPkFTAY" type="829" open="1"/>
<listitem id="uTFuxlA0IbjaA" type="829" open="1"/>
<listitem id="uBAEhogVaCinW" type="829" open="1"/>
<listitem id="uBH80PyFvNP0W" type="829" open="1"/>
<listitem id="uVfGuVVTLsk6z" type="829" open="1"/>
<listitem id="uyTBx9P7f4VjF" type="829" open="1"/>
<listitem id="u3L4GKc1rVusd" type="829" open="1"/>
<listitem id="usyIvFLIaNduc" type="829" open="1"/>
<listitem id="ujXLj0TVNtFs1" type="829" open="1"/>
<listitem id="uMYRTkE3rxR2B" type="829" open="1"/>
<listitem id="uN4zCdvj7rsZz" type="829" open="1"/>
<listitem id="uBwekzeWX8icG" type="829" open="1"/>
<listitem id="uM9KJKNeM6Kog" type="829" open="1"/>
<listitem id="unl1k1K0LtpWx" type="829" open="1"/>
<listitem id="uDuQErHgUBVcM" type="829" open="1"/>
</listitem>
<listitem id="uaq5wFieCACsK" type="813" open="0">
<listitem id="u6zsQtVXJeK9I" type="814" open="0"/>
<listitem id="uHA8XrxTWFz1A" type="815" open="0"/>
<listitem id="uWQEWtZl7G4tJ" type="814" open="0"/>
<listitem id="umTPGzsTewAMH" type="814" open="0"/>
<listitem id="uPCAY3ou1J05g" type="814" open="0"/>
<listitem id="uwq5HGOI8zXHp" type="814" open="0"/>
<listitem id="uQk2yP91hB32b" type="815" open="0"/>
<listitem id="ubbXibbgDeWRE" type="815" open="0"/>
<listitem id="umM0MefO6Nslx" type="814" open="0"/>
</listitem>
<listitem id="uiXctorvzHidz" type="813" open="0">
<listitem id="uQaAIayfZmRTr" type="815" open="0"/>
<listitem id="uVMQYGF8r6f7y" type="815" open="0"/>
<listitem id="uG2ml0g1zFd1n" type="815" open="0"/>
<listitem id="uqtEpHdA20MJO" type="815" open="0"/>
<listitem id="uwCf3NOOs6bOI" type="815" open="0"/>
<listitem id="uJW8yFYg3muFK" type="815" open="0"/>
<listitem id="uKhEpTnM8aYgW" type="815" open="0"/>
<listitem id="uw8Hh3G5owLI9" type="814" open="0"/>
<listitem id="urq8f5SKTIpyb" type="814" open="0"/>
<listitem id="umpKaM853vbob" type="814" open="0"/>
<listitem id="uRFPkG1OcyQzH" type="814" open="0"/>
<listitem id="uXafv7Bqv1vlj" type="814" open="0"/>
<listitem id="uhGnDpzud0eKy" type="814" open="0"/>
<listitem id="uscGkGT6pA18U" type="814" open="0"/>
<listitem id="uee8kI2xnR8SV" type="815" open="0"/>
<listitem id="uwLa88M9lPXpz" type="814" open="0"/>
<listitem id="u5pOlwHMbAkbC" type="814" open="0"/>
<listitem id="uhGqwGvjvNDrF" type="814" open="0"/>
<listitem id="u8UPYdPVsfJ9L" type="815" open="0"/>
<listitem id="uxvjOWjAixlgp" type="815" open="0"/>
<listitem id="uHBe39GldXDOi" type="814" open="0"/>
<listitem id="uyM1wKLI2qKzr" type="814" open="0"/>
<listitem id="uIj1qcUBEZ26g" type="814" open="0"/>
<listitem id="u5XZ0jcUH4n0l" type="814" open="0"/>
<listitem id="u6ez9ZFRP3VOc" type="814" open="0"/>
<listitem id="u8J4qyzhXYsg3" type="814" open="0"/>
<listitem id="utwJCIWg03ZAz" type="814" open="0"/>
</listitem>
<listitem id="uhoYk9h6KpMug" type="831" open="0">
<listitem id="unJPOlWUL5Dmv" type="839" open="0"/>
<listitem id="ulhOoUKvgvVVe" type="839" open="0"/>
<listitem id="u5jKNi1695At9" type="839" open="0"/>
</listitem>
<listitem id="uM89bZm0VxiTF" type="813" open="1"/>
<listitem id="uxutGWImUrqt7" type="813" open="0">
<listitem id="usQIEDGKPGhT9" type="814" open="0"/>
<listitem id="uT50OpN6jOap5" type="814" open="0"/>
<listitem id="uCsd18DlWrWRF" type="814" open="0"/>
<listitem id="uN5CzQSYAnEuI" type="815" open="0"/>
<listitem id="uC99YehW24GIL" type="815" open="0"/>
<listitem id="uPf65fmeKYRyL" type="815" open="0"/>
<listitem id="uDDmEZMsSRNys" type="815" open="0"/>
<listitem id="ucT7DSSA4bprm" type="815" open="0"/>
<listitem id="uwUQqQE7Opx6e" type="815" open="0"/>
<listitem id="u62sIIBKT4rQR" type="815" open="0"/>
<listitem id="u6cDpzouIuCbE" type="814" open="0"/>
<listitem id="uwNi7W5uRzqkt" type="814" open="0"/>
<listitem id="ucOvTSRQwQ2kr" type="814" open="0"/>
<listitem id="uOMz2SVLu1Ltn" type="814" open="0"/>
<listitem id="uX2PuJKNHcwqe" type="815" open="0"/>
<listitem id="u7dL91xr3ZtpB" type="815" open="0"/>
<listitem id="uc06GU5TBKCOt" type="815" open="0"/>
<listitem id="u01Gb7GncAwwu" type="815" open="0"/>
<listitem id="uSEB1V0eCxOVI" type="815" open="0"/>
<listitem id="uXqgLkMJUXyG9" type="815" open="0"/>
<listitem id="u36iwSk1gAsEL" type="815" open="0"/>
<listitem id="uurFGK0TAq7zx" type="815" open="0"/>
<listitem id="uekZfs8wb856g" type="815" open="0"/>
</listitem>
<listitem id="uowtOePSx4RnM" type="813" open="1"/>
<listitem id="uPZ2OxFSIzrmJ" type="813" open="0">
<listitem id="uxIGOhPnoqNim" type="816" open="0"/>
<listitem id="uX3HQOqEHkSlc" type="816" open="0"/>
<listitem id="uHrDkKm3PeH1s" type="814" open="0"/>
<listitem id="uK3JECu9yEtUu" type="815" open="0"/>
<listitem id="uf9kGRTI07FJX" type="814" open="0"/>
<listitem id="uDPnfslulO3qC" type="815" open="0"/>
</listitem>
<listitem id="uAwVIyVVNjSlp" type="813" open="1"/>
<listitem id="uszTbwciTSOHV" type="813" open="0">
<listitem id="uMd0VTCwpENXT" type="814" open="0"/>
<listitem id="uZ4qzz259Z3S3" type="815" open="0"/>
<listitem id="uUWwF5fgtv9QG" type="814" open="0"/>
<listitem id="uZhvZ4Q9CC10o" type="814" open="0"/>
<listitem id="u0Q4w9Mkq75IR" type="814" open="0"/>
</listitem>
</listitem>
<listitem id="Use_Case_View" type="802" open="1"/>
</listitem>
</listview>
<codegeneration>
<codegenerator language="Java"/>
</codegeneration>
</XMI.extensions>
</XMI>