<mxfile host="65bd71144e" pages="6">
    <diagram id="MqxnWlQqTLx_sGWGAXM0" name="SystemOverview">
        <mxGraphModel dx="1958" dy="1572" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="23" value="Platform-Specific Modules" style="shape=umlFrame;whiteSpace=wrap;html=1;width=200;height=30;" vertex="1" parent="1">
                    <mxGeometry x="60" width="400" height="190" as="geometry"/>
                </mxCell>
                <mxCell id="29" value="1 - Activates" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0;exitDx=170;exitDy=64.5;exitPerimeter=0;entryX=-0.003;entryY=0.605;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;" edge="1" parent="1" source="gdJiS5tVcTXjcoY0e7hW-7" target="23">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="gdJiS5tVcTXjcoY0e7hW-7" value="CLI Module" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-203" y="50" width="170" height="115" as="geometry"/>
                </mxCell>
                <mxCell id="gdJiS5tVcTXjcoY0e7hW-8" value="4 - Produces" style="edgeStyle=none;html=1;exitX=0;exitY=0;exitDx=160;exitDy=67;exitPerimeter=0;entryX=0;entryY=0;entryDx=0;entryDy=67;entryPerimeter=0;" parent="1" source="2" target="4" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="24" value="2 - Calls" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.378;exitY=0.125;exitDx=0;exitDy=0;exitPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" edge="1" parent="1" source="2">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="120" y="191" as="targetPoint"/>
                        <Array as="points"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="26" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.878;exitY=0.108;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.362;entryY=0.998;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;" edge="1" parent="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="200.4799999999998" y="293.9599999999998" as="sourcePoint"/>
                        <mxPoint x="199.27999999999997" y="190.5999999999999" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="200" y="295"/>
                            <mxPoint x="199" y="295"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="27" value="5 - Returns &lt;br&gt;Semantic Model" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="26">
                    <mxGeometry x="0.3168" y="1" relative="1" as="geometry">
                        <mxPoint x="2" y="14" as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="2" value="Parser" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="1" vertex="1">
                    <mxGeometry x="60" y="280" width="160" height="120" as="geometry"/>
                </mxCell>
                <mxCell id="4" value="Semantic Model" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="1" vertex="1">
                    <mxGeometry x="320" y="280" width="160" height="120" as="geometry"/>
                </mxCell>
                <mxCell id="gdJiS5tVcTXjcoY0e7hW-4" value="GitHub Module" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="1" vertex="1">
                    <mxGeometry x="80" y="50" width="160" height="120" as="geometry"/>
                </mxCell>
                <mxCell id="gdJiS5tVcTXjcoY0e7hW-25" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1.002;exitY=0.606;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;dashed=1;" parent="1" source="23" target="gdJiS5tVcTXjcoY0e7hW-20" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="7" value="6 - Output" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="gdJiS5tVcTXjcoY0e7hW-25" vertex="1" connectable="0">
                    <mxGeometry x="0.2398" relative="1" as="geometry">
                        <mxPoint x="-17" as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="gdJiS5tVcTXjcoY0e7hW-5" value="GitLab Module" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="1" vertex="1">
                    <mxGeometry x="280" y="50" width="160" height="120" as="geometry"/>
                </mxCell>
                <mxCell id="XSIQ8_s49UUyToeg9Q47-8" value="3 - Input" style="edgeStyle=none;html=1;dashed=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="XSIQ8_s49UUyToeg9Q47-5" target="2" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="XSIQ8_s49UUyToeg9Q47-5" value="DSL File" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" parent="1" vertex="1">
                    <mxGeometry x="-140" y="290" width="80" height="100" as="geometry"/>
                </mxCell>
                <mxCell id="gdJiS5tVcTXjcoY0e7hW-20" value="OutPut Files" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" parent="1" vertex="1">
                    <mxGeometry x="550" y="65" width="80" height="100" as="geometry"/>
                </mxCell>
                <mxCell id="10" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="-118" y="-7" as="sourcePoint"/>
                        <mxPoint x="-118" y="63" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="11" value="0 - Start" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="10" vertex="1" connectable="0">
                    <mxGeometry x="-0.3042" y="-1" relative="1" as="geometry">
                        <mxPoint as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="9" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.start_2;whiteSpace=wrap;fillColor=#1A1A1A;" parent="1" vertex="1">
                    <mxGeometry x="-148" y="-68" width="60" height="60" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
    <diagram id="XIYA0xYFkIvqYRaQsQ3a" name="Parser">
        <mxGraphModel dx="1138" dy="564" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="IWNCDrZgadfdRcg03cbw-0"/>
                <mxCell id="IWNCDrZgadfdRcg03cbw-1" parent="IWNCDrZgadfdRcg03cbw-0"/>
                <mxCell id="dM1lUa3VdjRCr3HEYh2X-16" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="IWNCDrZgadfdRcg03cbw-1" source="K09DDE0wchspApwbkazg-0" target="K09DDE0wchspApwbkazg-4" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="320" y="229.9999999999999" as="targetPoint"/>
                        <Array as="points"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="K09DDE0wchspApwbkazg-0" value="DSLParser" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="IWNCDrZgadfdRcg03cbw-1" vertex="1">
                    <mxGeometry x="180" y="207" width="270" height="112" as="geometry"/>
                </mxCell>
                <mxCell id="K09DDE0wchspApwbkazg-2" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="K09DDE0wchspApwbkazg-0" vertex="1">
                    <mxGeometry y="26" width="270" height="8" as="geometry"/>
                </mxCell>
                <mxCell id="K09DDE0wchspApwbkazg-3" value="+ parse(): SemanticModel" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="K09DDE0wchspApwbkazg-0" vertex="1">
                    <mxGeometry y="34" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="dM1lUa3VdjRCr3HEYh2X-9" value="- buildSymbolTable(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="K09DDE0wchspApwbkazg-0" vertex="1">
                    <mxGeometry y="60" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="xOscFxG6Qo4vnTSnOcO7-1" value="- buildSemanticModel(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="K09DDE0wchspApwbkazg-0" vertex="1">
                    <mxGeometry y="86" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="9xqBmWQ3SyAOFEb68c5p-0" style="edgeStyle=orthogonalEdgeStyle;html=1;endArrow=classic;endFill=1;endSize=6;" parent="IWNCDrZgadfdRcg03cbw-1" source="K09DDE0wchspApwbkazg-4" target="ZSBLDp_VqIufTU0aZ3Nk-0" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="K09DDE0wchspApwbkazg-4" value="&lt;&lt;Singleton&gt;&gt;&#10;StageSymbolTable" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="IWNCDrZgadfdRcg03cbw-1" vertex="1">
                    <mxGeometry x="490" y="187" width="240" height="152" as="geometry"/>
                </mxCell>
                <mxCell id="K09DDE0wchspApwbkazg-5" value="- stages: Map&lt;String, Stage&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=0" parent="K09DDE0wchspApwbkazg-4" vertex="1">
                    <mxGeometry y="40" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="K09DDE0wchspApwbkazg-6" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="K09DDE0wchspApwbkazg-4" vertex="1">
                    <mxGeometry y="66" width="240" height="8" as="geometry"/>
                </mxCell>
                <mxCell id="K09DDE0wchspApwbkazg-7" value="+ addStage(String, Stage): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="K09DDE0wchspApwbkazg-4" vertex="1">
                    <mxGeometry y="74" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="28XeSZE2sqBfRNQBClAr-4" value="+ getStage(String): Stage" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="K09DDE0wchspApwbkazg-4" vertex="1">
                    <mxGeometry y="100" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="M4dSdJV__bx3kccWBa1K-0" value="+ getStages(): Map&lt;String, Stage&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="K09DDE0wchspApwbkazg-4">
                    <mxGeometry y="126" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="ZSBLDp_VqIufTU0aZ3Nk-0" value="Stage" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="IWNCDrZgadfdRcg03cbw-1" vertex="1">
                    <mxGeometry x="770" y="194" width="200" height="138" as="geometry"/>
                </mxCell>
                <mxCell id="ZSBLDp_VqIufTU0aZ3Nk-1" value="- name: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="ZSBLDp_VqIufTU0aZ3Nk-0" vertex="1">
                    <mxGeometry y="26" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="ZSBLDp_VqIufTU0aZ3Nk-2" value="- jobs: Job[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="ZSBLDp_VqIufTU0aZ3Nk-0" vertex="1">
                    <mxGeometry y="52" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="ZSBLDp_VqIufTU0aZ3Nk-3" value="- needs: String[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="ZSBLDp_VqIufTU0aZ3Nk-0" vertex="1">
                    <mxGeometry y="78" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="ZSBLDp_VqIufTU0aZ3Nk-4" value="- runs_on: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="ZSBLDp_VqIufTU0aZ3Nk-0" vertex="1">
                    <mxGeometry y="104" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="ZSBLDp_VqIufTU0aZ3Nk-5" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="ZSBLDp_VqIufTU0aZ3Nk-0" vertex="1">
                    <mxGeometry y="130" width="200" height="8" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
    <diagram id="CPiNMO77paQSJV29m4RA" name="SemanticModel">
        <mxGraphModel dx="1422" dy="762" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="lWyDHzZWDR8sVOTfQuzM-0"/>
                <mxCell id="lWyDHzZWDR8sVOTfQuzM-1" parent="lWyDHzZWDR8sVOTfQuzM-0"/>
                <mxCell id="8uUshlUjNIexnw6PfgmC-0" value="Common Module" style="shape=umlFrame;whiteSpace=wrap;html=1;width=120;height=25;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="590" y="360" width="240" height="570" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-78" value="«interface»&lt;br&gt;&lt;b&gt;Task&lt;/b&gt;" style="html=1;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="655" y="812" width="110" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-0" value="Variables" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="20" y="430" width="190" height="86" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-1" value="- variables: Map&lt;String, String&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-0" vertex="1">
                    <mxGeometry y="26" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-2" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-0" vertex="1">
                    <mxGeometry y="52" width="190" height="8" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-3" value="+ addVariable(String, String): void " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-0" vertex="1">
                    <mxGeometry y="60" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-79" style="edgeStyle=orthogonalEdgeStyle;html=1;endArrow=block;endFill=0;dashed=1;startSize=12;endSize=12;" parent="lWyDHzZWDR8sVOTfQuzM-1" source="UOOIqiE7h9TGRwUimt-H-4" target="Nf_OvdkGn6ECtKF0OKBf-78" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="570" y="837"/>
                            <mxPoint x="570" y="837"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-4" value="Tasks" style="shape=umlFrame;whiteSpace=wrap;html=1;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="20" y="744" width="520" height="186" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-5" value="Trigger" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="20" y="544" width="190" height="164" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-6" value="- types: String[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-5" vertex="1">
                    <mxGeometry y="26" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-21" value="- branches: String[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-5" vertex="1">
                    <mxGeometry y="52" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-7" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-5" vertex="1">
                    <mxGeometry y="78" width="190" height="8" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-8" value="+ addType(String): void&#10;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-5" vertex="1">
                    <mxGeometry y="86" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-22" value="+ addBranch(String): void&#10;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-5" vertex="1">
                    <mxGeometry y="112" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="W6ErgZZ5AErXAMyglJ3D-0" value="- isTypeValid(String): boolean&#10;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-5" vertex="1">
                    <mxGeometry y="138" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-9" value="Targets" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="20" y="290" width="190" height="112" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-10" value="- targets: String[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-9" vertex="1">
                    <mxGeometry y="26" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-11" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-9" vertex="1">
                    <mxGeometry y="52" width="190" height="8" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-12" value="+ addTarget(String): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-9" vertex="1">
                    <mxGeometry y="60" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="W6ErgZZ5AErXAMyglJ3D-1" value="- isTargetValid(String): boolean&#10;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-9" vertex="1">
                    <mxGeometry y="86" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-80" value="Build Docker Image" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="27" y="794" width="160" height="78" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-109" value="- imageName: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="Nf_OvdkGn6ECtKF0OKBf-80" vertex="1">
                    <mxGeometry y="26" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-81" value="- buildFilePath: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="Nf_OvdkGn6ECtKF0OKBf-80" vertex="1">
                    <mxGeometry y="52" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-88" value="Checkout" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="200" y="794" width="160" height="52" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-89" value="- repositoryURL: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="Nf_OvdkGn6ECtKF0OKBf-88" vertex="1">
                    <mxGeometry y="26" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-92" value="Run" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="370" y="794" width="160" height="52" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-93" value="- command: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="Nf_OvdkGn6ECtKF0OKBf-92" vertex="1">
                    <mxGeometry y="26" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-105" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" source="Nf_OvdkGn6ECtKF0OKBf-103" target="UOOIqiE7h9TGRwUimt-H-9" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="250" y="469"/>
                            <mxPoint x="250" y="346"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-107" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" source="Nf_OvdkGn6ECtKF0OKBf-103" target="UOOIqiE7h9TGRwUimt-H-5" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="250" y="469"/>
                            <mxPoint x="250" y="629"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="aY9W4tjQi4gmELOLwf8A-1" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;startSize=10;endSize=6;" parent="lWyDHzZWDR8sVOTfQuzM-1" source="UOOIqiE7h9TGRwUimt-H-13" target="UOOIqiE7h9TGRwUimt-H-18" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-13" value="Pipeline" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="310" y="352" width="200" height="242" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-14" value="- targets: Targets" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="26" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-102" value="- variables: Variables" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="52" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-101" value="- trigger: Trigger" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="78" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-103" value="- stages: Stage[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="104" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-15" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="130" width="200" height="8" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-16" value="+ setTargets(Targets): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="138" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-24" value="+ setVariables(Variables): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="164" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-25" value="+ setTrigger(Trigger): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="190" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-26" value="+ addStage(Stage): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-13" vertex="1">
                    <mxGeometry y="216" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-104" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="lWyDHzZWDR8sVOTfQuzM-1" source="UOOIqiE7h9TGRwUimt-H-17" target="Nf_OvdkGn6ECtKF0OKBf-96" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-17" value="Stage" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="620" y="408" width="180" height="130" as="geometry"/>
                </mxCell>
                <mxCell id="ASBBgQ1cgnK7S-Ia9lHD-0" value="- name: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-17" vertex="1">
                    <mxGeometry y="26" width="180" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-18" value="- jobs: Job[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-17" vertex="1">
                    <mxGeometry y="52" width="180" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="ASBBgQ1cgnK7S-Ia9lHD-2" value="- predecessors: Stage[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-17" vertex="1">
                    <mxGeometry y="78" width="180" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-28" value="- runs_on: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="UOOIqiE7h9TGRwUimt-H-17" vertex="1">
                    <mxGeometry y="104" width="180" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-100" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="lWyDHzZWDR8sVOTfQuzM-1" source="Nf_OvdkGn6ECtKF0OKBf-96" target="Nf_OvdkGn6ECtKF0OKBf-78" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-96" value="Job" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="lWyDHzZWDR8sVOTfQuzM-1" vertex="1">
                    <mxGeometry x="630" y="580" width="160" height="78" as="geometry"/>
                </mxCell>
                <mxCell id="Nf_OvdkGn6ECtKF0OKBf-97" value="- name: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="Nf_OvdkGn6ECtKF0OKBf-96" vertex="1">
                    <mxGeometry y="26" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="UOOIqiE7h9TGRwUimt-H-27" value="- tasks: Task[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="Nf_OvdkGn6ECtKF0OKBf-96" vertex="1">
                    <mxGeometry y="52" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="aY9W4tjQi4gmELOLwf8A-0" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;startSize=10;endSize=6;" parent="lWyDHzZWDR8sVOTfQuzM-1" source="Nf_OvdkGn6ECtKF0OKBf-103" target="UOOIqiE7h9TGRwUimt-H-1" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
    <diagram id="0lD_gkbiid3n9YCUygVT" name="CLIModule">
        <mxGraphModel dx="2272" dy="762" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="DabSvafeZZyAcUnJCEnm-0"/>
                <mxCell id="DabSvafeZZyAcUnJCEnm-1" parent="DabSvafeZZyAcUnJCEnm-0"/>
                <mxCell id="BAzHq8RqgjAXBoQ7ZJ6v-3" value="LocalFilePath" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="DabSvafeZZyAcUnJCEnm-1" vertex="1">
                    <mxGeometry x="120" y="120" width="160" height="86" as="geometry"/>
                </mxCell>
                <mxCell id="BAzHq8RqgjAXBoQ7ZJ6v-4" value="+ field: type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="BAzHq8RqgjAXBoQ7ZJ6v-3" vertex="1">
                    <mxGeometry y="26" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="BAzHq8RqgjAXBoQ7ZJ6v-5" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="BAzHq8RqgjAXBoQ7ZJ6v-3" vertex="1">
                    <mxGeometry y="52" width="160" height="8" as="geometry"/>
                </mxCell>
                <mxCell id="BAzHq8RqgjAXBoQ7ZJ6v-6" value="+ method(type): type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="BAzHq8RqgjAXBoQ7ZJ6v-3" vertex="1">
                    <mxGeometry y="60" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="BAzHq8RqgjAXBoQ7ZJ6v-8" value="" style="edgeStyle=none;html=1;" parent="DabSvafeZZyAcUnJCEnm-1" source="BAzHq8RqgjAXBoQ7ZJ6v-7" target="BAzHq8RqgjAXBoQ7ZJ6v-6" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="BAzHq8RqgjAXBoQ7ZJ6v-7" value="Wrapper for magic strings&lt;br&gt;(Maybe in a util module)" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" parent="DabSvafeZZyAcUnJCEnm-1" vertex="1">
                    <mxGeometry x="-40" y="120" width="80" height="120" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
    <diagram id="ShVHNikwBhRnXJh0IRXE" name="TargetModule">
        <mxGraphModel dx="1422" dy="762" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="im930XWlGwHuCoEjLJHO-0"/>
                <mxCell id="im930XWlGwHuCoEjLJHO-1" parent="im930XWlGwHuCoEjLJHO-0"/>
            </root>
        </mxGraphModel>
    </diagram>
    <diagram id="YcV9ZFKnkAg0thRwxwep" name="Extra">
        <mxGraphModel dx="3555" dy="1905" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-1" value="Syntax Tree" style="shape=umlFrame;whiteSpace=wrap;html=1;width=100;height=21;" vertex="1" parent="1">
                    <mxGeometry x="660" y="20" width="1700" height="800" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-2" style="html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-7" target="p8aCEuCecSPDmzXGa8ZO-6">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="788.2842712474619" y="246.71572875253833" as="sourcePoint"/>
                        <mxPoint x="1005" y="150" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-3" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-10" target="p8aCEuCecSPDmzXGa8ZO-6">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1080" y="297.5" as="sourcePoint"/>
                        <mxPoint x="1005" y="150" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-4" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-13" target="p8aCEuCecSPDmzXGa8ZO-6">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1330" y="297.5" as="sourcePoint"/>
                        <mxPoint x="1005" y="150" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-5" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-20" target="p8aCEuCecSPDmzXGa8ZO-6">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1670" y="250" as="sourcePoint"/>
                        <mxPoint x="1005" y="150" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-6" value="pipeline" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1070" y="40" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-7" value="targets" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="680" y="202.5" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-8" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-10" target="p8aCEuCecSPDmzXGa8ZO-15">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-9" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-10" target="p8aCEuCecSPDmzXGa8ZO-16">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-10" value="variables" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="920" y="202.5" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-11" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-13" target="p8aCEuCecSPDmzXGa8ZO-17">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-12" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-13" target="p8aCEuCecSPDmzXGa8ZO-18">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-13" value="triggers" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1260" y="190" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-14" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-15" target="p8aCEuCecSPDmzXGa8ZO-41">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-15" value="key" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="840" y="320" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-16" value="value" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1000" y="320" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-17" value="trigger-types" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1180" y="280" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-18" value="branches" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1340" y="280" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-19" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-20" target="p8aCEuCecSPDmzXGa8ZO-21">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-20" value="stages" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1620" y="190" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-21" value="stage" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1780" y="280" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-22" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-24" target="p8aCEuCecSPDmzXGa8ZO-21">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-23" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-24" target="p8aCEuCecSPDmzXGa8ZO-48">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-24" value="name" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1550" y="400" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-25" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-27" target="p8aCEuCecSPDmzXGa8ZO-21">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-26" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-27" target="p8aCEuCecSPDmzXGa8ZO-49">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-27" value="runs-on" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1720" y="400" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-28" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-30" target="p8aCEuCecSPDmzXGa8ZO-21">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-29" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-30" target="p8aCEuCecSPDmzXGa8ZO-50">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-30" value="predecessors" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="1890" y="400" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-31" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-32" target="p8aCEuCecSPDmzXGa8ZO-21">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-32" value="job" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="2090" y="400" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-33" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-35" target="p8aCEuCecSPDmzXGa8ZO-32">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-34" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-35" target="p8aCEuCecSPDmzXGa8ZO-51">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-35" value="name" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="2030" y="540" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-36" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-38" target="p8aCEuCecSPDmzXGa8ZO-52">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-37" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-38" target="p8aCEuCecSPDmzXGa8ZO-32">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-38" value="task" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
                    <mxGeometry x="2200" y="540" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-39" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-40" target="p8aCEuCecSPDmzXGa8ZO-7">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-40" value="String Array" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="700" y="320" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-41" value="String" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="860" y="437.5" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-42" value="" style="edgeStyle=none;html=1;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-43" target="p8aCEuCecSPDmzXGa8ZO-16">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-43" value="String" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="1020" y="437.5" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-44" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-45" target="p8aCEuCecSPDmzXGa8ZO-17">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-45" value="String Array" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="1200" y="400" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-46" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=6;" edge="1" parent="1" source="p8aCEuCecSPDmzXGa8ZO-47" target="p8aCEuCecSPDmzXGa8ZO-18">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-47" value="String Array" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="1360" y="400" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-48" value="String" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="1570" y="520" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-49" value="String" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="1740" y="520" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-50" value="String Array" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="1910" y="520" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-51" value="String" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="2050" y="658" width="80" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="p8aCEuCecSPDmzXGa8ZO-52" value="Task" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
                    <mxGeometry x="2220" y="658" width="80" height="80" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>