<mxfile host="65bd71144e">
    <diagram id="3kprJKTUizeKL1AJmphI" name="第 1 页">
        <mxGraphModel dx="1645" dy="815" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="none" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="22" value="底层" style="" parent="0"/>
                <mxCell id="187" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;sketch=1;fontSize=13;strokeWidth=1;align=center;verticalAlign=middle;opacity=40;perimeterSpacing=1;fillColor=none;" parent="22" vertex="1">
                    <mxGeometry x="595" y="490" width="450" height="310" as="geometry"/>
                </mxCell>
                <mxCell id="175" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;sketch=1;fontSize=13;strokeWidth=1;align=center;verticalAlign=middle;opacity=40;perimeterSpacing=1;fillColor=none;" parent="22" vertex="1">
                    <mxGeometry x="80" y="500" width="330" height="290" as="geometry"/>
                </mxCell>
                <mxCell id="106" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=1;sketch=1;fontSize=13;opacity=60;perimeterSpacing=1;fillColor=none;" parent="22" vertex="1">
                    <mxGeometry x="580" y="40" width="490" height="320" as="geometry"/>
                </mxCell>
                <mxCell id="93" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=1;fontSize=13;opacity=60;sketch=1;perimeterSpacing=1;fillColor=none;" parent="22" vertex="1">
                    <mxGeometry x="60" y="30" width="440" height="340" as="geometry"/>
                </mxCell>
                <mxCell id="52" value="&amp;nbsp;RemoteView" style="whiteSpace=wrap;html=1;strokeWidth=2;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#d5e8d4;fontFamily=Comic Sans MS;fontSize=21;sketch=0;rounded=1;strokeColor=none;" parent="22" vertex="1">
                    <mxGeometry x="880" y="200" width="160" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="69" value="MemoryView" style="whiteSpace=wrap;html=1;strokeWidth=2;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#d5e8d4;fontFamily=Comic Sans MS;fontSize=21;sketch=0;rounded=1;strokeColor=none;" parent="22" vertex="1">
                    <mxGeometry x="880" y="270" width="160" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="103" style="edgeStyle=none;rounded=0;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;startArrow=block;startFill=1;endSize=6;strokeColor=#000000;strokeWidth=1;" parent="22" source="96" target="10" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="104" style="edgeStyle=none;rounded=0;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=block;startFill=1;endSize=6;strokeColor=#000000;strokeWidth=1;" parent="22" source="96" target="52" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="105" style="edgeStyle=none;rounded=0;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=block;startFill=1;endSize=6;strokeColor=#000000;strokeWidth=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="22" source="96" target="69" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="227" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.32;exitY=1.007;exitDx=0;exitDy=0;exitPerimeter=0;" parent="22" source="96" target="203" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="694" y="250" as="sourcePoint"/>
                        <Array as="points">
                            <mxPoint x="706" y="250"/>
                            <mxPoint x="699" y="250"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="96" value="View" style="whiteSpace=wrap;html=1;strokeWidth=2;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#ffe6cc;fontFamily=Comic Sans MS;fontSize=21;sketch=0;rounded=1;fontStyle=1;strokeColor=none;" parent="22" vertex="1">
                    <mxGeometry x="664" y="190" width="120" height="60" as="geometry"/>
                </mxCell>
                <UserObject label="Mirror —— View of state" placeholders="1" name="Variable" id="107">
                    <mxCell style="text;html=1;fillColor=#b1ddf0;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;rounded=0;dashed=1;sketch=1;fontFamily=Comic Sans MS;fontSize=20;fontStyle=1;strokeWidth=2;direction=west;hachureAngle=41;" parent="22" vertex="1">
                        <mxGeometry x="610" y="60" width="340" height="40" as="geometry"/>
                    </mxCell>
                </UserObject>
                <UserObject label="ControlPannel" placeholders="1" name="Variable" id="136">
                    <mxCell style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;rounded=0;sketch=1;fontFamily=Comic Sans MS;fontSize=20;fontStyle=1;fillColor=#b0e3e6;strokeWidth=2;perimeterSpacing=1;direction=east;hachureAngle=41;" parent="22" vertex="1">
                        <mxGeometry x="115" y="730" width="260" height="40" as="geometry"/>
                    </mxCell>
                </UserObject>
                <mxCell id="189" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.846;entryY=1.021;entryDx=0;entryDy=0;entryPerimeter=0;" parent="22" source="142" target="96" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="730" y="250" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="969" y="410"/>
                            <mxPoint x="766" y="410"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="142" value="Subscribe" style="triangle;whiteSpace=wrap;html=1;sketch=0;strokeWidth=1;fillColor=#f8cecc;rounded=1;fontFamily=Comic Sans MS;fontSize=14;fontStyle=1;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;direction=north;spacingTop=26;" parent="22" vertex="1">
                    <mxGeometry x="930" y="457.5" width="80" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="156" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=none;endFill=0;endSize=6;strokeWidth=1;" parent="22" source="151" target="155" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="224" style="edgeStyle=orthogonalEdgeStyle;rounded=0;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;shadow=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;" parent="22" source="151" target="207" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="290" y="580"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="151" value="EventHub" style="rhombus;whiteSpace=wrap;html=1;fillColor=#dae8fc;rounded=1;fontFamily=Comic Sans MS;fontSize=17;fontStyle=1;strokeWidth=1;sketch=0;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;" parent="22" vertex="1">
                    <mxGeometry x="185" y="270" width="120" height="65" as="geometry"/>
                </mxCell>
                <mxCell id="166" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.96;entryY=0.514;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;fontSize=13;endArrow=classic;endFill=1;endSize=6;strokeWidth=1;" parent="22" source="152" target="151" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="152" value="Commit" style="triangle;whiteSpace=wrap;html=1;sketch=0;strokeWidth=1;fillColor=#f8cecc;rounded=1;fontFamily=Comic Sans MS;fontSize=14;fontStyle=1;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;align=center;verticalAlign=middle;textDirection=ltr;labelBackgroundColor=none;direction=west;" parent="22" vertex="1">
                    <mxGeometry x="335" y="270" width="60" height="67.5" as="geometry"/>
                </mxCell>
                <mxCell id="174" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;fontSize=13;endArrow=classic;endFill=1;endSize=6;strokeWidth=1;" parent="22" source="155" target="163" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="155" value="start" style="triangle;whiteSpace=wrap;html=1;sketch=0;strokeWidth=1;fillColor=#f8cecc;rounded=1;fontFamily=Comic Sans MS;fontSize=14;fontStyle=1;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;align=center;verticalAlign=middle;textDirection=ltr;labelBackgroundColor=none;direction=west;" parent="22" vertex="1">
                    <mxGeometry x="105" y="278.75" width="40" height="47.5" as="geometry"/>
                </mxCell>
                <mxCell id="165" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;fontSize=13;endArrow=none;endFill=0;endSize=6;strokeWidth=1;" parent="22" source="163" target="152" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="425" y="215"/>
                            <mxPoint x="425" y="304"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="163" value="PIPELINE" style="whiteSpace=wrap;html=1;strokeWidth=1;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#ffe6cc;fontFamily=Comic Sans MS;fontSize=19;sketch=0;rounded=1;fontStyle=5;strokeColor=none;align=center;" parent="22" vertex="1">
                    <mxGeometry x="105" y="205" width="300" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="170" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.151;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;fontSize=13;endArrow=classic;endFill=1;endSize=6;strokeWidth=1;" parent="22" source="2" target="163" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="172" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.815;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;fontSize=13;endArrow=classic;endFill=1;endSize=6;strokeWidth=1;" parent="22" source="36" target="163" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="173" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;dashed=1;fontSize=13;endArrow=classic;endFill=1;endSize=6;strokeWidth=1;" parent="22" source="34" target="163" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="194" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=none;endFill=0;dashed=1;" parent="22" source="182" target="142" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="182" value="Updaters" style="whiteSpace=wrap;html=1;strokeWidth=1;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#ffe6cc;fontFamily=Comic Sans MS;fontSize=19;sketch=0;rounded=1;fontStyle=5;strokeColor=none;align=center;" parent="22" vertex="1">
                    <mxGeometry x="895" y="547.5" width="150" height="45" as="geometry"/>
                </mxCell>
                <UserObject label="TaskManager" placeholders="1" name="Variable" id="188">
                    <mxCell style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;rounded=0;sketch=1;fontFamily=Comic Sans MS;fontSize=20;fontStyle=1;fillColor=#e1d5e7;strokeWidth=2;perimeterSpacing=1;direction=east;hachureAngle=41;" parent="22" vertex="1">
                        <mxGeometry x="690" y="750" width="260" height="40" as="geometry"/>
                    </mxCell>
                </UserObject>
                <mxCell id="201" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;" parent="22" source="199" target="182" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="221" style="edgeStyle=orthogonalEdgeStyle;rounded=0;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;shadow=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;" parent="22" source="199" target="208" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="199" value="Task" style="whiteSpace=wrap;html=1;strokeWidth=1;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#ffe6cc;fontFamily=Comic Sans MS;fontSize=19;sketch=0;rounded=1;fontStyle=5;strokeColor=none;align=center;" parent="22" vertex="1">
                    <mxGeometry x="652" y="633.75" width="94" height="77.5" as="geometry"/>
                </mxCell>
                <mxCell id="220" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" parent="22" source="203" target="218" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="203" value="emit" style="triangle;whiteSpace=wrap;html=1;sketch=0;strokeWidth=1;fillColor=#f8cecc;rounded=1;fontFamily=Comic Sans MS;fontSize=14;fontStyle=1;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;direction=south;spacingBottom=14;" parent="22" vertex="1">
                    <mxGeometry x="659" y="460" width="80" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="225" style="edgeStyle=orthogonalEdgeStyle;rounded=0;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;shadow=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;" parent="22" source="207" target="199" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="207" value="Subscribe" style="triangle;whiteSpace=wrap;html=1;sketch=0;strokeWidth=1;fillColor=#f8cecc;rounded=1;fontFamily=Comic Sans MS;fontSize=14;fontStyle=1;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;direction=east;" parent="22" vertex="1">
                    <mxGeometry x="380" y="547.5" width="70" height="65" as="geometry"/>
                </mxCell>
                <mxCell id="229" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="22" source="208" target="228">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="208" value="init flow" style="triangle;whiteSpace=wrap;html=1;sketch=0;strokeWidth=1;fillColor=#f8cecc;rounded=1;fontFamily=Comic Sans MS;fontSize=14;fontStyle=1;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;direction=west;" parent="22" vertex="1">
                    <mxGeometry x="370" y="640" width="70" height="65" as="geometry"/>
                </mxCell>
                <mxCell id="219" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;endFill=1;dashed=1;" parent="22" source="218" target="199" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="218" value="createTask" style="rhombus;whiteSpace=wrap;html=1;fillColor=#dae8fc;rounded=1;fontFamily=Comic Sans MS;fontSize=17;fontStyle=1;strokeWidth=1;sketch=0;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;" parent="22" vertex="1">
                    <mxGeometry x="639" y="537.5" width="120" height="65" as="geometry"/>
                </mxCell>
                <mxCell id="230" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="22" source="228" target="151">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="228" value="runningQueue" style="rhombus;whiteSpace=wrap;html=1;fillColor=#dae8fc;rounded=1;fontFamily=Comic Sans MS;fontSize=17;fontStyle=1;strokeWidth=1;sketch=0;fillWeight=2;hachureGap=8;fillStyle=dots;strokeColor=none;" vertex="1" parent="22">
                    <mxGeometry x="185" y="570" width="120" height="65" as="geometry"/>
                </mxCell>
                <mxCell id="1" parent="0"/>
                <mxCell id="10" value="ConsoleView" style="whiteSpace=wrap;html=1;strokeWidth=2;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#d5e8d4;fontFamily=Comic Sans MS;fontSize=21;sketch=0;rounded=1;strokeColor=none;" parent="1" vertex="1">
                    <mxGeometry x="880" y="130" width="160" height="40" as="geometry"/>
                </mxCell>
                <UserObject label="Pipeline -- Workflow" placeholders="1" name="Variable" id="33">
                    <mxCell style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;rounded=0;dashed=1;sketch=1;fontFamily=Comic Sans MS;fontSize=20;fontStyle=1;fillColor=#f8cecc;strokeWidth=2;direction=west;hachureAngle=41;" parent="1" vertex="1">
                        <mxGeometry x="115" y="60" width="260" height="40" as="geometry"/>
                    </mxCell>
                </UserObject>
                <mxCell id="169" value="" style="group" parent="1" vertex="1" connectable="0">
                    <mxGeometry x="105" y="150" width="290" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="2" value="Request" style="whiteSpace=wrap;html=1;strokeWidth=1;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#ffe6cc;fontFamily=Comic Sans MS;fontSize=13;sketch=0;rounded=1;fontStyle=1;strokeColor=none;" parent="169" vertex="1">
                    <mxGeometry width="90.6872852233677" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="34" value="ExcelHelper" style="whiteSpace=wrap;html=1;strokeWidth=1;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#ffe6cc;fontFamily=Comic Sans MS;fontSize=13;sketch=0;rounded=1;fontStyle=1;strokeColor=none;" parent="169" vertex="1">
                    <mxGeometry x="104.65635738831615" width="90.6872852233677" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="36" value="Other Plugins" style="whiteSpace=wrap;html=1;strokeWidth=1;fillWeight=4;hachureGap=8;hachureAngle=45;fillColor=#ffe6cc;fontFamily=Comic Sans MS;fontSize=13;sketch=0;rounded=1;fontStyle=1;strokeColor=none;" parent="169" vertex="1">
                    <mxGeometry x="199.3127147766323" width="90.6872852233677" height="30" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>
