<mxfile>
  <diagram id="01-system-context" name="01 System Context">
    <mxGraphModel dx="800" dy="600" 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="operator_ctx" value="电商运营 / 业务负责人&#xa;[Person]&#xa;提出经营问题，追问原因并保存报告" style="shape=mxgraph.c4.person2;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#083F75;strokeColor=#06315C;" vertex="1" parent="1">
          <mxGeometry x="0" y="0" width="200" height="180" as="geometry"/>
        </mxCell>
        <mxCell id="analyst_ctx" value="数据分析师 / 数据工程师&#xa;[Person]&#xa;维护数仓模型、指标口径和评测集" style="shape=mxgraph.c4.person2;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#083F75;strokeColor=#06315C;" vertex="1" parent="1">
          <mxGeometry x="240" y="0" width="200" height="180" as="geometry"/>
        </mxCell>
        <UserObject label="Data Agent Studio&#xa;[Software System]&#xa;基于可信数仓回答经营问题，返回结论、图表、SQL 与证据链" link="data:page/id,02-containers" id="studio_ctx">
          <mxCell style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#1061B0;strokeColor=#0D5091;" vertex="1" parent="1">
          <mxGeometry x="220" y="250" width="240" height="120" as="geometry"/>
        </mxCell>
        </UserObject>
        <mxCell id="sources_ctx" value="电商业务数据&#xa;[Software System]&#xa;订单、支付、退款、商品、用户和行为数据" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#8C8496;strokeColor=#736782;" vertex="1" parent="1">
          <mxGeometry x="470" y="30" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="llm_ctx" value="大模型服务（可选）&#xa;[Software System]&#xa;负责结构化规划与结果解释，不直接访问数据库" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#8C8496;strokeColor=#736782;" vertex="1" parent="1">
          <mxGeometry x="220" y="430" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="e0" value="提问、追问、保存报告" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="operator_ctx" target="studio_ctx">
          <mxGeometry x="0.45" relative="1" as="geometry"><Array as="points"><mxPoint x="220" y="90"/><mxPoint x="230" y="90"/><mxPoint x="230" y="90"/><mxPoint x="230" y="90"/><mxPoint x="230" y="230"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e1" value="维护指标、验证结果" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="analyst_ctx" target="studio_ctx">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="340" y="180"/><mxPoint x="340" y="230"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e2" value="导入经营数据" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="sources_ctx" target="studio_ctx">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="460" y="90"/><mxPoint x="450" y="90"/><mxPoint x="450" y="90"/><mxPoint x="450" y="90"/><mxPoint x="450" y="230"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e3" value="结构化规划 / 解释" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="studio_ctx" target="llm_ctx">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="340" y="370"/><mxPoint x="340" y="420"/></Array></mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="02-containers" name="02 Containers">
    <mxGraphModel dx="800" dy="600" 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="operator_container" value="经营分析用户&#xa;[Person]&#xa;在浏览器中使用分析工作台" style="shape=mxgraph.c4.person2;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#083F75;strokeColor=#06315C;" vertex="1" parent="1">
          <mxGeometry x="430" y="0" width="200" height="180" as="geometry"/>
        </mxCell>
        <mxCell id="web_container" value="Web 分析工作台&#xa;[Container: HTML / CSS / JavaScript]&#xa;会话、趋势图、结果表、证据链和报告库" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#23A2D9;strokeColor=#0E7DAD;" vertex="1" parent="1">
          <mxGeometry x="410" y="240" width="240" height="120" as="geometry"/>
        </mxCell>
        <UserObject label="FastAPI 服务&#xa;[Container: Python / FastAPI]&#xa;对外提供指标、Agent、会话和报告 API" link="data:page/id,03-agent-components" id="api_container">
          <mxCell style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#23A2D9;strokeColor=#0E7DAD;" vertex="1" parent="1">
          <mxGeometry x="410" y="430" width="240" height="120" as="geometry"/>
        </mxCell>
        </UserObject>
        <mxCell id="semantic_container" value="指标语义层&#xa;[Container: YAML / Python]&#xa;定义指标口径、来源表、表达式、维度和同义词" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#23A2D9;strokeColor=#0E7DAD;" vertex="1" parent="1">
          <mxGeometry x="280" y="610" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="warehouse_container" value="电商分析数仓&#xa;[Container: DuckDB]&#xa;ODS、DIM、DWD、DWS 分层模型和样例数据" style="shape=cylinder3;size=15;boundedLbl=1;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#23A2D9;strokeColor=#0E7DAD;" vertex="1" parent="1">
          <mxGeometry x="0" y="610" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="history_container" value="会话与报告库&#xa;[Container: SQLite]&#xa;保存会话轮次、分析响应和不可变报告快照" style="shape=cylinder3;size=15;boundedLbl=1;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#23A2D9;strokeColor=#0E7DAD;" vertex="1" parent="1">
          <mxGeometry x="550" y="610" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="llm_container" value="OpenAI-compatible API&#xa;[Software System]&#xa;可选 Structured Outputs 规划器和解释器" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#8C8496;strokeColor=#736782;" vertex="1" parent="1">
          <mxGeometry x="830" y="610" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="source_container" value="样例 CSV 数据&#xa;[Software System]&#xa;本地生成的电商业务数据文件" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#8C8496;strokeColor=#736782;" vertex="1" parent="1">
          <mxGeometry x="0" y="430" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="e0" value="提问、追问、查看和保存" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="operator_container" target="web_container">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="530" y="180"/><mxPoint x="530" y="230"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e1" value="JSON / HTTP" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="web_container" target="api_container">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="530" y="370"/><mxPoint x="530" y="420"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e2" value="解析指标与维度" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="api_container" target="semantic_container">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="460" y="550"/><mxPoint x="460" y="600"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e3" value="只读指标查询" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="api_container" target="warehouse_container">
          <mxGeometry x="0.4" relative="1" as="geometry"><Array as="points"><mxPoint x="340" y="490"/><mxPoint x="260" y="490"/><mxPoint x="260" y="490"/><mxPoint x="260" y="490"/><mxPoint x="260" y="670"/><mxPoint x="260" y="670"/><mxPoint x="260" y="670"/><mxPoint x="250" y="670"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e4" value="保存会话与报告" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="api_container" target="history_container">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="600" y="550"/><mxPoint x="600" y="600"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e5" value="结构化规划 / 解释" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="api_container" target="llm_container">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="780" y="490"/><mxPoint x="950" y="490"/><mxPoint x="950" y="490"/><mxPoint x="950" y="490"/><mxPoint x="950" y="600"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e6" value="构建分层数仓" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="source_container" target="warehouse_container">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="120" y="550"/><mxPoint x="120" y="600"/></Array></mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="03-agent-components" name="03 Agent Components">
    <mxGraphModel dx="800" dy="600" 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="api_component" value="API Routes&#xa;[Component: backend/api.py]&#xa;接收分析请求并返回可追踪响应" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="550" y="0" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="agent_component" value="DataAgent&#xa;[Component: backend/agent.py]&#xa;协调时间推理、规划、查询、解释和多轮上下文" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="550" y="190" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="rules_component" value="规则规划器&#xa;[Component: Deterministic Rules]&#xa;无 API Key 时稳定识别指标、维度和分析模板" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="0" y="370" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="llm_planner_component" value="大模型规划器&#xa;[Component: OpenAIPlanner]&#xa;只输出经过 Schema 约束的结构化分析计划" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="280" y="370" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="catalog_component" value="MetricCatalog&#xa;[Component: config/metrics.yaml]&#xa;解析指标、同义词、表达式和维度白名单" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="280" y="560" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="query_component" value="MetricQueryService&#xa;[Component: backend/metric_query.py]&#xa;根据语义定义构造并执行指标查询" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="550" y="370" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="guard_component" value="SQL 安全校验&#xa;[Component: SQLGlot]&#xa;限制只读查询、白名单表和允许的 SQL 结构" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="550" y="560" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="duckdb_component" value="DuckDB 数仓&#xa;[Container: warehouse.duckdb]&#xa;执行经过校验的指标 SQL" style="shape=cylinder3;size=15;boundedLbl=1;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#23A2D9;strokeColor=#0E7DAD;" vertex="1" parent="1">
          <mxGeometry x="550" y="740" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="reporter_component" value="结果解释器&#xa;[Component: Rules / LLM]&#xa;生成结论、关键发现、限制和后续问题" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="830" y="370" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="store_component" value="ConversationStore&#xa;[Component: backend/session_store.py]&#xa;持久化多轮上下文和版本化报告" style="rounded=1;arcSize=10;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#63BEF2;strokeColor=#2086C9;" vertex="1" parent="1">
          <mxGeometry x="1100" y="370" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="sqlite_component" value="SQLite&#xa;[Container: agent_sessions.sqlite3]&#xa;会话、轮次和报告快照" style="shape=cylinder3;size=15;boundedLbl=1;html=1;whiteSpace=wrap;fontSize=12;fontColor=#ffffff;align=center;fillColor=#23A2D9;strokeColor=#0E7DAD;" vertex="1" parent="1">
          <mxGeometry x="1100" y="560" width="240" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="e0" value="analyze(question, session_id, mode)" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="api_component" target="agent_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="670" y="120"/><mxPoint x="670" y="170"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e1" value="本地规则规划" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="agent_component" target="rules_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="390" y="230"/><mxPoint x="120" y="230"/><mxPoint x="120" y="230"/><mxPoint x="120" y="230"/><mxPoint x="120" y="360"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e2" value="可选大模型规划" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="agent_component" target="llm_planner_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="480" y="270"/><mxPoint x="400" y="270"/><mxPoint x="400" y="270"/><mxPoint x="400" y="270"/><mxPoint x="400" y="360"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e3" value="解析指标与维度" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="rules_component" target="catalog_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="120" y="540"/><mxPoint x="120" y="620"/><mxPoint x="120" y="620"/><mxPoint x="120" y="620"/><mxPoint x="260" y="620"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e4" value="二次白名单校验" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="llm_planner_component" target="catalog_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="400" y="490"/><mxPoint x="400" y="540"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e5" value="执行分析步骤" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="agent_component" target="query_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="670" y="310"/><mxPoint x="670" y="360"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e6" value="读取指标定义" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="query_component" target="catalog_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="540" y="430"/><mxPoint x="530" y="430"/><mxPoint x="530" y="430"/><mxPoint x="530" y="430"/><mxPoint x="530" y="620"/><mxPoint x="530" y="620"/><mxPoint x="530" y="620"/><mxPoint x="530" y="620"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e7" value="校验生成的 SQL" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="query_component" target="guard_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="670" y="490"/><mxPoint x="670" y="540"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e8" value="只读执行" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="guard_component" target="duckdb_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="670" y="680"/><mxPoint x="670" y="730"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e9" value="解释已验证结果" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="agent_component" target="reporter_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="870" y="270"/><mxPoint x="950" y="270"/><mxPoint x="950" y="270"/><mxPoint x="950" y="270"/><mxPoint x="950" y="360"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e10" value="读取上下文、保存分析" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="agent_component" target="store_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="950" y="230"/><mxPoint x="1220" y="230"/><mxPoint x="1220" y="230"/><mxPoint x="1220" y="230"/><mxPoint x="1220" y="360"/></Array></mxGeometry>
        </mxCell>
        <mxCell id="e11" value="WAL / Foreign Keys" style="endArrow=blockThin;endFill=1;endSize=10;html=1;fontSize=11;fontColor=#404040;strokeColor=#828282;labelBackgroundColor=#ffffff;rounded=0;" edge="1" parent="1" source="store_component" target="sqlite_component">
          <mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1220" y="490"/><mxPoint x="1220" y="540"/></Array></mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
